3 ### Do not inherit the following variables
4 # Safety net just in case some calls this
5 # script in a bogus way.
16 FTP_HOST=uxxx.your-backup.de
18 GOPTS="--num-retries 15"
19 ROOTMAIL="root@localhost"
20 LOCKDIR="/var/lock/backup"
21 LOCKFILE="$LOCKDIR/hetznerbackup"
22 LOGFILE="/var/log/hetznerbackup.log"
23 SESSIONLOG=$(mktemp /var/tmp/hetznerbackup.XXXXXXXXX)
26 ## Backup job for main
28 echo "" >> $SESSIONLOG
29 echo "Backing up main `date`" >> $SESSIONLOG
30 echo "" >> $SESSIONLOG
32 echo "Going for /etc" >> $SESSIONLOG
33 duplicity $BMODE $dry $GOPTS /etc $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
34 duplicity remove-all-but-n-full 5 --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
35 duplicity cleanup --extra-clean --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
37 echo "Going for /home" >> $SESSIONLOG
38 duplicity $BMODE $dry $GOPTS /home $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1
39 duplicity remove-all-but-n-full 5 --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1
40 duplicity cleanup --extra-clean --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1
42 echo "Going for /var/www" >> $SESSIONLOG
43 duplicity $BMODE $dry $GOPTS /var/www $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1
44 duplicity remove-all-but-n-full 5 --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1
45 duplicity cleanup --extra-clean --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1
47 echo "Going for /var/lib/tomcat6" >> $SESSIONLOG
48 duplicity $BMODE $dry $GOPTS /var/lib/tomcat6 $PROTO://$FTP_USER@$FTP_HOST/main/tomcat6 >> $SESSIONLOG 2>&1 || ERRSTAT=1
49 duplicity remove-all-but-n-full 5 --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/tomcat6 >> $SESSIONLOG 2>&1 || ERRSTAT=1
50 duplicity cleanup --extra-clean --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/tomcat6 >> $SESSIONLOG 2>&1 || ERRSTAT=1
52 echo "Going for /var/lib/automysqlbackup" >> $SESSIONLOG
53 if [ -e /var/lib/automysqlbackup/backupdone ]; then
54 duplicity $BMODE $dry $GOPTS /var/lib/automysqlbackup $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1
55 duplicity remove-all-but-n-full 5 --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1
56 duplicity cleanup --extra-clean --force $dry $GOPTS $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1
58 echo "WARNING: It seems that the last mysql backup is still runing" >> $SESSIONLOG
59 echo "Skipping mysql backup - please re-schedule" >> $SESSIONLOG
63 echo "" >> $SESSIONLOG
66 # Append the session log to the main logfile and remove log and lock
69 if [ $ERRSTAT -eq 0 ]; then
70 echo "Backup finished successfully $ENDDATE" >> $SESSIONLOG
72 echo "ERROR Backup FAILED $ENDDATE with ERRSTAT $ERRSTAT" >> $SESSIONLOG
73 cat $SESSIONLOG|mail -s "ERROR Backup FAILED $ENDDATE with ERRSTAT $ERRSTAT" $ROOTMAIL
75 cat $SESSIONLOG >> $LOGFILE
76 rm $SESSIONLOG $LOCKFILE
79 ### check for other runing instances of this script
80 if [ -e $LOCKFILE ]; then
81 echo "Lockfile $LOCKFILE found - aborting"
82 echo "This is a typical result of a failed backup run, please contact your admin"
85 if [ ! -d $LOCKDIR ]; then
91 ### Set the duplicity backup mode we would like to use
92 if [[ $(LANG=C; date +%A) =~ Sunday ]]; then
93 echo "Runing in full mode" >> $SESSIONLOG
96 echo "Runing in incr mode" >> $SESSIONLOG
100 ### Start the backup jobs
102 ### Cleanup and reporting