`
javadonkey
  • 浏览: 110628 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

linux 下mysql自动备份

阅读更多
前不久要在linux下每天自动备份mysql数据库。
版本
  • Linux: redhat enterprise linux 5
  • mysql: 5.1
在网上找了找,要写个shell命令执行mysqldump然后保存文件
1. 创建shell脚本文件
引用

filename=`date +%Y%m%d_%H:%M`
mysqldump --opt database -u username -h host -ppassword | gzip > /var/mysqlbackup/$filename.gz

然后把该文件放到/etc/cron.daily/(每天执行目录)
  • /etc/cron.hourly/ (每小时)
  • /etc/cron.monthly/ (每月)
  • /etc/cron.weekly/ (每周)

然后在编辑/etc/crontab文件,改变/etc/cron.daily前面的时间参数(默认为4点)
引用

前面的时间格式为“M H D m d cmd”。其中,M代表分钟(0~59),H代表小时(0~23),D代表天(1~31),m代表月(1~12),d代表一星期内的天(0~6,0为星期天)。*表示任何.例如01 * * * * 表示每小时的01分执行

如果不是redhat要编辑/etc/crontab文件
gedit /etc/crontab

在最后加入
引用

    01 5 * * * root /opt/autobackup(上面shell脚本文件)

每天5点运行脚本,也可以修改5为其他指定时间
2. 为脚本增加权限
# chmod +x /opt/autobackup(面shell脚本文件)

3. 重启crontab
# /etc/rc.d/init.d/crond restart 


到这为止看似OK挺easy可是执行后也没有报错
发现/var/mysqlbackup/(备份目录)下有一个叫..%Y%m%d_%H:%M.gz的文件
看样是日期文件名没有生效。最后又搞了半天,也查了半天就是不知道怎么回事
最后问了一个朋友他让我把shell脚本发过去,过了一会。才知道是因为
引用

filename=`date +%Y%m%d_%H:%M`

这个" ' "应该是Tab键上的那点,而我打的是单引号。我疯
在此感谢他->孙伟

分享到:
评论
1 楼 liuxiang1982 2009-05-21  
文件名包含冒号,从linux下载到windows会出错误。

相关推荐

Global site tag (gtag.js) - Google Analytics