Greg`s Tech blog

Linux Backups

Wednesday 25 of April, 2012

Found a backup script and modified it - see below. The script is saved in /etc/cron.weekly and shoud run 4:30 every Sunday or Monday (Day 0) The tape device is /dev/nst0 -

  1. !/bin/bash

  1. Create backups of /etc, /home, /usr/local, and...

PATH=/bin:/usr/bin tape="/dev/nst0" backupdirs="/etc /root /boot /home /usr/local /var/lib /var/log /var/www/htdocs"

  1. Make MySQl Dump

echo "Dumping mysql databases"

mysqldump password=M@ddexit  flush-logs --opt tiki > /usr/local/MySqlDumps/tikidb

echo "Dumping tiki database"

mysqldump password=M@ddexit flush-logs --opt mysql > /usr/local/MySqlDumps/mysqldb

echo "Dumping mysql admin database"

echo "Rewinding tape"

mt -f $tape rewind for path in $backupdirs do echo "System backup on $path" tar cf $tape $path 1>/dev/null sleep 2 done

echo "System backups complete, status: $?"

echo "Now verifying system backups"

mt -f $tape rewind for path in $backupdirs do echo "Verifying $path...." tar tf $tape 1>/dev/null && \ echo "$path: verified"

echo "$path: errors in verify"

if $? -eq 0 then echo "$path: verified"


echo "$path: error(s) in verify" 1>&2 fi mt fsf 1 done

mt -f $tape rewoffl

echo "Please remove backup tape" | wall