[TOC]
计划任务服务程序
计划任务分为以下两种
- 一次性计划任务:今晚11点30分开启网站
- 长期性计划任务:每周一的凌晨3点25分把/home/wwwroot目录打包备份为backup.tar.gz
1 一次性计划任务
命令:
-
at 时间
:设置在特定时间只执行一次的任务,一般用来满足临时的工作需求 -
at -l
:查看已设置好。但还未执行的一次性计划任务 -
atrm 任务序号
:删除某个一次性计划任务
示例:在今晚23:30分自动重启
[root@study sh_folder]# at 23:30
at> systemctl restart httpd
at> <EOT> #此处按下 Ctrl+d 来结束编写计划任务
job 2 at Thu Dec 13 23:30:00 2018
[root@study sh_folder]# at -l
2 Thu Dec 13 23:30:00 2018 a root
示例:非交互式创建一次性计划任务
[root@study sh_folder]# echo "systemctl restart httpd" | at 23:30
job 3 at Thu Dec 13 23:30:00 2018
[root@study sh_folder]# at -l
3 Thu Dec 13 23:30:00 2018 a root
2 Thu Dec 13 23:30:00 2018 a root
示例:删除一次性计划任务
[root@study sh_folder]# atrm 2
[root@study sh_folder]# at -l
3 Thu Dec 13 23:30:00 2018 a root
2 周期性计划任务
crontab
命令参数:
-
-e
:创建、编辑计划任务 -
-l
:查看当前计划任务 -
-r
:删除某条计划任务 -
-u
:如果是管理员,可以他人计划任务
2.1 使用 crond 设置任务参数字段
使用 crond 服务设置任务的参数格式:
分、时、日、月、星期 命令
使用crond设置任务的参数字段说明:
- 分钟:取值 0~59 整数
- 小时:取值 0~23 任意整数
- 日期:取值 1~31 任意整数
- 月份:取值 1~12 任意整数
- 星期:取值 0~7 任意整数,其中 0 与 7 均为星期日
- 命令:要执行的命令或程序
示例:每周一、三、五的凌晨3点25分,都需要使用 tar 命令把某个网站的数据目录进行打包处理,使其作为一个备份文件
[root@study sh_folder]# crontab -e
no crontab for root - using an empty one
crontab: installing new crontab
[root@study sh_folder]# crontab -l
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.taar.gz /home/wwwroot
参数的进一步说明:
- 逗号
,
:分别表示多个时间段(如"8,9,12",表示8月、9月和12月) - 减号
-
:表示一段连续时间周期(如字段"日"取值为"12-15",表示每月的12~15日) - 除号
/
:表示执行任务的间隔时间(如"*/2" 表示每隔两分钟执行一次程序)
示例:每周一至周五的凌晨1点钟自动清空 /tmp 目录内的所有文件
注意:
- 在
crontab
服务的计划任务参数中,所有命令一定要用绝对路径的方式来写,绝对路径可以使用whereis
命令进行查询- crond在内的很多服务默认调用的是Vim编辑器,crond可以使用
#
号开头上写上注释信息- 计划任务中 "分" 字段必须要有数值,绝对不能为空或是*号
[root@study sh_folder]# whereis rm
rm: /usr/bin/rm /usr/share/man/man1/rm.1.gz
[root@study sh_folder]# crontab -e
crontab: installing new crontab
[root@study sh_folder]# crontab -l
# 每周一、三、五的凌晨3点25分,都需要使用 tar 命令把某个网站的数据目录进行打包处理,使其作为一个备份文件
25 3 * * 1,3,5 /usr/bin/tar -czvf backup.taar.gz /home/wwwroot
# 每周一至周五的凌晨1点钟自动清空 /tmp 目录内的所有文件
0 1 * * 1-5 /usr/bin/rm -rf /tmp/*
网友评论