我正在尝试在 Ubuntu 服务器上设置一个 cronjob 以每晚运行 mysqldump。
在我的 Google 搜索中,我找到了各种提示,但我仍然无法让它发挥作用。这是我现在所拥有的:
命令(在 shell 中运行时工作正常):
/usr/bin/mysqldump -uuser -p****** dbname tablename > /var/sql_dump/dump.sql
我通过运行将其添加到 cronjob
sudo crontab -e
并添加以下行:
0 0 * * * /usr/bin/mysqldump -uuser -p****** dbname tablename > /var/sql_dump/dump.sql
但是当到达该时间(本例中为 00:00)时,不会创建任何文件。在 shell 中运行该命令时,执行甚至不需要一秒钟,因此应该很快。
根据某人的建议,我也在运行
sudo /etc/init.d/cron restart
但无济于事(cron 已重新启动,但仍没有创建文件)。
有人能发现我可能错过的东西吗?非常感谢您的回复。 :)
编辑:我发现了问题(在审查我的密码时错过了这个问题):我的密码中有 % 个字符,我必须转义这些字符。现在工作正常了:)
最佳答案
我不完全确定这是否是原因,但我会创建一个 shell 脚本来封装整个命令,包括参数和管道,并从 cron 运行该脚本。这样您就可以确保参数和管道不会影响 cron 进程。
您可以在系统日志中搜索来自 cron 的与任务相关的错误消息。他们应该记录在那里。
关于ubuntu - Ubuntu 上 cronjob 中的 Mysqldump,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8077383/