前言
javaee支持定时任务调度,java.util下的Timer包,定时处理一些任务。
也有一些优秀的开源框架提供任务调度,例如quartz、TBSchedule、elastic-job等
对于简单的任务调度,spring自身也支持,Spring内置的Schedule(配置task) 这里要介绍的是linux自己提供的定时任务:crontab
1、查看有哪些定时任务及取消
crontab -l 表示列出所有的定时任务
* 小心,crontab -r 表示删除用户的定时任务,当执行此命令后,所有用户下面的定时任务会被删除,执行crontab -l后会提示用户:“no crontab for admin”
2、编辑
crontab -e 编辑,添加命令
i进入插入模式
ESC键 退出插入模式
:wq保存修改文件
(ps:编辑完后不需要重启,命令是自动生效的)
- 按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位置开始输入文件;
- 按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;
- 按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。
3、如果一定要重启也可以
service crond restart
关于系统的计划任务都会先在/var/log
[root@localhost ~]# cd /var/log/
[root@localhost log]# less cron
4、定时表达式
我用的是一些命令:
50 23 * * * <command>//每天晚上23:50
*/10 * * * * <command>//每10分钟执行一次
* * * * * <command> //每分钟执行
参考:
其他问题
1.定时任务调度正常,但文件未执行
跳转到某个目录
cd /目录
目录下有哪些文件
ls
查看文件权限:
ls -l
给文件加上操作权限
chmod +x *.sh(指定给哪个文件)