任务计划:

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

batch

at 时间

at> cOMMAND

at> ctrl+d

指定时间:

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

例:8:20 最近一次8:20执行一次

相对时间:now +#

例:now +3m 从现在开始3分钟以后

单位:minutes , hours ,days ,weeks

 

模糊时间:noon 中午 midnight 午夜 teatime 下午四点

:从提交任务开始往后3分钟,查看/var ,看/etc/fstab的内容,执行这次任务的时间为job 1 at 2013-03-30 21:09,现在时间为Sat Mar 30 21:07:24 cST 2013

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

at -l=atq:显示作业列表

例:此时一号作业已经执行完毕,查看mail

 

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

例:删除2号作业

 

   查看作业的执行结果cat /etc/fstab

2.周期性地执行某任务

cron(服务)(最小单位分钟):自身是一个不间断运行的服务

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

cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。

由于cron Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务

/sbin/service crond start // 启动服务

/sbin/service crond stop // 关闭服务

/sbin/service crond restart // 重启服务

/sbin/service crond reload // 重新载入配置

你也可以将这个服务在系统启动的时候自动启动

/etc/rc.d/rc.local这个脚本的末尾加上: /sbin/service crond start

现在cron这个服务已经在进程里面了,我们就可以用这个服务了,cron服务提供以下几种接口供大家使用:

1.

直接用crontab命令编辑

cron 服务提供

crontab 命令来设定

cron 服务的,以下是这个命令的一些参数与说明

crontab -u设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab -l 列出某个用户

cron 服务的详细内容

crontab -r 删除没个用户的cron服务

crontab -e 编辑某个用户的cron服务

例:root查看自己的cron设置

crontab -u root -l

root想删除fredcron设置

crontab -u fred -r

在编辑cron服务时,编辑的内容有一些格式和约定,输入

:crontab -u root -e

进入vim辑模式,编辑的内容一定要符合下面的格式

例:*/1 * * * * ls >> /tmp/ls.txt

 查看所有任务cat /etc/fstab

 

 

任务调度的crond常驻命令

crond linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此任务

crond命令每分会定期检查是否有要执行的工作,如果有要执行的工作便会自

动执行该工作。

linux任务调度的工作主要分为以下两类:

系统执行的工作:系统周期性所要执行的工作,如备份系统数据、清理缓存

个人执行的工作:某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置。

cron文件语法

cron:

系统cron任务:

/etc/crontab

分钟 小时 天 月 周 用户 任务

用户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 * * * *

例:配置本机每隔两天在凌晨320备份一次/etc目录,备份文件存放至/backup目录,文件名形如:etc-2012-06-20.tar.bz2

20 03 */3 * * /bin/tar zcf /backup/etc-`date +\%F`.tar.gz /etc/* &> /dev/null