任务计划
计划未来的时间
1、在未来的某个时间点执行一次某任务;
at:后面直接跟时间, at>COMMAND
at>
at>Ctrl+d结束,
指定时间的方法:
绝对时间:HH:MM, DD.MM.YY MM/DD/YY
相对时间:now+#
单位:minutes, hours, days, weeks
模糊时间:noon, midnight, teatime
命令的执行结果将以邮件的形式发送给安排任务的用户,mail可以查看
at -l = atq显示作业
at -d AT_JOB_ID = atrm AT_JOB_ID 删除作业
batch:自动选择系统相对空闲的时间来执行任务
2、周期性地执行某任务;
cron:自身是一个不间断的服务
anacron:cron的补充,能够实现让cron因为各种原因在过去的时间该执行而没执行的的任务在正常执行一次;
服务器上一般不启用anacron,一般在关机的笔记本等服务器上才启用
cron:
系统cron任务:系统为了周期性的执行某些任务执行的任务;如每天0晨执行更新系统数据
/etc/crontab
分钟 小时 天 月 周 用户 任务
用户cron任务
/var/spool/cron/USERNAME
分钟 小时 天 月 周 任务
时间的有效取值:
分钟:0-59
小时:0-23
天:1-31
月:1-12
周:0-7,0和7都表示周日
时间通配表示:
*:对应时间的所有有效取值
3 * * * * :表示每小时的3分执行
3 * * * 7 :表示每周日的每小时的第3分
13 12 * * * :每天的12点13分执行
,:离散时间点:
10,40 * * * * :每小时的10分和40分执行
-:连续时间点:
10 02 * * 1-5 :每周的周一到周五的2点10分执行
/#:对应取值范围内每多久一次
*/3 * * * *:每三分钟一次的任务
每2小时执行一次 08 */2 * * *
执行结果错误的将以邮件形式发送给管理员:
*/3 * * * * /bin/cat /etc/fstab > /dev/null
cron的环境变量:cron执行所有命令都去PATH环境变量指定的路径下去找
PATH /bin:/sbin:/usr/bin:/usr/sbin
所以最好要写上绝对路径:bin/cat
脚本中可以定义PATH变量
如export PATH=
想要将其运行次序提前,在其前边加0或者它自动排序是以字母排序的,可以利用这点
用户的cron任务管理:
crontab
-l:列出当前用户的所有cron任务
-e:编辑(可以自动检测语法错误)
随便写1个时提示是否重新编辑
-r:移除所有任务
-u USERNAME:管理其他用户的cron任务
anacron:
/etc/anacrontab
配置本机每隔2天在凌晨3点20备份一次/etc目录,备份文件存放至/backup/etc/目录,文件名形式如:etc-2012-06-20.tar.bz2
20 3 /3 * * cp -a /etc | cpio -H newc --quiet -o | bzip -k /backup/etc/etc-`date +%F`.tar.bz2
65表示开机65分后补充运行上次没运行的任务,以此类推