Here’s a file backup script I installed for a client. The original outline came from a post on the ubuntu forums (I forget where exactly), but it’s simple enough. It creates an archive in /tmp, zips it up, emails it then deletes the archive. If your target is a linux computer then it makes more sense to gzip it by adding a “z” to the tar options (i.e. tar -czf) and removing the zip line.
#!/bin/bash # # Simple file backup script, creates archive in /tmp and emails it. # # Software required: # zip # tar # mutt # Variables MAILADDRemail@example.com SOURCE="/home/user1 /home/user2" SERVERNAME=server.example.com MAIL=`which mutt` ZIP=`which zip` DATE=`date +%Y_%m_%d` FILE=myfiles-$DATE.tar DESTINATION=/tmp/$FILE ZIPFILE=$DESTINATION.zip # Actions tar -cf $DESTINATION $SOURCE 2> /dev/null $ZIP $ZIPFILE $DESTINATION $MAIL -a $ZIPFILE -s "Backup for $DATE" -s "$SERVERNAME backup $DATE" $MAILADDR < /dev/null rm $ZIPFILE $DESTINATION
For mutt to work you need an MTA (mail transport agent) such as postfix. If it’s not installed and you don’t need it for anything else, configure it as a satellite system (the Ubuntu/Debian packages prompt you on install and satellite system is an option). This prevents spammers from using it as a relay, and ensures the mail goes to your real mail server.