Chinaunix首页 | 论坛 | 博客
  • 博客访问: 708451
  • 博文数量: 112
  • 博客积分: 3889
  • 博客等级: 少校
  • 技术积分: 1448
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-19 16:35
个人简介

追求卓越,成功就会在不经意间追上你

文章分类

全部博文(112)

文章存档

2015年(1)

2014年(2)

2013年(1)

2012年(16)

2011年(86)

2010年(6)

分类: LINUX

2011-07-27 08:11:02

crontab

以行为单位,前面六个字段用空格分开。

Minute(0-59) hour(0-23) day(1-31) month(1-12) weekday(0-6) [username] command

#SHELL,PATH,MAILTO,不多解释,都懂的哈,呵呵

#username只会出现在/etc/crontab/etc/cron.d下的文件里。它指明哪个command用哪个user来执行!其它地方如/var/spool/cron里就没有必要指定username字段啦,每个用户都有一个特定的文件夹的。 

其它辅助字符

字符

意义

*(星号)

表示任何时刻都接受!ex:59 23 * * * command表示在每天的23:59执行commad  

,(逗号)

 分隔时段,ex:0 3,6,9 * * * command,表示在每天的3:00,6:00,9:00执行command

-(减号)

时间段;ex:0 8-17 * * * command,表示在每天的8:0017:00执行commmand

/n(斜杠)

n 为整数,/n表示每隔n分钟执行相关命令;ex:*/5 * * * * command,表示每隔五分钟执行一次command

 

#周与日月不可同时并存,若存在,则两者都会匹配!

如 1 1 1 1 1 fedora echo “HAHAHAHAHA”,你认为它会怎样被执行?在每年的11号执行echo命令或者在每周一执行echo命令!不要以为它会在每年的11号且为星期一的时候才会被执行!

#对于一般用户用crontab命令就行了,不过对于系统级的作业直接编辑/etc/crontab就是啦!

下面 man crontab

SYSNOPSIS

    crontab [-u user] file

    crontab [-u user] [-l|-r|-e|] [-i] [-s]

 

DESCRIPTION

    crontab就是一个用来安装(添加)、移除或者列出那些存在表(ex./etc/crontab)里的用于驱动cron的程序.每个用户都可以有自己的crontab,存放/var/spool/中,它们一般不会被直接编辑。

    你可以允许或禁止用户执行计划任务。通常都有两个文件 cron.allowcron.deny,从字面意思就知道它们是干吗的啦!cron.allow里面的账户都能使用crontab,否则不能;cron.deny里的账户是不能使用crontab的,否则均能!以免混淆,建议只保留一个文件! cron.allow的优先级高于cron.deny;如果两者都不存在,那么只有root用户才能使用crontab.

OPTIONS

    -u 只有root才能执行这个任务,即帮其他用户建立或移除crontab计划工作

    -l 打印crontab的计划任务内容

    -r 移除crontab的内容

    -e 编辑crontab的内容

    -i 显示提示信息,比如怀-r一起使用时会给出’y/Y’的提示

EXAMPLE

    [root@kingdom cron]# crontab -e

    #fedora的身份在每天的12:00给自己发一封邮件,内容为.bashrc

0 12 * * * mail fedora –s “at 12;00”

#在每年的2月13号零点给老婆发一封情书,别每年都发一样的喔!切记!

0 0 13 2 * mail

#在每天23:59关机

59 23 * * * /sbin/shutdown –h now



#对于上面提到的crontab,如果我们的机器不是7*24在线的话,那么它要怎么完成它的工作?这是个问题,不过已经有人解决啦――anacron! anacron 并不能指定何时执行某项任务, 而是以天为单位或者是在开机后立刻运行 anacron 的动作,它会去侦测停机期间应该运行但是并没有运行的 crontab 任务,并将该任务执行一遍后,anacron 就会自动停止了。anacron 会以一天、七天、一个月为期去侦测系统未运行的 crontab 任务,anacron会去分析现在的时间与时间记录文件所记载的上次执行 anacron 的时间,两者比较后若发现有差异, 那就是在某些时刻没有运行 crontab !此时 anacron 就会开始执行未运行的 crontab 任务! 所以 anacron 其实也是透过 crontab 来运作的!

现在我们来看看这个anacron的相关选项:

    anacron [-s] [-f] [-n] [-d] [-q] [-t anacrontab] [-S spooldir] [job]

    anacron [-S spooldir] –u [-t anacrontab] [job]

    anacron [-V|-h]

    anacron –T [-t anacrontab]

选项:

-f 强制执行相关作业,忽略时间戳

    -u 只更新相关作业的时间戳,不再执行任何作业

    -s 顺序执行作业;在前一个作业未完成前不会开始下一个作业

    -n 现在、立刻、马上、执行作业!

    -d 不在后台创建子进程。在这个模式下,acron会将相关信息输出到标准错误流及

        Syslog,而作业的输出不受影响

    -q 禁止将信息输出到标准错误流,与-d选项合用

    -t some_anacrontab 

使用指定的anacrontab而不是默认的anacrontab(/etc/anacrontab)

    -T 测试anacrontab中是否有错误;若有则提示错误并返回1否则返回0

    - spooldir

        指定时间戳的存放地点spooldir;适用于那些想手动定制anacron的用户

    -V 打印版本信息并退出

    -h 打印简短的帮助信息并退出

阅读(3317) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~