我在文件夹folder1/scripts/appname中有一个java代码。我需要进入文件夹“appname”并执行
mvn clean test -Dhr=1 -Dmin=0
它将执行并给出输出。现在我希望这项工作每 1 小时运行一次。所以我做了一个定时任务
40 * * * * /folder1/scripts/appname/appname.sh
脚本appname.sh有
#!/bin/bash
mvn clean test -Dhr=1 -Dmin=0
而且它不起作用。我怎样才能让它运行?
这是一台 ubuntu 机器。
最佳答案
像这样更改脚本:
#!/bin/bash
cd $(dirname "$0")
mvn clean test -Dhr=1 -Dmin=0
我在那里插入了一个命令来更改脚本所在的目录。如果您的 Maven 项目和脚本位于目录 /folder1/scripts/appname/
中,那么这应该可以工作。
如果没有这个,cron
将从用户的主目录执行/folder1/scripts/appname/appname.sh
。由于项目不存在,mvn clean test
失败。
除了更改脚本之外,另一种选择是更改 cron 作业:
40 * * * * cd /folder1/scripts/appname && ./appname.sh
要点是,无论如何,在运行 mvn
命令之前,您需要位于正确的目录中。
关于java - Maven 和 cron 作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23374231/