一次性计划任务
使用命令at
#没有这个命令要安装包
yum insatll -y at
#启动服务并设置开机自启动
systemctl start atd
systemctl enable atd
定义一个具体的时间
at "10:40 2020-03-04"
-l查看
-r 删除
-c job_id(为-l 里面的id) 查看对应的文件内容
at任务的文件地址
在/var/spool/at/目录下
执行完就会自动删除
其他的时间定义方式
例子
at now + 1 day 一天后
at now + 1 min 一分钟后
at now + 1 hours 1小时后
at 20:00 2021-9-30 在某天某时
at 17:00 tomorrow 明天下午5点执行
at 6:00 pm + 3 days 在三天后的下午6点执行
在输入过程中的键盘操作
ctrl + backspace 删除
ctrl + d 完成
周期性任务
启动服务并设置开机自启动
systemctl start crond
systemctl enable crond
crontab -e -u user_name
-e 编辑
-u 指定用户(root才可以-u)(没有指定就是当前用户)
-l 查看
-r 删除所有
#任务定义的格式
* * * * * command
分钟 时 日 月 星期 命令
小技巧:分时日月星
#参数配置
星期可以用0 7 表示
*/ 时间间隔(每隔多久) 例:*/2
* 代表取值范围内的所有数字 (任意/每)
/ 指定时间的间隔频率 例:*/10每十分钟
- 代表某个数字到某个数字,例如xx时间-xx时间 例:1-18
, 分开几个零散的数字,例如零散的时间 例:6,10-13,20
#注意
定义星期就不要定义日月,日月就为*
定义日月就不要定义星期,星期就为*
周期性任务执行完是不会删除的
crontab不支持每秒的任务
例子:
每隔两分钟执行
*/2 * * * * command
每一天两点1分开始备份:
1 2 * * * tar zcvf /opt/grub2.tar.gz /boot/grub2
每天晚上21:00 重启apache
0 21 * * * systemctl restart httpd
每月1、10、20日的2 : 45重启apache。
20 2 1,10,20 * * systemctl restart httpd
每月1到10日的2 : 45重启apache。
20 2 1-10 ** systemctl restart httpd
每隔两天的上午8点到12点的第3和第15分钟重启apach
3,15 8-12 */2 * * systemctl restart httpd
晚上11点到早上7点之间,每隔一小时重启apach
0 23-7/1 * * * systemctl restart httpd
删除:
删除某个周期计划任务,用crontab -e 编辑,删除对应的内容就行
任务地址
ls /etc/cron 按两下tab键
注: cron.d/ #是系统自动定期需要做的任务,但是又不是按小时,按天,按星期,按月来执行的,那么就放在这个目录下面。
cron.deny #控制用户是否能做计划任务的文件;
cron.monthly/ #每月执行的脚本;
cron.weekly/ #每周执行的脚本;
cron.daily/ #每天执行的脚本;
cron.hourly/ #每小时执行的脚本;
crontab #主配置文件 也可添加任务;
查看日期
cal显示日历
cal 年份(2020)显示该年的日历
cal 月名(june)显示该月的日历