【问题标题】:shell script: My crontab script does not runshell 脚本:我的 crontab 脚本没有运行
【发布时间】:2015-07-04 13:38:49
【问题描述】:

我正在尝试使用 crontab 运行一个简单的脚本,但它没有运行,我试图将输出写入日志,但它没有写入任何内容,这就是我所做的:

crontab -e

然后我添加了我的 shell 脚本(如果我手动运行它运行完美):

*/1 * * * * /script/check.sh > /script/output.log

(是的,我需要每分钟运行一次这个脚本),它的简单脚本可以检查另一个脚本是否正在运行。

知道为什么它没有从 crontab 运行但确实从控制台运行良好吗?

顺便说一句:我有直接管理员,如果我从那里运行它运行良好,但我需要 root 权限,这就是我使用 crontab 的原因。

提前致谢!

伊兰。

【问题讨论】:

  • 脚本是否依赖$PATH.profile中设置的环境变量?从cron 运行程序时,不运行任何 shell 启动脚本。
  • 如果你只是把echo running放在脚本里,能行吗?
  • 它只使用 grep,我已经添加了这个:SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/ sbin:/usr/bin,没用..
  • 您确定脚本的路径正确吗?系统日志中是否有任何消息?
  • 实际上没有,我什么都看不到它 output.log

标签: bash shell cron crontab


【解决方案1】:

好的,找到了,我不知道为什么,但我必须在我的脚本之前添加“sh”才能使它工作,无论如何它现在工作正常,谢谢!:

*/1 * * * * sh /script/check.sh > /script/output.log

【讨论】:

  • 如果它成功了,那么脚本可能缺少它的shebang line(脚本的第一行应该是#!/bin/bash#!/bin/sh,这取决于您是否使用任何bash 扩展在脚本中),或者它可能没有设置执行权限(chmod +x /script/check.sh 应该解决这个问题)。
  • ...我想知道:then I have added my shell script (Which it running perfect if I run it manually).
猜你喜欢
  • 2012-10-28
  • 1970-01-01
  • 2013-08-28
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 2012-10-27
  • 2020-02-02
相关资源
最近更新 更多