#!/bin/bash # Relative path starting from $HOME (root of your URLs) or absolute path # Don't forget to escape special characters (as spaces) with \ DIR_BLOG="" # exemple : dotclear, or ./ for all your site DIR_BACKUP="" # exemple : backup SQL_HOST="" SQL_USER="" SQL_PASS="" SQL_BASE="" CURRENTDATE=$(date +%Y%m%d) MAIL_FROM="backup@" MAIL_TO="" MAIL_SUBJECT="[$CURRENTDATE] Backup of ${DIR_BLOG} and SQL database" MAIL_MESSAGE="Please find attached the backup of ${DIR_BLOG} for $CURRENTDATE" DBDUMP_FILENAME="sql$CURRENTDATE.sql" echo "Exporting database..." touch $DIR_BACKUP/$DBDUMP_FILENAME && mysqldump -h $SQL_HOST -u $SQL_USER \ --password=$SQL_PASS $SQL_BASE > $DIR_BACKUP/$DBDUMP_FILENAME echo "Compressing export file..." tar czf $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz $DIR_BACKUP/$DBDUMP_FILENAME echo "Creating global archive..." tar czf $DIR_BACKUP/blog$CURRENTDATE.tar.gz $DIR_BLOG $DIR_BACKUP/$DBDUMP_FILENAME.tar.gz echo "Mailing archive to $MAIL_TO..." # Comment out this line if you use mutt #echo $MAIL_MESSAGE | mutt -s $MAIL_SUBJECT -a $DIR_BACKUP/blog$CURRENTDATE.tar.gz $MAIL_TO # Comment out these lines if you use uuencode & mail (useful if you can't use other methods) #(echo $MAIL_MESSAGE ; uuencode -m $DIR_BACKUP/blog$CURRENTDATE.tar.gz blog$CURRENTDATE.tar.gz) \ # | mail -s $MAIL_SUBJECT $MAIL_TO # Comment out these lines if you want to use Perl MIME::Lite (works for 1&1 host) perl script/send_mail.pl "${MAIL_FROM}" "${MAIL_TO}" "${MAIL_SUBJECT}" "${MAIL_MESSAGE}" \ $DIR_BACKUP/blog$CURRENTDATE.tar.gz blog$CURRENTDATE.tar.gz echo "Deleting temporary files..." rm -f $DIR_BACKUP/$DBDUMP_FILENAME* echo "Backup completed in $DIR_BACKUP/blog$CURRENTDATE.tar.gz"