【Linux】计划任务管理crontab、at

一、计划任务管理 —— crontab

1. crontab 命令

•  按照预先设置的时间周期(分钟、小时、天…… )重复执行用户指定的命令操作,属于周期性计划任务,默认打开“/var/spool/cron/用户”文件

•  服务脚本名称:/etc/init.d/crond

•  主要设置文件

– 全局配置文件,位于文件:/etc/crontab

– 系统默认的设置,位于目录:/etc/cron.*/

– 用户定义的设置,位于文件:/var/spool/cron/

 

2. 管理cron 计划任务

•  编辑计划任务:crontab -e [-u 用户名]

•  查看计划任务:crontab -l [-u 用户名]

•  删除计划任务:crontab -r [-u 用户名]

 

3. crontab 任务的配置格式

分钟 小时 日期 月份 星期 run_command

字段

说明

分钟

取值为从0 到59 之间的任意整数

小时

取值为从0 到23 之间的任意整数

日期

取值为从1 到31 之间的任意整数

月份

取值为从1 到12 之间的任意整数

星期

取值为从0 到7 之间的任意整数,0 或7 代表星期日

命令

要执行的命令或程序脚本

 

4. 时间数值的特殊表示方法

• *    表示该范围内的任意时间

• ,    表示间隔的多个不连续时间点

• -    表示一个连续的时间范围

• /    指定间隔的时间频率

 

5. 示例(root 用户)

•  每天早上 7:50 自动开启 sshd 服务, 22 点 50 时关闭

•  每隔 5 天清空一次 FTP 服务器公共目录 /var/ftp/pub

•  每周六的7:30 时,重新启动httpd 服务

•  每周一、三、五的17:30 时,打包备份/etc/httpd 目录

 [root@drz ~]# crontab -e

50 7 * * * /sbin/service sshd start

50 22 * * * /sbin/service sshd stop

0 * */5 * * /bin/rm -rf /var/ftp/pub/*

30 7 * * 6 /sbin/service httpd restart

30 17 * * 1,3,5 /bin/tar jcvf httpdconf.tar.bz2 /etc/httpd

 

 

二、计划任务管理 —— at

 

1. at 命令

•  在指定的日期、时间点自动执行预先设置的一些命令操作,属于一次性计划任务

•  服务脚本名称:/etc/init.d/atd

•  设置格式:at [HH:MM] [yyyy-mm-dd]

 

2. atq 命令

•  用途:查询当前设置的at 任务 列表

 

3. atrm 命令

•  用途:删除指定任务编号的at 任务

•  格式:atrm 编号

 

4.示例

[root@drz ~]# service atd start    ##启动atd系统服务

[root@drz ~]#

[root@drz ~]# at 21:00

at> shutdown -h now

at> <EOT>                   ##Ctrl+d 提交

job 1 at 2017-02-24 21:00

[root@drz ~]# atq          ##查看任务

1 2017-02-24 21:00 a root

[root@drz ~]# atrm 1       ##删除任务