Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- SCRIPT_ROOT="/path/to/this/script"
- # Runscript to preform incremental backups
- # Depends: gpg, duplicity, ncftp, mysql
- #
- # MySQL backupuser needs: GRANT *.* and GRANT LOCK *.*
- #
- # by Armas Spann 2013
- # this file contains the directories to be backedup, one per line:
- INC_FS="incl.dir"
- # GPG pass for the backups..
- export PASSPHRASE="SOMEPASS"
- # FTP settings
- FTP_HOST="BACKUP_HOST"
- FTP_PORT="21"
- FTP_PASS="FTP_password"
- FTP_USER="FTP_username"
- # Local MySQL Settings
- SQL_USER="SQL_backup_user"
- SQL_PASS="SQL_backup_user_pw"
- SQL_HOST="localhost"
- SQL_TMPF="/tmp/sql_bak.$$.tmp"
- # info mail settings
- M_ADDR="someone@to-inform-about-backup.com"
- M_SUBJ="$HOSTNAME backup ("$(date +"%d.%m.%Y, %H:%M:%S Uhr")")"
- M_TMPF="/tmp/run_bak.$$.tmp"
- # dump mysql.. (no incrementals / not every one uses innodb)
- if [ $(pidof mysqld) != "" ] ; then
- mysqldump --opt -u$SQL_USER -p$SQL_PASS --all-databases > $SQL_TMPF
- bzip2 -q --best $SQL_TMPF
- rm -f $SQL_TMPF
- SQL_TMPD=${SCRIPT_ROOT%/}/MySQL
- mkdir -p $SQL_TMPD
- mv $SQL_TMPF.bz2 $SQL_TMPD/MySQL_$(date +%F).sql.bz2
- echo -e "==========================\nBackup MySQL-Database\n==========================" >> $M_TMPF
- duplicity full $SQL_TMPD ftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT/$HOSTNAME/MySQL >> $M_TMPF
- rm -rf $SQL_TMPD
- fi
- # backing up directories
- while read dir
- do
- echo -e "==========================\nBackup $dir\n==========================" >> $M_TMPF
- duplicity --full-if-older-than 1M $dir ftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT/$HOSTNAME/$dir >> $M_TMPF
- done <$INC_FS
- # send info mail
- /bin/mail -s "$M_SUBJ" "$M_ADDR" < $M_TMPF
- rm -f $M_TMPF
- unset PASSPHRASE
- exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement