每天自动备份mysql脚本

  1. 1、执行
  2. crontab -e
  3. 00 00 * * * /bin/bash yourpath/MysqLbak.sh
  4. 2、打开自动执行文件
  5. vi /etc/crontab
  6. etc中加入如下内容,让其自动执行任务。
  7. 00 00 * * * root /MysqLbak.sh
  8. 以上两个 00 00 * * * 为每天的凌晨自动执行脚本
  9.  
  10. 命令
  11.  
  12. M: 分钟(0-59)。每分钟用*或者 */1表示
  13. H:小时(0-23)。(0表示0点)
  14. D:天(1-31)。
  15. m: 月(1-12)。
  16. d: 一星期内的天(0~60为星期天)。
  17. 每五分钟执行 */5 * * * *
  18. 每小时执行 0 * * * *
  19. 每天执行 0 0 * * *
  20. 每周执行 0 0 * * 0
  21. 每月执行 0 0 1 * *
  22. 每年执行 0 0 1 1 *
  23. 重启cron
  24. /etc/rc.d/init.d/crond restart
  25. or
  26. service crond restart
  27. 详细请看crondwiki
  28. http://zh.wikipedia.org/wiki/Cron
  29. MysqLback.sh
  30. #!/bin/bash
  31. #功能说明:本功能用于备份数据库
  32. #编写日期:2010/12/06
  33. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:/usr/local/MysqL/bin
  34. export PATH
  35. #数据库用户名
  36. dbuser=’root
  37. #数据库密码
  38. dbpasswd=’123456
  39. #数据库名,可以定义多个数据库,中间以空格隔开,如:test test1 test2
  40. dbname=’test1 test2
  41. #备份时间
  42. backtime=`date +%Y%m%d%H%M%S`
  43. #日志备份路径
  44. logpath=’/second/backup
  45. #数据备份路径
  46. datapath=’/second/backup
  47. #日志记录头部
  48. echo ‘”备份时间为${backtime},备份数据库 ${dbname} 开始” >> ${logpath}/MysqLlog.log
  49. #正式备份数据库
  50. for table in $dbname; do
  51. source=`MysqLdump -u ${dbuser} -p${dbpasswd} ${table}> ${logpath}/${backtime}.sql` 2>> ${logpath}/MysqLlog.log;
  52. #备份成功以下操作
  53. if [ "$?" == 0 ];then
  54. cd $datapath
  55. #为节约硬盘空间,将数据库压缩
  56. tar jcf ${table}${backtime}.tar.bz2 ${backtime}.sql > /dev/null
  57. #删除原始文件,只留压缩后文件
  58. rm -f ${datapath}/${backtime}.sql
  59. echo 数据库 ${dbname} 备份成功!!” >> ${logpath}/MysqLlog.log
  60. else
  61. #备份失败则进行以下操作
  62. echo 数据库 ${dbname} 备份失败!!” >> ${logpath}/MysqLlog.log
  63. fi
  64. done
原文地址:https://www.cnblogs.com/surplus/p/14683345.html