任务计划:
1.在未来的某个时间点执行一次某任务
batch:
at 时间
at> cOMMAND
at> ctrl+d
指定时间:
绝对时间 HH:MM DD.MM.YY MM/DD/YY: 10:20
例: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想删除fred的cron设置
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-7,0和7都表示周日
时间通配表示:
*: 对应时间的所有有效取值
3 * * * *
3 * * * 7
13 12 6 7 *
离散时间点:
10,40 02 * * 2,5
-:连续时间点:
10 02 * * 1-5
/#: 对应取值范围内每多久一次
*/3 * * * *
例:配置本机每隔两天在凌晨3点20备份一次/etc目录,备份文件存放至/backup目录,文件名形如:etc-2012-06-20.tar.bz2;
20 03 */3 * * /bin/tar zcf /backup/etc-`date +\%F`.tar.gz /etc/* &> /dev/null