⑴、点:在未来的某个时间点执行一次某个任务,通过两个命令来实现at和batch
在命令提示符下输入at 时间,下面键入需要在那一刻执行的任务,并且可以支持多条任务,输入完第一条以后按回车输入第二条任务即可,ctrl+d即可提交计划任务
时间指定方式:
绝对时间:HH:MM , DD.MM.YY , MM/DD/YY
相对时间:now+#单位即可
单位:minutes,hours,days,weeks
模糊时间:noon,midnight,teatime
At任务的执行结果将以邮件的形式发给安排任务的用户。
Fg:三分钟后执行ls /etc/ 和cat /etc/fstab
at作业列表查看命令:at -l
删除作业:ad -d 作业号即可
At的配置文件/etc/at.deny和/etc/at.allow
如果deny单独存在,则是deny以为的所有用户都可以使用at命令
如果allow单独存在,则是只允许allow内的用户可以使用at命令
如果同时存在,则只允许allow内的用户使用at命令
batch:不需要指定时间,自动在系统空闲的时候执行指定的任务。其他用法与at相似。
⑵、周期性的执行某任务
1、 Cron:自身是一个不间断允许的服务。但是有时候会因为外因造成的关机或者服务中断,而在过去的时间点该执行未执行的任务讲不在会被执行。
anacron:cron的补充程序,能够实现让cron因为各种原因在过去的时间该实行而未执行的任务在恢复正常执行一次。
2、Cron的任务又分为:系统任务和用户任务
系统cron任务
定义文件/etc/crontab
格式:分钟 小时 天 月 周 用户 任务
用户cron任务
定义文件/var/spool/cron/USERNAME
格式:分钟 小时 天 月 周 任务
3、cron定义时间格式:
时间有效:
分钟:0-59
小时:0-23
天:1-31
月:1-12
周:0-7,0和7都表示周日
时间通配表示:
*:对应所有有效值
3 * * * * :每小时
3 * * * 7:每周
13 12 * * *:每天
13 12 6 * *:每月
13 13 6 7 *:每年
,:离散时间点
10,40 * * * *:每小时的10分和40分
– :连续时间点
10 02 * * 1-5:每周的周一到周五的2点10分
/# :对应取值范围每多久一次(#频率)
*/3 * * * *:每三分钟
fg:每两小时执行一次
01 */2 * * *
cron的执行结果将以邮件的实现发送给管理员。
*/3 * * * * /bin/cat /etc/fstab 2> /dev/null
4、cron执行任务的环境变量
cron支持的所有命令都去PATH环境变量的指定路径下去找
PATH /bin:/sbin:/user/bin:/usr/sbin
所以定义cron任务的时候使用命令的绝对路径
如果利用脚本文件执行cron任务,则在脚本内定义环境变量即可,PATH=…..格式如下
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/
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
5、用户的cron管理命令:crontab
crontab -l:列出用户的所有cron任务
crontab -e:新建一个cron任务,可以检查语法错误
crontab -r:移除所有任务。
crontab -u UDERNSMR:管理其他用户的cron任务,结合上面的-e -r等命令。
6、anacrontab
配置文件/etc/anacrontab
SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
1 65 cron.daily run-parts /etc/cron.daily
(1一个每天任务 65:开机以后的65分钟执行)
7 70 cron.weekly run-parts /etc/cron.weekly
30 75 cron.monthly run-parts /etc/cron.monthly