`
bluenemo
  • 浏览: 176344 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Crontab用法详解

阅读更多

Crontab是一个linux下的定时执行工具,它可以在无需人工干预的情况下运行作业。尽管Crontab 是Linux的内置服务,但它并不自动启动,可以用以下的方法手动启动、关闭这个服务:
(1)启动服务: /sbin/service crond start
(2)关闭服务: /sbin/service crond stop
(3)重启服务: /sbin/service crond restart
(4)重新载入配置: /sbin/service crond reload

 

启动方式依安装到系统上的文件位置的不同而不同,例如在有的Ubuntu系统下要使用下面的命令执行:

(1)启动服务:sudo /etc/init.d/cron start

(2)关闭服务:sudo /etc/init.d/cron stop

(3)重启服务:sudo /etc/init.d/cron restart

OR

(1)启动服务:sudo service cron start

(2)关闭服务:sudo service cron stop

(3)重启服务:sudo service cron restart


 

   或者,也可以将这个服务在系统启动的时候自动启动:在/etc/rc.d/rc.local这个脚本的末尾加上一行:/sbin/service crond start
    OK,现在Crontab这个服务已经在进程里面了,然后我们就可以用这个服务了。

Crontab服务提供的几种接口:

1、直接用crontab命令编辑
    crontab -u //设定某个用户的crontab服务,一般root用户在执行这个命令的时候需要此参数
    crontab -l //列出某个用户crontab服务的详细内容
    crontab -r //删除某个用户的crontab服务
    crontab -e //编辑某个用户的crontab服务

比如说,
(1)root查看自己的crontab设置:crontab -u root -l
(2)root想删除fred的cron设置:crontab -u fred -r

2. crontab编辑格式
    在编辑crontab服务时,编辑的内容中有一些格式和约定,输入:crontab -u root -e,就可以进入到vi编辑模式,编辑的内容一定要符合下面的格式:
    @daily flock /opt/vobile/megaidxddatabackup/megaindex_backup/var/lib/megaindex_backup.lock  /opt/vobile/megaidxddatabackup/megaindex_backup/bin/megaindex_backup.sh
注:前面的部分是对时间的设定;后面的一部分是要执行的命令;

(1)关于时间的设定,基本格式 :
*  *  *  *  *  command
分 时 日 月 周 命令

第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
  
     另外,除了数字外,还有几个个特殊的符号:"*"、"/"、"-"和","。*代表所有的取值范围内的数字,"/"代表每的意思,"*/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。
    比如:
    1)每天早上6点,执行命令:echo "Good morning." >> /tmp/test.txt
         0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为crontab把任何输出都email到root的信箱了。
    2)每两个小时,执行:echo "Have a break now." >> /tmp/test.txt
         0 */2 * * * echo "Have a break now." >> /tmp/test.txt
    3)晚上11点到早上8点之间每两个小时,执行:echo "Have a good dream:)" >> /tmp/test.txt
         0 23-7/2,8 * * * echo "Have a good dream:)" >> /tmp/test.txt
    4)每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点:
         0 11 4 * 1-3 command line
    5)1月1日早上4点:
         0 4 1 1 * command line

(2)每次编辑完某个用户的crontab设置后,crontab自动在/var/spool/crontab下生成一个与此用户同名的文件,此用户的crontab信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。crontab启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动crontab服务。

2、编辑/etc/crontab文件进行配置crontab
    crontab服务每分钟不仅要读一次/var/spool/crontab内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件 也能运用crontab服务做一些事情。用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。此文件的文件格式是:
    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin   
    MAILTO=root      //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号
    HOME=/    //使用者运行的路径,这里是根目录

    # run-parts
    01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本
    02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本
    22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本
    42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本

    注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。

3. crontab文件的一些例子:

 30 21 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每晚的21:30重启lighttpd 。

 45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每月1、10、22日的4 : 45重启lighttpd 。

 10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每周六、周日的1 : 10重启lighttpd 。

 0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart
上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启lighttpd 。

 0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart
上面的例子表示每星期六的11 : 00 pm重启lighttpd 。

* */1 * * * /usr/local/etc/rc.d/lighttpd restart
每一小时重启lighttpd

 * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart
晚上11点到早上7点之间,每隔一小时重启lighttpd

 0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启lighttpd

 0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启lighttpd
分享到:
评论

相关推荐

    crontab用法详解

    Linux命令之 crontab 用法详解。

    Crontab 用法详解.TXT

    linux Crontab 用法的详细介绍,

    Linux——Crontab使用详解.docx

    Crontab 命令详解

    crontab用法详解。

    用于定时执行某些SHELL,可在UNIX、LINUX系统上应用。

    crontab命令详解

    该文档详细介绍crontab 定时任务的用法,希望对大家有用

    Linux crontab 命令用法详解

    Linux crontab 命令 Linux crontab是用来定期执行程序的命令。 当安装完成操作系统之后,默认便会启动此任务调度命令。 crond 命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。 ...

    Linux定时任务Crontab详解

    Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍能记住了,关键是要记住/var/spool/cron这个目录。下面看一下...

    Linux定时任务Crontab详解(推荐)

    Linux下的定时执行主要是使用crontab文件中加入定制计划来执行,设置比Windows稍微复杂一些(因为没有图形界面嘛),但是也不是非常复杂,基本上用过一遍就能记住了,关键是要记住/var/spool/cron这个目录。...

    crontab详解.docx

    linux 系统则是由 cron (crond) 这个系统服务来控制的。Linux 系统上面原本就有非常多的计划性工作,因此...另外, 由于用户自己也可以设置计划任务,所以,Linux 系统也提供了使用者控制计划任务的命令 :crontab 命令。

    关于crontab的使用详解

    使用crontab定时执行php代码,例 每隔十分钟执行一次:/10 * * * * wget -q –sqider http://******一、在Crontab中使用PHP执行脚本 就像在Crontab中调用普通的shell脚本一样(具体Crontab用法),使用PHP程序来...

    LINUX命令大全之CRONTAB命令使用详解.pdf

    ...

    Linux定时任务Crontab命令使用详解与总结

    本为大家介绍了Linux定时任务Crontab命令使用详解并总结Crontab命令的一些使用技巧以及工作中遇到的一些问题解决方法

    Linux定时执行任务at和crontab命令详解

    本篇文章主要介绍了Linux定时执行任务at和crontab命令这两个命令的基本用法和区别,一起学习下。

    详解Linux下crontab的使用与注意事项

    用户使用新建循环型工作调度时,使用的crontab命令,crontab -e所有用户都可以使用,普通用户也只能为自己设置计划任务。然后自动写入/var/spool/cron/usename 用户控制文件 /etc/cron.allow : 将可以使用crontab...

    详解使用python crontab设置linux定时任务

    熟悉linux的朋友应该知道在linux中可以使用crontab设置定时任务。可以通过命令crontab -e编写任务。当然也可以直接写配置文件设置任务。 但是有时候希望通过脚本自动设置,比如我们应用程序部署时等。有需求当然就得...

    Python使用crontab模块设置和清除定时任务操作详解

    主要介绍了Python使用crontab模块设置和清除定时任务操作,结合实例形式分析了centos7平台上Python安装、python-crontab模块安装,以及基于python-crontab模块的定时任务相关操作技巧,需要的朋友可以参考下

Global site tag (gtag.js) - Google Analytics