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:55
2、查看at任务
[root@localhost ~]# atq  
5       2013-12-14 18:55 a root
[root@localhost ~]# at -l
5       2013-12-14 18:55 a root
job 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 = atrm
4、多种时间的表示方法
[root@localhost ~]# at 6:00pm Dec 13 2013
at> /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 tomorrow
at> /bin/echo "hello world"
at> <EOT>
job 11 at 2013-12-14 12:00
5、相对时间
#就是对于当前时间而言,过多长时间执行。
[root@localhost ~]# at 10am +2 day
at> /bin/echo "hello world"
at> <EOT>
job 13 at 2013-12-15 10:00
[root@localhost ~]# at now +2 min
at> /bin/echo "hello world"
at> <EOT>
job 14 at 2013-12-13 19:16
PS:其实个人感觉怎么用的方便怎么用就行,这些方式知道就好。
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 -e
45 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.d
drwxr-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.deny
drwxr-xr-x 2 root root 4096 Jul 10 17:14 /etc/cron.hourly
drwxr-xr-x 2 root root 4096 Jul 10 17:14 /etc/cron.monthly
drwxr-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.deny
1 、这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  #当然,这个文件也会定期运行的啦。