我一直在尝试在linux中安排一个工作来运行一个用Java编写的可运行的jar文件,它会发送电子邮件。
首先,我使用命令Java -jar /usr/test/test.jar
来运行jar文件。它运作良好,并发送电子邮件到我的Gmail帐户。
然后我使用crontab计划每10分钟运行一次作业。代码为0,10,20,30,40,50 * * * * java -jar /usr/test/test.jar
。
它没有像我预期的那样工作。我的Gmail中没有收到任何电子邮件。但我检查/ var / spool / mail。我在那里看到了一封新邮件。
我的问题是如何在将其作为工作安排时在我的Gmail中收到电子邮件。
更新: 我通过/ var / spool / mail中的电子邮件进行观察。这是消息之一:
来自test@test.job 2015年4月14日星期二10:10:01
Return-Path:test@test.job
X-Original-To:测试
Delivered-To:test@test.job
收到:test.job(Postfix,来自用户ID 1254) id B7D276B1E8D;星期二,2015年4月14日10:10:01 -0600(MDT)
来自:“(Cron Daemon)”test@test.job
收件人:test@test.job
X-Cron-Env:XDG_RUNTIME_DIR = / run / user / 1254
X-Cron-Env:LANG = en_US.UTF-8
X-Cron-Env:SHELL = / bin / sh
X-Cron-Env:HOME = / home / test
X-Cron-Env:PATH = / usr / bin:/ bin
X-Cron-Env:LOGNAME = test
X-Cron-Env:USER = test
消息标识号:20150413195002.0E0356E778C@test.job 日期:星期一,2015年4月13日13:50:02 -0600(MDT)
/ bin / sh:java:找不到命令
知道发生了什么事吗?
由于
答案 0 :(得分:1)
我怀疑你的路径没有正确设置,cron在自己的bash配置文件中运行,尝试java
的完整路径
答案 1 :(得分:0)
crontab在没有加载当前配置文件的情况下运行,很可能你的jar执行缺少一些全局变量/设置。 您应该先加载当前的配置文件,然后保存日志以进行进一步分析,而不是仅仅调用您的jar:
0,10,20,30,40,50 * * * * . ~/.profile; java -jar /usr/test/test.jar &>>/path/lo/log.log