当前位置:Gxlcms > mysql > 一个Mysql自动备份脚本

一个Mysql自动备份脚本

时间:2021-07-01 10:21:17 帮助过:19人阅读

可以将这个脚本放进crontab,每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。 #!/bin/bash #This is a ShellScript For Auto DB Backup #Powered by aspbiz #2004-09 #Setting #设置数据库名,数据库登录名,

可以将这个脚本放进crontab,每天凌晨执行一次,自动备份 这个脚本每天最多只执行一次,而且只保留最近五天的备份在服务器上。
  1. <code>
  2. #!/bin/bash
  3. #This is a ShellScript For Auto DB Backup
  4. #Powered by aspbiz
  5. #2004-09
  6. #Setting
  7. #设置数据库名,数据库登录名,密码,备份路径,日志路径,数据文件位置,
  8. #以及备份方式
  9. #默认情况下备份方式是tar,还可以是mysqldump,mysqldotcopy
  10. #默认情况下,用root(空)登录mysql数据库,备份至/root/dbxxxxx.tgz
  11. DBName=mysql
  12. DBUser=root
  13. DBPasswd=
  14. BackupPath=/root/
  15. LogFile=/root/db.log
  16. DBPath=/var/lib/mysql/
  17. #BackupMethod=mysqldump
  18. #BackupMethod=mysqlhotcopy
  19. #BackupMethod=tar
  20. #Setting End
  21. NewFile="$BackupPath"db$(date +%y%m%d).tgz
  22. DumpFile="$BackupPath"db$(date +%y%m%d)
  23. OldFile="$BackupPath"db$(date +%y%m%d --date='5 days ago').tgz
  24. echo "-------------------------------------------" >> $LogFile
  25. echo $(date +"%y-%m-%d %H:%M:%S") >> $LogFile
  26. echo "--------------------------" >> $LogFile
  27. #Delete Old File
  28. if [ -f $OldFile ]
  29. then
  30. rm -f $OldFile >> $LogFile 2>&1
  31. echo "[$OldFile]Delete Old File Success!" >> $LogFile
  32. else
  33. echo "[$OldFile]No Old Backup File!" >> $LogFile
  34. fi
  35. if [ -f $NewFile ]
  36. then
  37. echo "[$NewFile]The Backup File is exists,Can't Backup!" >> $LogFile
  38. else
  39. case $BackupMethod in
  40. mysqldump)
  41. if [ -z $DBPasswd ]
  42. then
  43. mysqldump -u $DBUser --opt $DBName > $DumpFile
  44. else
  45. mysqldump -u $DBUser -p$DBPasswd --opt $DBName > $DumpFile
  46. fi
  47. tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  48. echo "[$NewFile]Backup Success!" >> $LogFile
  49. rm -rf $DumpFile
  50. ;;
  51. mysqlhotcopy)
  52. rm -rf $DumpFile
  53. mkdir $DumpFile
  54. if [ -z $DBPasswd ]
  55. then
  56. mysqlhotcopy -u $DBUser $DBName $DumpFile >> $LogFile 2>&1
  57. else
  58. mysqlhotcopy -u $DBUser -p $DBPasswd $DBName $DumpFile >>$LogFile 2>&1
  59. fi
  60. tar czvf $NewFile $DumpFile >> $LogFile 2>&1
  61. echo "[$NewFile]Backup Success!" >> $LogFile
  62. rm -rf $DumpFile
  63. ;;
  64. *)
  65. /etc/init.d/mysqld stop >/dev/null 2>&1
  66. tar czvf $NewFile $DBPath$DBName >> $LogFile 2>&1
  67. /etc/init.d/mysqld start >/dev/null 2>&1
  68. echo "[$NewFile]Backup Success!" >> $LogFile
  69. ;;
  70. esac
  71. fi
  72. echo "-------------------------------------------" >> $LogFile </code>

人气教程排行