每天自动备份mysql脚本

来源:互联网 发布:湖南工业大学网络 编辑:程序博客网 时间:2024/04/28 07:56


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

www.kmnk01.com    www.kmnk03.com

0 0
原创粉丝点击