我正在尝试设置一个 cron 以每天使用 mysqldump 一次。没有输出,并且在观察时我看不到任何数据库使用情况top
。crontab 是:
mysqldump [database] -u[user] -p'[password]' > /home/newvtds/backups/db_backup_`date +\%Y-\%m-\%d_\%H-\%M-\%S`.sql
有任何想法吗?
编辑:我有其他适用于同一用户的 cron,它们可以正常工作
答案1
重新启动 cron 守护进程:
sudo /etc/init.d/crond restart
答案2
在 crontab 条目中,您必须转义 % 字符。这就是您的问题:
http://www.ducea.com/2008/11/12/using-the-character-in-crontab-entries/
答案3
事情可能会以多种方式出错。
- 您不需要“ ”作为密码。
- 在 cron 任务中,始终指定 mysqldump 的完整路径。由于大多数 shell 都会在环境变量中设置 PATH,因此 cron 可能不会做出这样的假设,以避免执行文件劫持。
对于 cron 任务错误,它们总是会发送给拥有它的用户。请查看您的系统邮件以获取更多信息。
答案4
一般来说,我会确保您cron
已设置好邮件输出方式。
我会[email protected]
在你的 crontab 中添加一行,然后添加一个测试 cron 来验证输出。
就像是
* * * * * date
并确保您获得输出。
还要记住,在 cron 下,您的程序PATH
非常小,可能只有 /usr/bin:/bin。并且没有 LD_LIBRARY_PATH。mysqldump 是在 /bin 还是 /usr/bin 中?