【问题标题】:Shell script (.sh file) not working in crontab but it's working aloneShell 脚本(.sh 文件)不能在 crontab 中工作,但它可以单独工作
【发布时间】:2015-06-29 21:41:05
【问题描述】:

30 11 * * * /home/ubuntu/Projects/scripts/Sample.sh

syslog 文件包括:

6 月 28 日 11:30:01 ip-10-98-125-10 CRON[4225]: (tomcat7) CMD (/home/ubuntu/Projects/scripts/Sample.sh)

请帮帮我;我一直卡在它上面!

【问题讨论】:

  • 您是否查看过关于 SO 上的“它在命令行中有效但在 cron 中无效”的任何问题?有很多。问题几乎总是归结为“环境”的差异。要么未设置关键环境变量,要么脚本由 sh 而不是 bash 运行,并且脚本使用了 sh 不支持的功能,或者它尝试从标准输入执行交互式 I/O当它被给予/dev/null 作为标准输入,或者类似的输出,或者......这个列表实际上是有限的,它通常是其中之一。如果没有更多信息,我们无能为力。
  • 您还应该澄清您如何知道它在 crontab 中不起作用。例如,您是否在crontab 条目中使用bash -x /home/ubuntu/Projects/scripts/Sample.sh >/tmp/sample.log 2>&1 运行它?您是否在脚本开头添加了env。等等。

标签: shell ubuntu crontab


【解决方案1】:

这里我们需要指定shell命令来运行脚本。

30 11 * * * sh /home/ubuntu/Projects/scripts/Sample.sh

很明显,您甚至不能在交互式 shell 行中运行 /home/ubuntu/Projects/scripts/Sample.sh。 因为我们需要运行./home/ubuntu/Projects/scripts/Sample.sh(仅当Smaple.sh 可执行)或sh /home/ubuntu/Projects/scripts/Sample.sh

所以不要忘记shbash

【讨论】:

  • 这并没有提供问题的答案。要批评或要求作者澄清,请在其帖子下方发表评论。
  • @LukePeterson 对了,这里我们需要指定shell命令来运行脚本。
猜你喜欢
  • 1970-01-01
  • 2015-07-14
  • 2015-10-25
  • 2019-08-06
  • 1970-01-01
  • 2018-05-06
  • 2018-05-17
  • 2013-10-29
  • 2013-11-25
相关资源
最近更新 更多