一、一次性任务at
使用方式:at + 时间点
输入命令、
ctrl + d提交
[root@clz ~]# at 2015-01-25
at> echo "Hello World"<EOT> job 1 at Sun Jan 25 09:13:00 2015
atq 和at -l:查看当前执行的计划任务;
[root@clz ~]# atq 1Sun Jan 25 09:13:00 2015 a root
at的日期格式:
HH:MM
MMDD[CC]YY, MM/DD/[CC]YY, DD.MM.[CC]YY or [CC]YY-MM-DD
[root@clz ~]# at 12:00 2015-01-25 at> echo "Hello World"<EOT> job 2 at Sun Jan 25 12:00:00 2015
[root@clz ~]# at 7pm 2015-01-25
[root@clz ~]# at 8AM+7days at> echo "Hello World!"<EOT> job 4 at Fri Jan 30 08:00:00 2015
at 1am tomorrow
计划任务保存在/var/spool/at目录下面,可以查看相对应的文件内容查看计划内容:
删除计划任务:atrm 和at -d
限制用户是否能做计划任务,可以在文件/etc/at.allow and /etc/at.deny 定义用户
二、周期性执行计划任务crontab
crontab -e + user:为某用户编辑计划任务
crontab的编辑格式:
field allowed values ----- -------------- minute分 0-59 hour时 0-23 day of month天 1-31 month月 1-12 (or names, see below) day of week星期 0-7 (0 or 7 is Sunday, or use names)
*:代表每的概念,当使用整点时间的时候,如:7:00,则分需要写0
/:代表每隔的意思
0,10,20,30 :代表10,20,30分别执行
1-5:代表1到5
分时天月是和的关系
分时天月周是和的关系:
分 时 天 月 周 命令 0 7 * * * /bin/bash 0,10,20,30 7 * * * /bin/bash 0,10,20,30 7 * * 1-5 /bin/bash 0,10,20,30 7 * * 1-3,6 /bin/bash 0-15/5 7 * * 1-5 /bin/bash 0 7 * 2-12/2 * /bin/bash 0 7 * 1-11/2 * /bin/bash 0 7 1-10 1-6 * /bin/bash 0 7 * 1-6 1-5 /bin/bash 0 7 1-10 1-6 1-5 /bin/bash
因为天和周有可能有冲突:所以天和周同时写的时候,它们是或者的关系
crontab的计划任务内容保存在目录/var/spool/cron下面
crontab -r :删除计划任务
控制用户是否能做计划任务的文件为:
/etc/cron.allow
/etc/cron.deny
/etc/cron.daily /etc/cron.monthly 目录分别放着每天和每月执行的脚本,可以讲脚本放到这些目录下面,然后定期执行;
/tmp目录定期清理工具:tmpwatch
让计划任务按照每隔多少秒执行,使用sleep命令:
* * * * * echo 'Hello' &>>/tmp/cron * * * * * sleep 1;echo 'world' &>>/tmp/cron
关于crontab详细的使用例子,参考以下链接:http://tecadmin.net/crontab-in-linux-with-20-examples-of-cron-schedule/