文章目录
一、计划任务的基本概念
linux系统采用crond守护进程来控制系统和用户的计划任务,实现周期性的执行某种任务或处理某些事件。
Linux系统本身就有很多的计划任务,所以crond服务是默认安装和启动的。crond服务每分钟都会检查是否有需要执行的任务,如果有则自动执行该任务。执行以下命令可以看到crond服务的运行情况:
systemctl status crond
Linux下的计划任务分为两种:用户计划任务和系统计划任务。
二、用户计划任务
Linux的每个用户可以定义自己的计划任务,周期性的执行脚本或程序。计划任务的内容存放在crontab文件中,每个用户都有自己的crontab文件。
1、查看crontab文件
crontab -l [-u 用户名]
root用户可以用-u参数查看指定用户的计划任务,如果没有-u参数,表示查看自己的计划任务。普通用户只查看自己的计划任务,不允许使用-u参数。
2、编辑crontab文件
crontab -e [-u 用户名]
root用户可以用-u参数编辑指定用户的计划任务,如果没有-u参数,表示编辑自己的计划任务。普通用户只能编辑自己的计划任务,不允许使用-u参数。crontab缺省的编辑工具是vi。
3、删除crontab文件
crontab -r [-u 用户名]
root用户可以用-u参数删除指定用户的计划任务,如果没有-u参数,表示删除自己的计划任务。普通用户只删除自己的计划任务,不允许使用-u参数。
4、crontab文件格式
crontab文件中的每个任务由两部分组成,执行时间和执行命令。
1)执行时间,有5个参数:
第1部分:分钟(minute),取值0-59。
第2部分:小时(hour),取值0-23。
第3部分:月当中的天(day of month),取值1-31,。
第4部分:月份(month),取值1-12,或采用月份单词的英文简写。
第5部分:星期中的天(day of week),取值0-6,或采用星期单词的英文简写。
在以上各部分中,还可以使用以下特殊字符:
星号(*):代表全部的值,例如day of month字段如果是星号,则表示在满足其它字段的制约条件后每天执行该任务。
逗号(,):可以用逗号分隔开的值指定一个列表,例如,“1,2,5,7,8,9”。
中杠(-):可以中杠表示一个范围,例如“2-6”表示“2,3,4,5,6”。
正斜线(/):可以用正斜线指定时间的间隔频率,例如minute字段,“0-30/5”表示在0-30的范围内每5分钟执