在linux中,除了用户即时执行的命令操作之外,还可以配置在指定的时间、指定的日期执行预先计划好的系统管理任务(如、定期备份或者采集监控数据等等)
centos7 中计划任务是由at 和 cronie 软件包提供的,并分别通过at、crontab 命令进行计划任务设置。
一、at命令
使用at命令设置的计划任务只在指定的时间点执行一次,前提是对应的系统服务atd 必须已经运行,需要注意的是,计划执行任务的时间、日期必须安排在当前系统的时刻之后,否则将无法正确设置计划任务。at命令之后依次指定计划执行的任务的时间、日期作为参数,确认之后将带 “at>” 提示符的任务编辑界面,每行设置一条执行命令,可以依次设置多条语句,最后 Ctrl +D组合键提交任务即可。
atq命令:查询未执行的任务,已经执行过的at任务不会出现在查询结果中
atrm命令:用来删除任务,删除过后的at 任务将不被执行,也不会出现在atq命令的查询结果中。
二、crontab命令
crontab命令设置的任务是周期性的重复执行,由软件包cronie 提供crontab 工具、系统服务 crond 和配置文件 /etc/crontab
(一)主要设置文件:
1、全局配置文件: /etc/crontab
2、系统默认的设置: /etc/cron.*/
3、用户定义的设置: /var/spool/cron/用户名
(二)配置格式:
特殊表示方式:
符号 | 含义 |
---|---|
* | 取值范围中的任意时间 |
- | 表示一个连续的时间范围 |
, | 表示一个间隔的不连续范围 |
/ | 间隔频率 |
(三)相关命令选项:
1、编辑计划任务:crontab -e [-u 用户名]
执行 crontab -e 命令之后,将打开计划任务编辑界面(与vi编辑器操作相同),用户可以通过该界面自行添加具体的任务配置,每行代表一个任务记录。
2、查看计划任务:crontab -l [-u 用户名]
3、删除计划任务:crontab -r [-u用户名]
crontab -r 删除的是全部任务,如果想删指定哪一个周期性任务的话,crontab -e 进入编辑器,把想删的那一行直接删除,在保存退出就可以了。
注意:root用户可以管理指定用户的计划任务;普通用户只能管理自己的计划任务。