Customize the User Environment
The environment is comprised of a series of settings that provide a
look and feel that the user is comfortable with or that the corporation
deems necessary to create a productive work setting. Bash provides
systematic ways to setup an environment that will meet your needs to
help you function more effectively. One of those settings should be
some kind of automatic backup when you logout for the day.
There are three files that are read when a user logs in and out.
These files are typically in the user directory by default when using
the bash shell. The files are hidden files so they are preceded by a
“.” and may be viewed by using the command:
The files are .bash_profile, .bash_logout, and .bashrc. If these
three files do not exist in your home directory they can be created by
using a text editor like vi.
You may also see .bash_history which keeps a list of the commands that the user has executed.
Any changes you make to this script must be saved and then you must
logout and login again. However it is possible to use the source
command which will run all of the commands that are in the script:
Now there is a catch, bash provides a way for a system to use two
alternative files other than .bash_profile, these files are .bash_login
or .profile. If either of these files is listed and .bash_profile is
not then they will run, but if .bash_profile is listed it will run.
The .bash_profile is read by the system and executes any command
located there only when a user logs into the system, and not when a
user starts a new shell. When the user starts a new shell .bashrc file
is read. This setup allows the user to separate the commands needed at
startup and those that may be important when starting a subshell.
The .bash_logout provides a way to execute commands when the user logs out of the system.
One useful application for this in a user’s home directory is that an
administrator can provide a way to kill all of the user’s applications
when logging out just in case an application was not closed correctly
or that hangs.
Here is an example of a simple command that copies all OpenOffice
Writer files to a USB device in a directory called MyDocs when the user
Create a file named .bash_logout in the users home directory if it
has not been created already. In that file use this command in a line
and save the file:
cp Documents/*.odt /media/usb/MyDocs
Note the case and that since the command will be issued from the
user’s home directory the path is simply the Documents directory. Of
course this command will require the user to save all the Writer files
they want to copy into the Documents directory or they will not be
copied. You will also need a directory called MyDocs in the USB device.
This script will rsync the root user’s home directory to a local backup.
Open .bash_logout or create it with vi .bash_logout in the root user’s home directory. Create a backup directory with:
Of course this location should be on a separate drive and you will
need permissions to access that drive. It could be a USB drive that is
mounted as /bk.
Enter this line of code in the .bash_logout:
rsync -avz –exclude=*.rpm /root/ /bk/root_bk
chmod -R 700 /var/root_bk
Test the script by logging out and then login in again.
Simple script but you get the idea. Placing an automatic backup in
that logout script will be worth gold if you have problems with your