linux利用crontab定时执行java代码(jar)

时间:2024-05-19 19:18:02

这是在上一篇博客https://blog.****.net/huihuiph/article/details/80237562 上新增的功能,这次在linux自动执行文件转移和删除。废话不多说,直接上代码边分析:

第一步:准备好java程序

这里不啰嗦,可看上一篇代码。保存好jar,我这是用Xftp来操作。新增一个文件夹用来放jar:

linux利用crontab定时执行java代码(jar)

第二步:写shell脚本

第一次接触这个crontab弄了大半天,下面会详说新手面临的问题

首先,新建一个.sh后缀的文件,我是在本地用Notepad建的注意保存时的编码格式(linux对应utf-8),百度很多种写法。我给大家看看我的:

linux利用crontab定时执行java代码(jar)

在这穿插一点小知识:

如何配置jdk环境变量,网上很多例如https://jingyan.baidu.com/article/1612d500a71b8fe20e1eee26.html,安装我不讲了,讲下配置吧。命令:vi /etc/profile(有Xftp就直接找到后编辑,要去root下编辑不然没权限 su下)配置好自己检查下,echo $JAVA_HOME看看有没有出来。

linux利用crontab定时执行java代码(jar)

第三步:添加crontab任务

这步等你熟练后就超级简单,就是给系统添加一个定时执行的任务,但第一次配置有点一脸懵逼。首先crontab -e编辑下:

linux利用crontab定时执行java代码(jar)

第一次弄的小伙伴下面可能会出现"no crontab for root - using an empty one",我弄了好久但现在告诉你忽视它啦,你第一次弄定时任务里肯定是空啦,我这个自动就到vi界面,你可以按i进行编辑,我就只是执行这个shell脚本,意思是每个一分钟执行一次(按需修改)。*/1****/后边跟你.sh的路径,编辑后Esc :wq保存。

linux利用crontab定时执行java代码(jar)

注意,crond服务是linux的内置服务,但它不会开机自动启动,所以你要启动,如果你想开机启动百度下超简单我这不需要就没弄,手动启动crond命令 service crond start,如果出现版本问题显示redirecting to。。。,你就直接进这个路径如下:ok啦。

linux利用crontab定时执行java代码(jar)

第四步:查看任务和代码运行结果

首先先看脚本加进crontab里了没:crontab -l

linux利用crontab定时执行java代码(jar)

查看定时器日志:一分钟执行一次并打印出来

linux利用crontab定时执行java代码(jar)

看实际文件夹效果:(截图时已经54分了忽略)

linux利用crontab定时执行java代码(jar)

一分钟后:

linux利用crontab定时执行java代码(jar)

成功!!!!

过程遇到的问题:

1.shell配置环境变量问题,这个问题是超多人卡住的点。对清楚路径,核实好代码正确性

2.添加到crontab任务中但不执行,先考虑是否开启crond服务,看看环境变量问题,最后手动执行shell脚本,我刚开始就是手动执行可以,但定时任务不执行,我排除了环境变量问题和代码问题后狂百度,百度说在crontab -e时编辑,在路径前要加/bin/sh/是不可以的,后来查看日志后原来根本就没这路径,你放哪就写哪就好。