首页 > 代码库 > linux计划任务at crontab anacron
linux计划任务at crontab anacron
at: 用于执行一次性任务
at相关的配置文件 /etc/at.allow /etc/at.deny
如果存在/etc/at.allow文件,仅允许at.allow中包含的用户使用at;
如果不存在/etc/at.allow文件,则/etc/allow.deny文件被检查,at.deny文件中不包含的用户都允许使用at;
如果这两个文件都不存在,则仅允许root使用at;
缺省情况下,存在一个空的/etc/at.deny,允许所有用户使用at.
atq = at –l 查询任务队列
[root@unp ~]# atq
9 2014-08-29 17:00 a root
8 2014-08-28 16:00 a root
[root@unp ~]# at -l
9 2014-08-29 17:00 a root
8 2014-08-28 16:00 a rootatrm = at –d 删除任务
[root@unp ~]# atrm 8
[root@unp ~]# atq
9 2014-08-29 17:00 a root
at 18:00 tomorrow –f file 从文件中读取任务
[root@unp ~]# at 18:00 tomorrow -f ccdb_rsync.sh
job 11 at 2014-08-29 18:00
[root@unp ~]# atq
9 2014-08-29 17:00 a root
10 2014-08-29 18:00 a root
11 2014-08-29 18:00 a rootat 4pm + 3 days 在3天后的下午4点执行任务
[root@unp ~]# at 4pm + 3 days
at> echo "hello"
at> <EOT>
job 15 at 2014-08-31 16:00at 10:10 Sep 1 在9月1日的上午10:10分执行任务
[root@unp ~]# at 10:10 Sep 1
at> echo "hello"
at> <EOT>
job 16 at 2014-09-01 10:10
crontab: 用于执行周期性任务
crontab相关的配置文件: /var/spool/cron /etc/cron.allow /etc/cron.deny
/var/spool/cron/:用于保存用户的任务的目录
如果存在/etc/cron.allow文件,则仅允许cron.allow文件中存在的用户使用crontab;
如果存在/etc/cron.deny文件,则仅拒绝cron.deny文件中存的用户使用crontab;
如果/etc/cron.allow /etc/cron.deny都不存在,则只允许root使用crontab.
crontab –l 显示任务列表
crontab –e 编辑任务
[root@unp cron]# crontab -l
*/5 * * * * echo "hello world!"0 5 * * * touch file_`date +\%F`.txt
crontab任务的格式
[root@unp ~]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
第1个*:分(0-59)
第2个*:时(0-23)
第3个*:日(1-31)
第4个*:月(1-12)
第5个*: 周(0-6或sun,mon,tue,wed,thu,fri,sat)
command to be executed:代表执行的命令
例:
1.每5分钟执行一次
*/5 * * * * echo “hello world”
2.每小时10分,20-30分执行
10,20-30 * * * * echo “hello world”
3.执行秒级的任务,每10秒执行一次
* * * * * for i in {1..5}; do /bin/echo “how are you?”; sleep; done
4.如果执行的命令里包含%,需要转义
0 5 * * * touch file_`date +\%F`.txt
或者
0 5 * * * touch file_`date +’%F’`.txt
anacron
anacron也用于执行周期性任务,频率为每小时、每天、每周、每月 分别对应/etc/cron.hourly,/etc/cron.daily,/etc/cron.weekly,/etc/monthly;
anacron主要用于非24小时开机的系统,通过读取/etc/anacrontab文件来执行任务
linux计划任务at crontab anacron