Linux系统下定时执行脚本,并且防止周期内循环执行
最近在Linux下集成了Java写的代码,并且启用定时任务进行调用,简单描述一下基本流程;
- 准备好Linux要调用的脚本内容。这里简单进入java可执行文件的目录下,进行调用的一个脚本(Linux下调用包含jar包的class文件,注意,此文件应该包含main方法,也就是说应该是程序的入口文件)
- 把脚本文件billsort.sh上传至到/usr/sbin目录(目录可随意),并修改属性值(777),使其成为可执行文件
- (略选操作),手动执行一次脚本文件是否成功 ,进入 /usr/sbin目录下,然后调用sh文件即可,程序正常执行一次。
- 把脚本文件添加至定时任务(5分钟执行一次脚本billsort..sh)
a)运行指令crontab -e
b)输入i,进入编辑状态 c)输入 /5 * * * flock -xn /usr/sbin/billsort.sh -c
‘/usr/sbin/billsort.sh’(获得 文件的锁才能执行,如果程序执行超过5分钟,不会再次进入程序,防止周期内
重复执行文件多次) d)点击键盘ESC 然后输入 :wq e)运行指令crontab -l 查看是否添加任务成功 f)重启服务
service crond restart g)指令crontab -r 删除全部定时任务(如果移除定时任务可以执行此指令)