ZappeL

ftp_backup.sh

Apr 8th, 2013
135
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_SUBJ="$HOSTNAME backup ("$(date +"%d.%m.%Y, %H:%M:%S Uhr")")"
  31. M_TMPF="/tmp/run_bak.$$.tmp"
  32.  
  33.  
  34. # dump mysql.. (no incrementals / not every one uses innodb)
  35. if [ $(pidof mysqld) != "" ] ; then
  36.         mysqldump --opt -u$SQL_USER -p$SQL_PASS --all-databases > $SQL_TMPF
  37.         bzip2 -q --best $SQL_TMPF
  38.         rm -f $SQL_TMPF
  39.         SQL_TMPD=${SCRIPT_ROOT%/}/MySQL
  40.         mkdir -p $SQL_TMPD
  41.         mv $SQL_TMPF.bz2 $SQL_TMPD/MySQL_$(date +%F).sql.bz2
  42.         echo -e "==========================\nBackup MySQL-Database\n==========================" >> $M_TMPF
  43.         duplicity full $SQL_TMPD ftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT/$HOSTNAME/MySQL >> $M_TMPF
  44.         rm -rf $SQL_TMPD
  45. fi
  46.  
  47. # backing up directories
  48. while read dir
  49. do
  50.     echo -e "==========================\nBackup $dir\n==========================" >> $M_TMPF
  51.     duplicity --full-if-older-than 1M $dir ftp://$FTP_USER:$FTP_PASS@$FTP_HOST:$FTP_PORT/$HOSTNAME/$dir >> $M_TMPF
  52. done <$INC_FS
  53.  
  54. # send info mail
  55. /bin/mail -s "$M_SUBJ" "$M_ADDR" < $M_TMPF
  56. rm -f $M_TMPF
  57.  
  58. unset PASSPHRASE
  59. exit 0
Advertisement
Add Comment
Please, Sign In to add comment