【问题标题】:Command is working in Console but Cronjob not work命令在控制台中工作,但 Cronjob 不起作用
【发布时间】:2020-06-25 07:58:05
【问题描述】:

我有这个命令可以在 cronjob 中运行

/bin/mkdir /var/www/html/webfiles/subdir/mobile/archives/$(date +%Y%m%d)

它可以很好地创建当前日期文件夹。

但是当我像这个例子一样让它成为 cron 时: 59 10 * * * /bin/mkdir /var/www/html/webfiles/subdir/mobile/archives/$(date +%Y%m%d)

它根本不起作用?

我已经尝试了重启、重启 crond 等所有方法。

从 root 用户运行。

谢谢

【问题讨论】:

    标签: ubuntu cron


    【解决方案1】:

    在 crontab 中,“%”字符必须用反斜杠“\”转义。

    参见手册页,man 5 crontab:

    “第六”字段(该行的其余部分)指定要运行的命令。该行的整个命令部分,直到换行符或“%”字符,将由 /bin/sh 或由 cronfile 的 SHELL 变量中指定的 shell 执行。命令中的“%”字符,除非用反斜杠 (\) 转义,否则将更改为换行符,第一个 % 之后的所有数据都将作为标准输入发送到命令。

    【讨论】:

    • 你的意思是:/bin/mkdir /var/www/html/webfiles/subdir/mobile/archives/$(date +\%Y\%m\%d)
    【解决方案2】:

    @rudimeier 谢谢。

    我在解决这个问题时发现了一件奇怪的事情,当我通过 Winscp 等 ftp 客户端编辑 crons 并保存 crons 时它不起作用。

    当我通过 cli 使用 nano 编辑器时,它起作用了。

    希望这对其他人也有帮助。

    谢谢

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 1970-01-01
      • 1970-01-01
      • 2016-09-25
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2023-01-12
      • 2016-04-14
      相关资源
      最近更新 更多