Cron任务计划

   我们将系统执行的计划写成了脚本,但是不立即执行,安排在未来的某一时刻执行,这种机制就叫做任务计划,

任务计划方式有两种,下面详细介绍一下

1、在未来的某个时间点执行一次某任务;两个命令(atbatch

at

batch

at 时间

at> COMMAND

at> Ctrl+d

指定时间:

绝对时间:HH:MM, DD.MM.YY  MM/DD/YY

相对时间:now+#

单位:minutes, hours, days, weeks

模糊时间:noon, midnight, teatime

命令的执行结果:将以邮件的形式发送给安排任务的用户 ,后面必须加上单位。

at -l :显示作业的

at -d AT_JOB_ID = atrm  AT_JOB_ID:删除作业的

2、周期性地执行某任务;(cron

cron:自身是一个不间断运行的服务

anacron: cron的补充,能够实现让cron因为各种原因在过去的时间该执行而未执行的任务在恢复正常执行一次;

cron: 

系统cron任务:

/etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=root

HOME=/

# run-parts

01 * * * * root run-parts /etc/cron.hourly

02 4 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

~                                               

分钟  小时  天  月  周  用户  任务

用户cron任务:

/var/spool/cron/USERNAME

分钟  小时  天  月  周  任务

时间的有效取值:

分钟:0-59

小时:0-23

天:1-31

月:1-12

周:0-707都表示周日

时间通配表示:

*: 对应时间的所有有效取值

3 * * * * 

3 * * * 7

13 12 6 7 *

,: 离散时间点: 

10,40 02 * * 2,5 

-:连续时间点:

10 02 * * 1-5

/#: 对应取值范围内每多久一次

*/3 * * * *

每两小时执行一次:

08 */2 * * *

每两天执行一次:

10 04 */2 * *

执行结果将以邮件形式发送给管理员:

*/3 * * * * /bin/cat /etc/fstab &> /dev/null 

cron的环境变量:cron执行所有命令都去PATH环境变量指定的路径下去找

PATH  /bin:/sbin:/usr/bin:/usr/sbin

用户任务的管理:

crontab

-l: 列出当前用户的所有cron任务

-e: 编辑 

-r: 移除所有任务

-u USERNAME: 管理其用户的cron任务

anacron:cron的补充,替代不了

    SHELL=/bin/sh

    PATH=/sbin:/bin:/usr/sbin:/usr/bin

    MAILTO=root

    1    65 cron.daily run-parts /etc/cron.daily

    7    70 cron.weekly run-parts /etc/cron.weekly

30    75 cron.monthly run-parts /etc/cron.monthly

要想使用cron任务,必须保证cron服务是运行的