计划任务服务程序
计划任务,可以分为一次性任务和定时任务。
一次任务是通过at的服务实现的。
# 通过yum命令安装at工具
yum install at
# 启动atd服务
systemctl start atd.service
# 查看现在有多少个一次性定时任务
at -l
# 删除还未执行的一次性定时任务
atrm $id
# 设定在16:28创建目录learnAt
at 16:28
at> mkdir learnAt
# CTRL + D组合建退出一次性定时任务的设置
- 定时任务
默认启用的crond服务,可以实现定时任务。定义定时任务的格式为:
分 时 日 月 星期 命令。如果不需要限制,用*作为代替进行占位。
这里的分、时、日、月、星期对应的范围如下:
字段 | 含义 |
---|---|
分 | 0-59的整数 |
时 | 0-23的整数 |
日 | 0-31的整数 |
月 | 1-12的整数 |
星期 | 0-7,0和7都是星期天 |
crond服务相关的命令如下:
crontab -e 创建或编辑定时任务
crontab -l 列出当前用户设置的定时任务
crontab -r 删除选中的定时任务
现在做一个定时任务:每隔一分钟向文件(/home/learnCSPP/learnschedule)中追加当前时间,详情见命令如下:
# 看crond服务是否处于运行状态,如果不是的话,需要启动
systemctl status crond.service
# 预先创建存日期的目标文件
touch /home/learnCSPP/learnschedule
# 查看当前的计划定时任务
crontab -l
# 编辑计划定时任务
crontab -e
# 编辑如下(即每隔一分钟向/home/learnCSPP/learnschedule追加当前时间)
* * * * * date >> /home/learnCSPP/learnschedule
# 保存退出后,隔几分钟后看/home/learnCSPP/learnschedule的内容
cat /home/learnCSPP/learnschedule
# 通过以下命令可以删除定时任务
crontab -r