This is an old revision of the document!
Like any system admins, we need to ensure that we have good backups. Our systems do not have tape backup devices, and it's easy to rebuild the OS, so we're just backing up our data and config files across the network via rsync tunneled through SSH.
We're also backing up locally to tarballs for easier access, and to have multiple versions of backups.
Create directories to store our backup files, and make sure they're not readable by anyone:
mkdir -p /var/backups mkdir -p /var/backups/etc mkdir -p /var/backups/home mkdir -p /var/backups/usr_local mkdir -p /var/backups/email chmod -R 600 /var/backups
Create the backup script in /etc/cron.daily/backup-etc:
#!/bin/sh SRCDIR=/etc BACKUPDIR=/var/backups/etc DATE=`date +'%Y%m%d'` tar cfz $BACKUPDIR/etc-$DATE.tgz -P $SRCDIR
Make the script executable:
chmod 755 /etc/cron.daily/backup-etc
Run the script to test that it works, and saves a file with the correct name in /var/backups/etc/. Run 'tar tfz' on the resulting backup file to make sure it contains the expected files.
Note that we only do weekly backups of home, because it's a lot bigger than the other directories that we back up.
Create the backup script in /etc/cron.weekly/backup-home:
#!/bin/sh SRCDIR=/home BACKUPDIR=/var/backups/home DATE=`date +'%Y%m%d'` tar cfz $BACKUPDIR/home-$DATE.tgz -P $SRCDIR
Make the script executable:
chmod 755 /etc/cron.weekly/backup-home
Run the script to test that it works, and saves a file with the correct name in /var/backups/home/. Run 'tar tfz' on the resulting backup file to make sure it contains the expected files.
Create the backup script in /etc/cron.daily/backup-usr_local:
#!/bin/sh SRCDIR=/usr/local BACKUPDIR=/var/backups/usr_local DATE=`date +'%Y%m%d'` tar cfz $BACKUPDIR/usr_local-$DATE.tgz -P $SRCDIR
Make the script executable:
chmod 755 /etc/cron.daily/backup-usr_local
Run the script to test that it works, and saves a file with the correct name in /var/backups/usr_local/. Run 'tar tfz' on the resulting backup file to make sure it contains the expected files.
NOTE: We currently store web sites in /home/web
, so we do not need to back up anything separately at this point.
NOTE: We currently store users' email folders in their home directories, so we do not need to back up anything separately at this point.
Copy the files in /var/backups off the server to another server.
Delete older backup files. There should be some schedule for this, so that we keep 1 backup per month or something.
Exclude some items in backup of home directories.
Back up email folders separately, if/when they're no longer held in home directories.