返回列表 回复 发帖

[MySQL] Script to backup all mysql database and upload to FTP

In this howto I will show you a simple bash script that dump ALL mysql databases on your server compressed to GZIP and then make a nice tar.gz file with them and upload it to the FTP of your choice.

The script
  1. #!/bin/sh
  2. # System + MySQL backup script
  3. # Copyright (c) 2009 Marchost
  4. # This script is licensed under GNU GPL version 2.0 or above
  5. # ---------------------------------------------------------------------

  6. #########################
  7. ######TO BE MODIFIED#####

  8. ### System Setup ###
  9. BACKUP=/root

  10. ### MySQL Setup ###
  11. MUSER="DBUSER"
  12. MPASS="DBPASSWORD"
  13. MHOST="localhost"

  14. ### FTP server Setup ###
  15. FTPD="/"
  16. FTPU="FTPUSER"
  17. FTPP="FTPPASSWORD"
  18. FTPS="FTPADDRESS"

  19. ######DO NOT MAKE MODIFICATION BELOW#####
  20. #########################################

  21. ### Binaries ###
  22. TAR="$(which tar)"
  23. GZIP="$(which gzip)"
  24. FTP="$(which ftp)"
  25. MYSQL="$(which mysql)"
  26. MYSQLDUMP="$(which mysqldump)"

  27. ### Today + hour in 24h format ###
  28. NOW=$(date +"%a%H")

  29. ### Create hourly dir ###

  30. mkdir $BACKUP/$NOW

  31. ### Get all databases name ###
  32. DBS="$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')"
  33. for db in $DBS
  34. do

  35. ### Create dir for each databases, backup databases in different folders ###
  36.   mkdir $BACKUP/$NOW/$db
  37.   FILE=$BACKUP/$NOW/$db/$db.sql.gz
  38.   echo $i; $MYSQLDUMP --add-drop-table --allow-keywords -q -c -u $MUSER -h $MHOST -p$MPASS $db $i | $GZIP -9 > $FILE
  39. done

  40. ### Compress all databases in one nice file to upload ###

  41. ARCHIVE=$BACKUP/server1-$NOW.tar.gz
  42. ARCHIVED=$BACKUP/$NOW

  43. $TAR -zcvf $ARCHIVE $ARCHIVED

  44. ### Dump backup using FTP ###
  45. cd $BACKUP
  46. DUMPFILE=server1-$NOW.tar.gz
  47. $FTP -n $FTPS <<END_SCRIPT
  48. quote USER $FTPU
  49. quote PASS $FTPP
  50. cd $FTPD
  51. mput $DUMPFILE
  52. quit
  53. END_SCRIPT

  54. ### Delete the backup dir and keep archive ###

  55. rm -rf $ARCHIVED
复制代码
返回列表
开源邮件服务器 开源邮件服务器 web 开源邮件 开源 mail 开源 邮件服务器 邮件技术 mail技术 反垃圾邮件 反垃圾mail mail投递
邮件服务器 mail服务器 开源软件 mail软件 mail服务新品牌 开源邮件服务新品牌
开源mail服务新网站 邮件服务新品牌 mail tmail mailserver 163邮件 sendmail |Linux维护|Linux代维|成都Linux维护|成都Linux代维