【问题标题】:Linux cronjob doesn't work (execute script)Linux cronjob 不起作用(执行脚本)
【发布时间】:2011-03-29 19:51:34
【问题描述】:

我使用命令 crontab -e 创建了一个 cronjob:

*/1 * * * * /var/lib/tomcat/webapps/ROOT/WEB-INF/scripts/test.sh 

这个文件test.sh 应该每分钟执行一次。但它不起作用。

如果我手动运行脚本,它可以正常工作。所以我认为问题在于 cronjob 而不是脚本 ;)

是否有任何权限或其他阻止 cronjob 的东西?

cronjob 语法是否正确?

谢谢

【问题讨论】:

  • 你的问题不是关于编程的
  • 问题是脚本,而不是 cronjob。
  • 这个问题是关于编程的。

标签: linux scripting shell cron


【解决方案1】:

首先,如果您希望每分钟完成一次,则不需要/1。只需将分钟字段设置为 * 即可。

接下来,您应该将,作为测试脚本中的 first 行(尽管在 #! 行之后,如果它在那里):

env >/tmp/test.sh.dummy
set >>/tmp/test.sh.dummy

并查看该文件是否显示。

这会告诉你脚本是否正在运行。

如果它没有在运行,请检查以确保cron 本身正在运行:

pax> ps -ef | grep cron | grep -v grep
root      1048     1  0 08:45 ?        00:00:00 cron

(我的是)。

如果它正在运行,最可能的问题是cron 运行您的作业的环境与您的shell 提供的环境相去甚远。检查输出到 /tmp/test.sh.dummy 文件的内容与执行 env ; set 时 shell 提供的内容之间的差异。

【讨论】:

    猜你喜欢
    • 2021-01-22
    • 1970-01-01
    • 2015-03-31
    • 2018-02-26
    • 2016-02-02
    • 2016-08-21
    • 2016-01-26
    相关资源
    最近更新 更多