shivalik -- simple configuration backup (defying Murphy's laws)

ArticleCategory:

SystemAdministration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en S. Parthasarathy (Partha)

AboutTheAuthor:[A small biography about the author]

Partha is an aggressive supporter of Linux and all that stands for freedom and liberty. He fell in love with a lovely German -- when he was in Germany on a sabbatical visit. His lover, SuSe Linux, spends almost 17 hours a day with him every day. Together, they have made many many children : his "teaspoon" CDROM, his training course on Linux, his documents archived with LDP, and a whole lot of tutorial material, are all the results of this happy marriage. Dr. Partha plans to make many more children, and is working hard at this goal ! He has no intentions of using any family planning methods.
For a full report about Dr. Partha's Linux contributions and activities, click here.

Abstract:

There are a whole lot of HOWTOs out there which tell you what to do if you have a serious problem with your Linux installation. Good for us. But there is no one there who told you what you should do before disaster strikes you ! Here is a simple but not so short shell script which may reduce your miseries. Run it once as soon as you install your Linux system and run it every time you make major changes in your system. You can even tinker it a little and make it run as a cron job every so many hours. And then, you can sleep in peace. Like the saying goes -- you must lock your stables before the horse is lost.

The Shivaliks is a mountian chain in India, also known as the lower Himalaya. The script used in this article is named after those mountains.

The photo of the Shivaliks is courtesy of Karamjeet Singh.

ArticleIllustration:

shivalik mountains, Himalaya

ArticleBody:

shivalik

The BASH-shell-script : "shivalik" is a convenient way to make backups of essential files and information about your Linux installation. The script is profusely documented. It does not modify (or delete) any of your files or directories. It creates a well- protected backup of some essential files and information. The entire script is available for you to browse and understand its working (you can even modify shivalik if you want).

The script makes a backup of essential configuration files (/etc) and stores some information from the /proc filesystem in a text file called proc_info.txt (e.g which kernel modules are loaded, which partitions are mounted where, how much disk space is available).

Download shivalik-2.0.gz now (check also my homepage for future updates of the script)

After downloading the script:

To execute the script:

First, make sure that you have made the script executable (chmod 700) as desribed above (by root only)
Now you can execute (run) the above script -- just type shivalik /usr/local/backupcfg/ .
Remember you must be "root", to execute shivalik, because many of the files being saved need root permissions and the script itself is executable by "root" only.

Recovery and repair

Remember, the shivalik script is not a tool for complete backup and recovery. Ideally, the best thing to do would be to make a verbatim copy of your entire Linux installation along with all files and directories. This is not always possible, necessary, or advisable. The next best thing would be to take a backup of the most essential information and files. The shivalik script achieves this for you. The script creates a subdirectory below the directory which you specify on the command line (e.g /usr/local/backupcfg/backup-2004-04-17_2029). This sub-directory is named after the date and time when you create the backup.

To be absolutely prepared for any eventuality, you can copy the entire backup-YYYY-MM-DD_HHMM on a removable medium, as soon as the script is executed.

In the event of any problems later, you can reconstruct the damaged configuration files from /etc by copying the files you have backed up. Do not untar the backup-YYYY-MM-DD_HHMM/etc.tar.gz to /etc as this would overwrite all files. Instead go to some other directory e.g /root and untar there. Then pick file you are interessted in and compare it with what you have in /etc (diff). You can also check the modification times of the files as tar preserves timestamps and permissions. Here is an example for /etc/fstab:

cd /root
tar -zxvf /usr/local/backupcfg/backup-2004-04-17_2029/etc.tar.gz
Note: above line will unpack the etc tree now to the current directory.
      That is /root/etc

diff -u /root/etc/fstab /etc/fstab

The structure of the backup-YYYY-MM-DD_HHMM directory will be as follows:

etc.tar.gz     -- complete backup of /etc
proc_info.txt  -- selected information from /proc (modules dma interrupts 
                  mounts version partitions meminfo pci)

Recovery of files outside /etc

Under Linux /etc is special because it contains configuration files. Those are files which are specific to you own computer. Most of the other files in the system are identical with those from your Linux installation CD. In other words you can always restore them from there using your package management system (e.g rpm). Here a short explanation of how you can use rpm to do that. Run the command:
rpm --verify --all
This will check all install files on the disk against the information in the rpm database. If you have e.g accidently deleted a file then rpm will tell you and you can just re-install ( rpm -i --replacepkgs --replacefiles rpm-package) the package.

shivalik 1.* and shivalik 2.* and more

shivalik comes in two flavours:
  1. shivalik 1.* which is an older but simpler and more verbose version
  2. shivalik 2.* which is a more recent version. It is the version discussed in this article.

Remember that shivalik is just a small part of a whole lot of things which you have to do after your installation work is complete. The post-installation procedures are now part of LDP's mini-HOWTOs. You can download this from the www.tldp.org or from http://algolog.tripod.com/postlnx.htm.

It is always a good idea to be prepared for any disaster. No disaster should become a fatal catastrophe.