php - Linux自动备份数据库失败
天蓬老师
天蓬老师 2017-04-10 17:43:53
[PHP讨论组]

shell
dbbackup.sh:

mysqldump -uname -ppassword dbname | gzip > /www/web/mysqlbackup/xiangyanghua`date +%Y-%m-%d_%H%M%S`.sql.gz

crontab

37 22 * * * root /www/web/mysqlbackup/dbbackup.sh

请问哪里有问题。

天蓬老师
天蓬老师

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(6)
大家讲道理

1 crontab 任务会用当前用户身份去执行的,加那个 root 没用;
2 那个命令手动执行一遍,看看能不能成功,或有无其它错误;
3 在你的 dbbackup.sh 脚本里面添加日志内容输出到文件,比如在开始行和结束行添加

echo $(date)--start >> /tmp/xxx.log

这种方式用来判断这个脚本是否有执行,以及执行到哪一步出错;
4 crontab 任务上加上执行的标准输出和错误输出

37 22 * * * /www/web/mysqlbackup/dbbackup.sh > /tmp/dbback.log 2>&1

5 脚本的可执行权限
6 mysqldump 如果是源码安装的话,需要注意 path 环境变量的问题,crontab 可能会读取不到路径,所以在脚本中 mysqldump 应该写绝对路径;

PHPz

1.直接运行命令,可以不
2.crontab服务开了没

黄舟

先查看crond服务开了没有,

/etc/init.d/crond status

然后添加定时任务到/var/spool/cron/root

echo "37 22 * * * /www/web/mysqlbackup/dbbackup.sh > /dev/null 2>&1 " >> /var/spool/cron/root
阿神

你的crontab语法错误了,去掉root,如下:
37 22 * /www/web/mysqlbackup/dbbackup.sh

黄舟

linux下遇到任何cron问题请先查看/var/log/cron执行日志,看看有什么问题,到底是执行了还是没执行,还有crontab文件请使用unix的换行符(末尾可能出现^M问题),请尽可能用vim进行编辑而不是别的编辑器。

巴扎黑

1.你先看看你备份命令的date那块写的正确不???
2.在crontab中执行脚本最好制定bash解释器执行

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号