Advertisement
Guest User

Untitled

a guest
Jul 26th, 2016
80
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.44 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. ### System Setup ###
  4. DIRS="/var/www/shop/public_html"
  5. BACKUP=/tmp/backup.$$
  6. NOW=$(date +"%d-%m-%Y")
  7. DELDATE=$(date -d "-7 days" +"%d-%m-%Y")
  8.  
  9. ### MySQL Setup ###
  10. MUSER="xxx"
  11. MPASS="xxx"
  12. MHOST="localhost"
  13. MYSQL="$(which mysql)"
  14. MYSQLDUMP="$(which mysqldump)"
  15. GZIP="$(which gzip)"
  16.  
  17. ### FTP server Setup ###
  18. FTPD="/backup"
  19. FTPU="xxxxxx"
  20. FTPP="xxxxxx"
  21. FTPS="xxxxxx"
  22.  
  23. ### CALLBACK ###
  24. EMAILID="admin@xxxxxx.com"
  25.  
  26. ### Start Backup ###
  27. [ ! -d ${BACKUP} ] && mkdir -p ${BACKUP} || :
  28.  
  29. ### make a full backup ###
  30. FILE="html-full-${NOW}.tar.gz"
  31. tar -zcf ${BACKUP}/${FILE} ${DIRS} >/dev/null 2>&1
  32.  
  33. ### Start MySQL Backup ###
  34. # Get all databases name
  35. DBS="$(${MYSQL} -u ${MUSER} -h ${MHOST} -p${MPASS} -Bse 'show databases' | grep -v performance_schema)"
  36. for db in ${DBS}
  37. do
  38. FILE=${BACKUP}/mysql-${db}.${NOW}-$(date +"%T").gz
  39. ${MYSQLDUMP} -u ${MUSER} -h ${MHOST} -p${MPASS} --single-transaction --routines --triggers ${db} | ${GZIP} > ${FILE}
  40. done
  41.  
  42. ### Start FTP backup ###
  43. ncftp -u ${FTPU} -p ${FTPP} ${FTPS}<<EOF
  44. cd ${FTPD}/${DELDATE}
  45. rm *.gz
  46. cd ${FTPD}
  47. rmdir ${DELDATE}
  48. mkdir ${FTPD}
  49. mkdir ${FTPD}/${NOW}
  50. cd ${FTPD}/${NOW}
  51. lcd ${BACKUP}
  52. mput *
  53. quit
  54. EOF
  55.  
  56. ### If ftp backup failed ###
  57. if [ "$?" == "0" ]; then
  58. find ${BACKUP}/ -type f -name "*.gz" -exec rm -rf {} \;
  59. else
  60. CALLBACK=/tmp/backup.failed
  61. echo "Date: $(date)">${CALLBACK}
  62. echo "Hostname: $(hostname)" >>${CALLBACK}
  63. echo "Backup failed" >>${CALLBACK}
  64. mail -s "BACKUP FAILED" "${EMAILID}" <${CALLBACK}
  65. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement