【问题标题】:Can I use a tilde ( ~ ) in a mysqldump cronjob? Linux Cron is not running我可以在 mysqldump cronjob 中使用波浪号 ( ~ ) 吗? Linux Cron 没有运行
【发布时间】:2018-05-11 16:51:39
【问题描述】:

我遇到了与 this personthis person 相同的问题,我的命令在本地工作,但在 cron 任务内部,什么也没发生。

这是我要运行的内容:

/usr/bin/mysqldump -u root -ppassword database_name > ~/Documents/dump.sql

当我直接在终端中输入 I 时,这在本地有效!它可能会抛出一个错误:

mysqldump: [Warning] Using a password on the command line interface can be insecure

但它仍然有效。如果我在命令之前输入用户root,它甚至可以工作。

现在,这是 CRON(只是尝试每分钟运行一次以测试它是否有效)

*/1 * * * * root /usr/bin/mysqldump -u root -ppassword database_name > ~/Documents/dump.sql

然后……什么也没有发生。我从this question 和[这个人] 看到的是,这是一个语法问题。我不知道为什么这个 CRON 不会运行!

【问题讨论】:

  • 似乎将 dump.sql 放入 /root/Documents/dump.sql 或失败,因为没有 Documents 文件夹
  • 顺便说一句,为什么你每分钟都转储数据库? (:
  • 考虑使用$HOME 代替波浪号,因为波浪号可能无法在任何shell cron 用于执行脚本的情况下工作。更好的是,指定整个路径,为什么要把它留给变量扩展之类的?
  • Stack Overflow 是一个编程和开发问题的网站。这个问题似乎离题了,因为它与编程或开发无关。请参阅帮助中心的What topics can I ask about here。也许Super UserUnix & Linux Stack Exchange 会是一个更好的提问地点。

标签: linux cron


【解决方案1】:

您应该尝试使用$HOME 而不是~,因为波浪号扩展在 cron 作业中不可靠。

this 为例。 Here 是关于波浪号扩展的更多信息。

【讨论】:

  • 我们最终不得不使用 crontab -e 并将我们的 cron 粘贴到那里。 /etc/ 不工作。
猜你喜欢
  • 2017-09-29
  • 2018-01-12
  • 2018-05-21
  • 2020-12-06
  • 1970-01-01
  • 2019-02-16
  • 1970-01-01
  • 2011-04-26
  • 2012-08-18
相关资源
最近更新 更多