Shell脚本定时执行jar简单实例(Cron)

1、我们先将写好的项目打包成jar

Eclipse下右击项目 Export----> Runable JAR file ---->选择要打包执行的类 ---->finish

2、测试jar包是否可以执行(进入命令行下,进入jar包所在路径,执行如下指令)

java -jar xxxx.jar

3、Ubuntu下安装cron 

apt-get install cron

4、查看cron是否安装成功

service cron status

5、编写shell脚本(假设我的jar 在 /var/test/文件夹下)

#!/bin/bash
source /etc/profile
java -jar /var/test/test.jar

6、添加定时任务

crontab -e

在该文件下添加(假设我的shell脚本在 /var/test/文件夹下)

* * * * * nohup /var/test/test.sh > /var/test/result.txt 2>&1

7、查看执行结果 

cd /var/test/
vim result.txt

8、过程中遇到的坑以及解决办法 

 (1)执行中通过service cron status 查看cron状态,发现报错

Please install an MTA on this system if you want to use sendmail!

这是因为java文件中有System.out.println("hello");语句,而cron守护进程执行时不会将"hello"输出到控制台,而是将其通过email发送到用户,因此这里我们改为输出到文件

* * * * * /var/test/test.sh >> /var/test/result.result

2、经过上述修改后发现还是不能输出到文件中,这是因为,我们的jar包在执行时就已经输出"hello"了,因此我们在这引入另一个进程守护命令"nohup",我们用到了其将所有结果指定输出到文件,而不输出到控制台的功能 

* * * * * nohup /var/test/test.sh > /var/test/result.txt 2>&1

 > :将结果输出到沟边的文件中去

2>&1 :如果程序执行中出错,那么就将错误写入大指定的文件中去

由此,简单的一个cron定时任务,shell执行jar的例子就完成了,欢迎各路大神指正缺点。。。

 

你可能感兴趣的:(Shell脚本定时执行jar简单实例(Cron))