在cron中安排时,KShell脚本会跳过命令

时间:2016-03-14 07:26:08

标签: shell unix cron

我有一个执行java程序的Kshell脚本。

/path/to/java -jar jarfile.jar some parameters > log
Same line 5 times with different parameters appending output to log file.
cat log | mail -s email@email.com

我一直存在的问题是当我把这个脚本放在cron中时,只有最后一行记录了日志文件&发送电子邮件已执行。所有上述实际功能要求的行都被忽略。我在cron预定时间收到一封空白电子邮件,但脚本应该花费大约1小时。

但是当我手动运行脚本时,它的工作正常。

2 个答案:

答案 0 :(得分:0)

" Kshell" Korn Shell?在2>&1之后添加> log以获取邮寄给您的错误消息。他们可能会告诉你什么是错的。

答案 1 :(得分:0)

我检查了cron邮件是否有问题。对于“无法访问jarfile.jar”,我在脚本中添加了完整路径,并且对于“cat:0652-050无法打开/ path / to / log”,我使用touch命令创建了日志文件。现在我的脚本看起来像这样。

touch /path/to/log
/path/to/java -jar /path/to/jarfile.jar some parameters > /path/to/log
Same line 5 times with different parameters appending output to log file.
cat /path/to/log | mail -s email@email.com

我开始知道给予绝对路径是避免这些问题的关键。