Advertisement
ZappeL

ftp_backup.sh

Apr 8th, 2013
129
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.74 KB | None | 0 0
  1. #!/bin/bash
  2. SCRIPT_ROOT="/path/to/this/script"
  3.  
  4. # Runscript to preform incremental backups
  5. # Depends: gpg, duplicity, ncftp, mysql
  6. #
  7. # MySQL backupuser needs: GRANT *.* and GRANT LOCK *.*
  8. #
  9. # by Armas Spann 2013
  10.  
  11. # this file contains the directories to be backedup, one per line:
  12. INC_FS="incl.dir"
  13.  
  14. # GPG pass for the backups..
  15. export PASSPHRASE="SOMEPASS"
  16.  
  17. # FTP settings
  18. FTP_HOST="BACKUP_HOST"
  19. FTP_PORT="21"
  20. FTP_PASS="FTP_password"
  21. FTP_USER="FTP_username"
  22.  
  23. # Local MySQL Settings
  24. SQL_USER="SQL_backup_user"
  25. SQL_PASS="SQL_backup_user_pw"
  26. SQL_HOST="localhost"
  27. SQL_TMPF="/tmp/sql_bak.$$.tmp"
  28.  
  29. # info mail settings
  30. M_ADDR="someone@to-inform-about-backup.com"
  31. M_SUBJ="$HOSTNAME backup ("$(date +"%d.%m.%Y, %H:%M:%S Uhr")")"
  32. M_TMPF="/tmp/run_bak.$$.tmp"
  33.  
  34.  
  35. # dump mysql.. (no incrementals / not every one uses innodb)
  36. if [ $(pidof mysqld) != "" ] ; then
  37.         mysqldump --opt -u$SQL_USER -p$SQL_PASS --all-databases > $SQL_TMPF
  38.         bzip2 -q --best $SQL_TMPF
  39.         rm -f $SQL_TMPF
  40.         SQL_TMPD=${SCRIPT_ROOT%/}/MySQL
  41.         mkdir -p $SQL_TMPD
  42.         mv $SQL_TMPF.bz2 $SQL_TMPD/MySQL_$(date +%F).sql.bz2
  43.         echo -e "==========================\nBackup MySQL-Database\n==========================" >> $M_TMPF
  44.         duplicity full $SQL_TMPD ftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT/$HOSTNAME/MySQL >> $M_TMPF
  45.         rm -rf $SQL_TMPD
  46. fi
  47.  
  48. # backing up directories
  49. while read dir
  50. do
  51.     echo -e "==========================\nBackup $dir\n==========================" >> $M_TMPF
  52.     duplicity --full-if-older-than 1M $dir ftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT/$HOSTNAME/$dir >> $M_TMPF
  53. done <$INC_FS
  54.  
  55. # send info mail
  56. /bin/mail -s "$M_SUBJ" "$M_ADDR" < $M_TMPF
  57. rm -f $M_TMPF
  58.  
  59. unset PASSPHRASE
  60. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement