Linux学习笔记<二十二>――计划任务

计划任务

1.在未来的某个时间点执行某一次任务;

batch:不需要指定时间,自动在系统空闲时间执行


at

at 时间

    时间格式:HH:MM YYYY-MM-DD

at>COMMAND

at>...

at>Ctrl+d


指定时间

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

相对时间:now+#

单位:minutes,hours,days,weeks

模糊时间:noon,midnight,teatime(下午4:00)

命令的执行结果,将以邮件的形式发送给安排任务的用户


at -l = atq:显示job

[root@localhost ~]# at -l
1	2015-08-16 03:00 a root
2	2015-08-17 02:46 a root

at -d AT_JOB_ID= atrm AT_JOB_ID


2.周期性地执行某任务

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

系统cron任务:

配置文件/etc/crontab

分钟 小时 天 月 周 用户 任务

run-parts path/to/directory 执行指定目录下的所有文件


[root@localhost ~]# cat /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


系统任务的管理

时间的有效取值:

分钟:0-59

小时:0-23

天:1-31

月:1-12

周:0-7 0和7都表示周日


时间通配表示:

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

3 * * * *表示每小时的第3分钟执行

3 * * * 7表示每周日每个小时的第3分钟执行

13 12 * * 5表示每周五的12:13分执行

,:离散时间点

10,40 *  * *表示每小时的第10分和40分执行

-:连续时间点

10,02 * * 1-5表示没周一到周五的02:10执行

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

*/3 * * * *表示每三分钟执行

* */2 * * *表示每隔一个小时每分钟执行


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

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

建议在脚本中export PATH= 定义PATH变量


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

用户cron任务:

配置文件/var/spool/cron/USERNAME

分钟 小时 天 月 周  任务

用户任务的管理

crontab

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

[root@localhost ~]# crontab -l
0 12 * * * date +'%d.%m.%Y'

-e:进入vi编辑,增删cron任务,可检测格式是否正确

-r:移除所有任务

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



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

配置文件/etc/anacron

没执行的天数开机后多少分钟执行 任务

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


你可能感兴趣的:(crontab,at,Linux学习)