这是在上一篇博客https://blog.****.net/huihuiph/article/details/80237562 上新增的功能,这次在linux自动执行文件转移和删除。废话不多说,直接上代码边分析:
第一步:准备好java程序
这里不啰嗦,可看上一篇代码。保存好jar,我这是用Xftp来操作。新增一个文件夹用来放jar:
第二步:写shell脚本
第一次接触这个crontab弄了大半天,下面会详说新手面临的问题
首先,新建一个.sh后缀的文件,我是在本地用Notepad建的注意保存时的编码格式(linux对应utf-8),百度很多种写法。我给大家看看我的:
在这穿插一点小知识:
如何配置jdk环境变量,网上很多例如https://jingyan.baidu.com/article/1612d500a71b8fe20e1eee26.html,安装我不讲了,讲下配置吧。命令:vi /etc/profile(有Xftp就直接找到后编辑,要去root下编辑不然没权限 su下)配置好自己检查下,echo $JAVA_HOME看看有没有出来。
第三步:添加crontab任务
这步等你熟练后就超级简单,就是给系统添加一个定时执行的任务,但第一次配置有点一脸懵逼。首先crontab -e编辑下:
第一次弄的小伙伴下面可能会出现"no crontab for root - using an empty one",我弄了好久但现在告诉你忽视它啦,你第一次弄定时任务里肯定是空啦,我这个自动就到vi界面,你可以按i进行编辑,我就只是执行这个shell脚本,意思是每个一分钟执行一次(按需修改)。*/1****/后边跟你.sh的路径,编辑后Esc :wq保存。
注意,crond服务是linux的内置服务,但它不会开机自动启动,所以你要启动,如果你想开机启动百度下超简单我这不需要就没弄,手动启动crond命令 service crond start,如果出现版本问题显示redirecting to。。。,你就直接进这个路径如下:ok啦。
第四步:查看任务和代码运行结果
首先先看脚本加进crontab里了没:crontab -l
查看定时器日志:一分钟执行一次并打印出来
看实际文件夹效果:(截图时已经54分了忽略)
一分钟后:
成功!!!!
过程遇到的问题:
1.shell配置环境变量问题,这个问题是超多人卡住的点。对清楚路径,核实好代码正确性
2.添加到crontab任务中但不执行,先考虑是否开启crond服务,看看环境变量问题,最后手动执行shell脚本,我刚开始就是手动执行可以,但定时任务不执行,我排除了环境变量问题和代码问题后狂百度,百度说在crontab -e时编辑,在路径前要加/bin/sh/是不可以的,后来查看日志后原来根本就没这路径,你放哪就写哪就好。