at: 一次性计划任务、属于触发性计划,每条任务只执行一次就失效了。at的配置:#at的配置方法非常灵活。1、指定时间[root@localhost ~]# at 18:55 //后边也可以加上具体日期。格式为:YY-MM-DD,也可以这样:
#直接指定任务的执行时间,但是不能指定过去的时间,如果指定过期的时间,那么就会等到下一个时间执行。#比如说,当前时间为19:03,而我指定的时间是18:55,那么就会在明天的18:55执行。at> /bin/echo "Hello Wrold!"at> <EOT> //这里Ctrl+d保存退出。job 5 at 2013-12-14 18:552、查看at任务[root@localhost ~]# atq 5 2013-12-14 18:55 a root[root@localhost ~]# at -l5 2013-12-14 18:55 a rootjob 3 at 2013-12-13 18:55#由上可以看出,atq=at -l。都可以查看3、删除at任务[root@localhost ~]# at -d 6 [root@localhost ~]# atq[root@localhost ~]# at -r = at -d = atrm4、多种时间的表示方法[root@localhost ~]# at 6:00pm Dec 13 2013at> /bin/echo "hello world"at> <EOT>job 12 at 2013-12-13 18:00[root@localhost ~]# at 19:50 12132013 at> /bin/echo "hello world"at> <EOT>job 10 at 2013-12-13 19:50[root@localhost ~]# at 12:00 tomorrowat> /bin/echo "hello world"at> <EOT>job 11 at 2013-12-14 12:005、相对时间#就是对于当前时间而言,过多长时间执行。[root@localhost ~]# at 10am +2 dayat> /bin/echo "hello world"at> <EOT>job 13 at 2013-12-15 10:00[root@localhost ~]# at now +2 minat> /bin/echo "hello world"at> <EOT>job 14 at 2013-12-13 19:16PS:其实个人感觉怎么用的方便怎么用就行,这些方式知道就好。crontab:周期性计划任务。和at相反。当然,还是周期性用的多一些。1、crontab的格式分 时 日 月 周 command取值:分[0~59] 时[0~23] 日[1-31] 月[1-12] 周[0-7] #周位中的“0和7”都表示为周日。2、示例:* 9 * * * //就是说每天的9点执行动作30 15-17 * * * //连续性,每天的15点、16点、17点的30分执行动作。30 12,15,18 * * * //不连续,每天的12点、15点、18点的30分执行动作。*/5 * * * * // 间隔时间,每5分钟执行一次。[root@localhost ~]# crontab -e45 20 * * * /usr/bin/wall "shutdown time 21:00" // 每天的20点45分发送一个广播[root@localhost ~]# crontab -l -u root //查看任务, -u指定用户。5 20 * * * /bin/echo "hello world" [root@localhost ~]# crontab -r -u root //删除该用户所有任务。如果要删除单一的一条任务,-e进入删除。[root@localhost ~]# crontab --hlep //查看帮助3、cron控制系统自动执行的全局周期性计划任:[ 可以在vim /etc/crontab 中这样写:][root@localhost ~]# cat -n /etc/crontab |tail -5 6 # run-parts 7 01 * * * * root run-parts /etc/cron.hourly 8 02 4 * * * root run-parts /etc/cron.daily 9 22 4 * * 0 root run-parts /etc/cron.weekly 10 42 4 1 * * root run-parts /etc/cron.monthly 身份 指定路径 任务目录[root@localhost ~]# ls -ld /etc/cron.*drwx------ 2 root root 4096 Oct 20 2011 /etc/cron.ddrwxr-xr-x 2 root root 4096 Jul 10 17:20 /etc/cron.daily-rw-r--r-- 1 root root 0 Jul 10 17:18 /etc/cron.denydrwxr-xr-x 2 root root 4096 Jul 10 17:14 /etc/cron.hourlydrwxr-xr-x 2 root root 4096 Jul 10 17:14 /etc/cron.monthlydrwxr-xr-x 2 root root 4096 Jul 10 17:19 /etc/cron.weekly/etc/cron.deny #被写在这个文件里的用户将不能编辑使用cron计划任务了。[root@localhost ~]# ll /etc/cron.deny -rw-r--r-- 1 root root 0 Jul 10 17:18 /etc/cron.deny#这个文件是必须要有的,如果不存在,则只有root用户才能使用cron。不过没关系,没了自行创建一个就可以。还有一个/etc/cron.allow文件,这在这里面的用户表示可以使用cron计划任务。总结:/etc/cron.allow和/etc/cron.deny1 、这2 个文件都不存在,只有root 用户可编辑计划任务;文件2 、仅/etc/cron.deny,只拒绝写在其中的用户编辑计划任;3 、仅/etc/cron.allow,只写在其中的用户被允许编辑计划任务;4 、均存在。/etc/cron.deny 文件被忽略。等于仅/etc/cron.allow。#第四条我亲自测试过了,我test同时写入这两个文件内,结果test用户依然可以使用cron任务计划,而其它用户则不能使用。4、cron周期性任务执行延迟,自动重执行。#真实环境下,肯定不能避免意外关机的情况,那么正好有cron任务要执行呢?不用但心,有anacrontab[test2@localhost ~]$ tail -3 /etc/anacrontab 1 65 cron.daily run-parts /etc/cron.daily //对于以天执行的任务没有执行,则在开机65分钟后执行延迟的任务。7 70 cron.weekly run-parts /etc/cron.weekly //这是对于以周执行一次的。30 75 cron.monthly run-parts /etc/cron.monthly //这是对于以月执行一次的。5、清理周期性计划任务的缓存。 /etc/cron.daily/tmpwatch #当然,这个文件也会定期运行的啦。