Principal
Noticias
Proyectos
Documentos
Enlaces
Contacto
backup v3.0 by loop
english -
castellano
Features
Requirements
Instalation
Download
Script to backup system directories, files and configurations, specified in the configuration file (backup.conf). The backups can be written to various media. It's highly configurable, you can automate the task adding it to your crontab. The owner of the process must be root, so that the script has permissions to access every part of the system. ;)
The following gives information about the main features or the program, the requirements, and how to install it. You should also visit the
project page
on
Freshmeat
.
Features
Several combinable options for choosing the destination of the backup: SAMBA (NETBIOS), FTP, SCP (SSH), tape (DAT), CDR(W) and HD (tarballs or ISO image).
In the case you choose to only create an ISO, you can pass external commands to manage it.
Option to encrypt (blowfish) the backup files.
Option to choose the compression format: gzip or bzip2.
In the case you choose CD as destination, it checks that the size of the backup's ISO Image isn't greater than the CD's capacity.
Checks if the backup has been successfully saved/transfered to the HD, CD, tape, SAMBA or SCP.
Option to specify how many old backups should be kept in local harddisk or remote SAMBA, FTP or SCP servers.
System backup: /boot, /etc, /usr/local/etc, crontab, installed packages, kernel configuration, system information and system logs.
Homes backup: /root, the whole 'home' directory (w/ user-defined excluded paths) or selective homes.
Common software backup: Sendmail, Apache, PHP, MySQL, Squid, MRTG, Majordomo, Mailman, GNUPG, AWStats, Nagios (NetSaint), MailScanner. All PATHs are configurable.
Custom directories backups/listings.
E-mail notification: it sends the final status of your backup in the subject (OK/ERROR) and the full log in the body.
Language: spanish or english, with easy translation to others.
Requirements
Basic utilities: cp, rm, ls, tar, gzip, cat, date, uname, lspci, df, ps, netstat, fdisk, ifconfig, awk, sed, cut, wc, head, tee, mail. All these utilities must be within your $PATH environment variable.
Perhaps you need some other utilities (according to the options you choose). The PATH to that utilities must be set in your configuration file: smbmount, mkisofs, cdrecord, mt-st, gpg, mysqldump, openssl.
Instalation
1.- Move the whole directory of the script to /usr/local/backup:
# mv backup-version /usr/local/backup
Or, you can move it with it's version and do a symlink...
# mv backup-version /usr/local/
# cd /usr/local
# ln -sf backup-version backup
2.- Edit the file configure it to fit your needs and save it as 'backup.conf'. This file is in /usr/local/backup/etc directory.
backup.conf-dist-en => english version
backup.conf-dist-es => spanish version
3.- Check all the backup's files permissions. If you did a 'mv', they should be OK. ;)
The owner and group of all the files must be root:
# chown -R root.root /usr/local/backup
The file 'backup.sh' must be readable, writable and executable
only
by root:
# chmod 700 /usr/local/backup/backup.sh
The configuration file must be readable and writable
only
by root:
# chmod 600 /usr/local/backup/etc/backup.conf
4.- If you want to run it as a cron job, you can use this example:
# crontab -e
-> # Do backup on Mondays (1 AM)
-> 0 1 * * mon /usr/local/backup/backup.sh 1> /dev/null 2> /dev/null
We redirect the program output to /dev/null ("1> /dev/null 2>/dev/null"), because we don't want cron to send us an e-mail containing the stdout of the program. The script keeps us informed by itself.
5.- If you want to run it right now
- Having /usr/local/backup within your PATH:
# backup.sh
- Without having it there:
# /usr/local/backup/backup.sh
You can specify a different configuration file to be read by the script. This can be useful in the case you make several kinds of backups in the same machine. The alternative(s) config file(s)
must be
within /usr/local/backup/etc directory, so you don't need to specify a PATH:
# /usr/local/backup/backup.sh -c backup-other.conf
If you pass no argument to the script, the configuration file located at /usr/local/backup/etc/backup.conf will be read.
I recommend you to run it at least once in real-time (typing the program name in your shell, not from cron) after you configured it, before you put it in the crontab, just to be sure that it'll run successfully.
Enjoy it!
Download
It does not make sense to keep earlier versions, since they have all been similar, and it is the most recent one that matters... ;)
backup-3.0.tar.gz