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