定时任务作用:在指定时间执行的程序。
定时任务一般分为两种:
1)临时性,突发性的,只执行一次的:at 命令。
2)定时性的,例行类的,每隔一个周期就要重复做的一件事: cron 命令
一、at命令
注意:at命令的服务是atd,在执行之前使用命令:systemctl status atd 查看atd服务的状态; systemctl start atd 开启atd服务; systemctl is-enabled atd 设置为开机启动atd服务;
在 Centos6 查看启动服务
chkconfig --list | grep atd
在18:50时在/root/目录下建立一个新目录test1(ctrl+d保存退出)
at 时间
at 20:00 2021-7-1 #21年7月1号晚上8点执行
at now +5min #在5分钟后执行
at 17:00 tomorrow #明天下午 5 点执行
at 7:00 pm +2 days #在 2 天以后下午7点执行
at 19:00 < /root/text1 #在晚上7点执行text1中的程序
atq、at -l 可查看当前计划任务
由图可以看出还有两个at计划任务,at命令中执行完毕的命令不会再显示;查看具体执行的命令信息路径 /var/spool/at/
at定时任务删除:
atrm 任务编号
atrm 4 结束编号为4的定时任务
二、cron 命令
注意:(一定要开启crond服务哦)
开启crond服务:systemctl start crond
查询crond服务状态systemctl status crond
crontab 命令格式及参数
crontab -u user1 -e #指定user1用户的cron 服务编辑
crontab -l #列出当前用户下的cron服务的详细内容
crontab -u user1 -l #列出指定用户user1下的 cron服务的详细内容
crontab -r #删除 cron 服务
crontab -e #编辑 cron 服务
crontab -e 编辑时的语法
“” 米号代表取值范围内的数字 (任意/每)
/ 指定时间的间隔频率 */10 * * * * *(任意10分钟)
- 代表某个数值到某个数字(5-10)
, 分开几个离散的数字(1,3,5-9,10)
实例:每隔一分钟,在/root/test/a.txt文件中追加写入123123;
在7月30号20点每五分钟将qweqwe写到a.txt的文件中一次
在7月30号和七月的周五20点每五分钟将qweqwe写到a.txt的文件中一次
在7月30号和七月的周五,凌晨2点和20点到23点,这两个时间段每隔五分钟将qweqwe写到a.txt的文件中一次