1#! /bin/sh -x 2 3# we don't want to hear normal messages 4exec > /dev/null 5 6# the first argument given will be appended to backup filenames 7period=$1 8 9# the backup server 10server=backup.example.com 11 12# what to backup 13# dbs to backup 14db_user=mysql 15databases="test1 test2" 16# directories to backup 17dirs="public_html/" 18 19# program locations 20tar=/usr/bin/tar 21mysqldump=/usr/local/bin/mysqldump 22gzip_pipe="gzip -c -9" 23gzip_ext=".gz" 24 25# backup directories 26$tar -C $HOME -f - -c $dirs | $gzip_pipe | ssh backup@${server} backup-$period.tar$gzip_ext 27 28# then databases 29for database in $databases 30do 31 # -l: read-lock tables, -q: quick (no buffering), -Q: quote table names 32 $mysqldump -l -q -Q -u $db_user $database | $gzip_pipe | ssh backup@${server} backup-${database}-${period}$gzip_ext 33done 34