Build a Home Terabyte Backup System Using Linux
To add an additional level of security, you may consider adding a second server to your overall backup plans consisting of a server that exists off-site, away from the home or office location where your primary backup server is located. This allows you to mirror your backup server to an off-site location once a week. That way, if you have a fire or some other catastrophe at your primary location, your data still will be available. Figure 2 shows a sample configuration for this setup.
Listing 2 is a basic script that mirrors the server bar with an off-site mirror baroffsite using rsync. Always set up backups to run automatically and on a regular schedule. Always keep logs of your backups, and always check the backup logs.
Listing 2. rsync Mirroring bar to baroffsite
#!/bin/sh # Mirror /data1 on bar to /data1/bar on baroffsite. #Backup directory on bar BACKUP=/data1 #Backup directory on baroffsite BACKUP_OFF=/data1/bar # Give the day of week as name of backup BACKUPNAME=`date +%A` # Offsite server BSERVER=baroffsite # Backup account on backup server BAC_ACC=backup date > /var/log/backup.$BACKUPNAME.log /usr/bin/rsync -avz --delete -e ssh $BACKUP $BAC_ACC@$BSERVER:$BACKUPOFF >> /var/log/backup.$BACKUPNAME.log # Email the log to administrator cat /var/log/backup.$BACKUPNAME.log | mail -s 'Mirror Check' email@example.com
In order to monitor your backup process and make sure your backups are running as scheduled (and that your backup server hasn't run out of disk space), it's important to put some automated monitoring and reporting into place. Listing 3 is a simple script that can be set up to run periodically via cron and send you a summary of the backups that have occurred and how much disk space is remaining on each of your partitions.
Listing 3. Simple Timestamp and Disk Space Lister
#!/bin/sh # Check space on partitions # List timestamps in chronological order BACKUPS=/data1 #Identify directories to check # Give the day of week as name of backup BACKUPNAME=`date +%A` #Timestamp date > /var/log/backup.$BACKUPNAME.log # Disk space on partitions df -k > /var/log/backup.$BACKUPNAME.log echo ' ' >> /var/log/backup.$BACKUPNAME.log #List timestamps on backup server # ls -lRt is much more verbose ls -lt $BACKUPS/* >> /var/log/backup.$BACKUPNAME.log # Email the log to administrator cat /var/log/backup.$BACKUPNAME.log | mail -s 'Backup Check' firstname.lastname@example.org
Resources for this article: /article/8635.
Duncan Napier works as computer and instrumentation consultant in the Vancouver area of British Columbia.
|Android Candy: That App Is for the Birds!||Mar 22, 2017|
|Hodge Podge||Mar 21, 2017|
|William Rothwell and Nick Garner's Certified Ethical Hacker Complete Video Course (Pearson IT Certification)||Mar 20, 2017|
|Preseeding Full Disk Encryption||Mar 16, 2017|
|William Gurstelle's ReMaking History, Volume 3 (Maker Media, Inc.)||Mar 15, 2017|
|GRUB Boot from ISO||Mar 14, 2017|
- Two Ways GDPR Will Change Your Data Storage Solution
- Hodge Podge
- William Rothwell and Nick Garner's Certified Ethical Hacker Complete Video Course (Pearson IT Certification)
- Preseeding Full Disk Encryption
- Android Candy: That App Is for the Birds!
- Flash ROMs with a Raspberry Pi
- Returning Values from Bash Functions
- Minifree Ltd.'s GNU+Linux Computers
- GRUB Boot from ISO
- Two Factors Are Better Than One