5 ### Halt on unset variables
8 ### Do not inherit the following variables
9 # Safety net just in case some calls this
10 # script in a bogus way.
21 FTP_HOST=uxxx.your-backup.de
23 ROOTMAIL="root@localhost"
24 LOCKFILE="/var/lock/backup/hetznerbackup"
25 LOGFILE="/var/log/hetznerbackup"
26 SESSIONLOG=$(mktemp /var/tmp/hetznerbackup.XXXXXXXXX)
29 ## Backup job for main
31 echo "" >> $SESSIONLOG
32 echo "Backing up main `date`" >>
33 echo "" >> $SESSIONLOG
35 echo "Going for /etc" >> $SESSIONLOG
36 duplicity $BMODE $dry /etc $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
37 duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/etc >> $SESSIONLOG 2>&1 || ERRSTAT=1
39 echo "Going for /home" >> $SESSIONLOG
40 duplicity $BMODE $dry /home $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1
41 duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/home >> $SESSIONLOG 2>&1 || ERRSTAT=1
43 echo "Going for /var/www" >> $SESSIONLOG
44 duplicity $BMODE $dry /var/www $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1
45 duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/var/www >> $SESSIONLOG 2>&1 || ERRSTAT=1
47 echo "Going for /var/lib/automysqlbackup" >> $SESSIONLOG
48 if [ -e /var/lib/automysqlbackup/backupdone ]; then
49 duplicity $BMODE $dry /var/lib/automysqlbackup $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1
50 duplicity remove-all-but-n-full 5 --force $dry $PROTO://$FTP_USER@$FTP_HOST/main/automysqlbackup >> $SESSIONLOG 2>&1 || ERRSTAT=1
52 echo "WARNING: It seems that the last mysql backup is still runing" >> $SESSIONLOG
53 echo "Skipping mysql backup - please re-schedule" >> $SESSIONLOG
56 echo "" >> $SESSIONLOG
59 # Append the session log to the main logfile and remove it
61 cat $SESSIONLOG >> $LOGFILE
65 ### check for other runing instances of this script
66 if [ -e $LOCKFILE ]; then
67 echo "Lockfile $LOCKFILE found - aborting"
68 echo "This is a typical result of a failed backup run, please contact your admin"
74 ### Set the duplicity backup mode we would like to use
75 if [[ $(LANG=C; date +%A) =~ Sunday ]]; then
76 echo "Runing in full mode"
79 echo "Runing in incr mode"
83 ### Start the backup jobs
86 ### Cleanup and reporting
88 if [ $ERRSTAT -eq 0 ]; then
89 echo "Backup finished successfully $ENDDATE" >> $SESSIONLOG
94 echo "ERROR Backup FAILED $ENDDATE" >> $SESSIONLOG
95 cat $SESSIONLOG|mail -s "ERROR Backup FAILED $ENDDATE" $ROOTMAIL