全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1339|回复: 10
打印 上一主题 下一主题

mysql数据库有什么好备份方案吗

[复制链接]
1#
发表于 2023-8-5 15:59:01 | 显示全部楼层
军哥LNMP里的备份脚本
  1. #!/usr/bin/env bash

  2. #Funciont: Backup website and mysql database
  3. #Author: licess
  4. #Website: https://lnmp.org

  5. #IMPORTANT!!!Please Setting the following Values!

  6. Backup_Home="/home/backup/"
  7. MySQL_Dump="/usr/local/mysql/bin/mysqldump"
  8. ######~Set Directory you want to backup~######
  9. Backup_Dir=("/home/wwwroot/vpser.net" "/home/wwwroot/lnmp.org")

  10. ######~Set MySQL Database you want to backup~######
  11. Backup_Database=("lnmp" "vpser")

  12. ######~Set MySQL UserName and password~######
  13. MYSQL_UserName='root'
  14. MYSQL_PassWord='yourrootpassword'

  15. ######~Enable Ftp Backup~######
  16. Enable_FTP=0
  17. # 0: enable; 1: disable
  18. ######~Set FTP Information~######
  19. FTP_Host='1.2.3.4'
  20. FTP_Username='vpser.net'
  21. FTP_Password='yourftppassword'
  22. FTP_Dir="backup"

  23. #Values Setting END!

  24. TodayWWWBackup=www-*-$(date +"%Y%m%d").tar.gz
  25. TodayDBBackup=db-*-$(date +"%Y%m%d").sql
  26. OldWWWBackup=www-*-$(date -d -3day +"%Y%m%d").tar.gz
  27. OldDBBackup=db-*-$(date -d -3day +"%Y%m%d").sql

  28. Backup_Dir()
  29. {
  30.     Backup_Path=$1
  31.     Dir_Name=`echo ${Backup_Path##*/}`
  32.     Pre_Dir=`echo ${Backup_Path}|sed 's/'${Dir_Name}'//g'`
  33.     tar zcf ${Backup_Home}www-${Dir_Name}-$(date +"%Y%m%d").tar.gz -C ${Pre_Dir} ${Dir_Name}
  34. }
  35. Backup_Sql()
  36. {
  37.     ${MySQL_Dump} -u$MYSQL_UserName -p$MYSQL_PassWord $1 > ${Backup_Home}db-$1-$(date +"%Y%m%d").sql
  38. }

  39. if [ ! -f ${MySQL_Dump} ]; then  
  40.     echo "mysqldump command not found.please check your setting."
  41.     exit 1
  42. fi

  43. if [ ! -d ${Backup_Home} ]; then  
  44.     mkdir -p ${Backup_Home}
  45. fi

  46. if [ ${Enable_FTP} = 0 ]; then
  47.     type lftp >/dev/null 2>&1 || { echo >&2 "lftp command not found. Install: centos:yum install lftp,debian/ubuntu:apt-get install lftp."; }
  48. fi

  49. echo "Backup website files..."
  50. for dd in ${Backup_Dir[@]};do
  51.     Backup_Dir ${dd}
  52. done

  53. echo "Backup Databases..."
  54. for db in ${Backup_Database[@]};do
  55.     Backup_Sql ${db}
  56. done

  57. echo "Delete old backup files..."
  58. rm -f ${Backup_Home}${OldWWWBackup}
  59. rm -f ${Backup_Home}${OldDBBackup}

  60. if [ ${Enable_FTP} = 0 ]; then
  61.     echo "Uploading backup files to ftp..."
  62.     cd ${Backup_Home}
  63.     lftp ${FTP_Host} -u ${FTP_Username},${FTP_Password} << EOF
  64. cd ${FTP_Dir}
  65. mrm ${OldWWWBackup}
  66. mrm ${OldDBBackup}
  67. mput ${TodayWWWBackup}
  68. mput ${TodayDBBackup}
  69. bye
  70. EOF

  71. echo "complete."
  72. fi
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-17 07:26 , Processed in 0.077082 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表