cron服务

相对与at,cron的优点就是能够周期性的执行某个命令,at却只能执行一次,cron的后台进程名字是crond ,cron也是system V的服务,所以我们可以service crond start|stop 来启动和关闭此服务,也可以使用chkconfig或者ntsysv来选择cron服务的默认开启,这些命令在以前我们都讲过的

  命令:

  #crontab -e              编辑当前用户的cron表

#crontab -l               查看当前用户的cron表

#crontab -r              删除当前用户的cron进程

#crontab -u 用户名 以某用户的身份来控制cron表

还有个重要的知识点,就是当用户的计划任务建立后是存放在var/spool/cron这个目录

当使用crontab -e编辑当前用户的cron表后,会出现一个vi文件,cron的格式是这样的。分成两列,左边是时间,右边是运行的命令。时间是由5个部分组成。

例:

* * * * *          wall hello everyone

5个星号分别代表:minute hour day-of-month month-of-year day-of-week  ,而wall hello everyone 这是命令内容。上面的意识是每分每小时每天每月每周广播hello everyone。具体时间大家可以自己定义。如果要每两分钟发送就用*/2代替第一个*。也可以是用具体时间来表示。

我们使用crontab -e编辑当前用户的cron表

这里的5个星号就代表的时间和日期:

第一个*星号代表个小时的第几分钟:minute 范围是从0-59

第二个*星号代表每天的第几个小时:hour 范围是从0-23

第三个*星号代表每月的第几个日:day-of-month 范围从1-31

第四个*星号代表没年的第几个月:month-of-year 范围从1-12

第五个*星号代表每周的星期几:day-of-week 范围从0-6,其中0表示星期日

用户名:也就是执行程序要通过哪个用户来执行,这个一般可以省略;

命令:执行的命令和参数。

时程表的格式如下 :

f1 f2 f3 f4 f5 program

其中 f1 是表示分钟,f2 表示小时,f3 表示一个月份中的第几日,f4 表示月份,f5 表示一个星期中的第几天。program 表 示要执行的程序。

当 f1 为 * 时表示每分钟都要执行 program,f2 为 * 时表示每小时都要执行程序,其余以此类推

当 f1 为 a-b 时表示从第 a 分钟到第 b 分钟这段时间内要执行,f2 为 a-b 时表示从第 a 到第 b 小时都要执行,其余以此类推

当 f1 为 */n 时表示每 n 分钟个时间间隔执行一次,f2 为 */n 表示每 n 小时个时间间隔执行一次,其余以此类推

当 f1 为 a, b, c,... 时表示第 a, b, c,... 分钟要执行,f2 为 a, b, c,... 时表示第 a, b, c...个小时要执行,其余以此类推

使用者也可以将所有的设定先存放在档案 file 中,用 crontab file 的方式来设定时程表。

  例1:如果我要表示9月10日25分执行ls var/spool/cron任务怎么表示?

25 * 10 9 *         ls var/spool/cron

由于我没表示小时,所以就只能里面为每小时

  例2:我要在每周日,每分钟执行wall Hello redking.blog.51cto.com这个命令,时间怎么表示?

*/1 * * * 0 wall Hello redking.blog.51cto.com

*/   表示每多少分钟执行一次

  例3:每晚的21:30重启apache。

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

  例4:每月1、10、22日的4 : 45重启apache

        45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

例5:每周六、周日的1 : 10重启apache

    10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart

例6:在每天18 : 00至23 : 00之间每隔30分钟重启apache

    0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart

例7:每一小时重启apache

    * */1 * * * /usr/local/etc/rc.d/lighttpd restart

例8:晚上11点到早上7点之间,每隔一小时重启apache

    * 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart

例9:每月的4号与每周一到周三的11点重启apache

    0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart

例10:一月一号的4点重启apache

    0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart

例11:在 12 月内, 每天的早上 6 点到 12 点中,每隔3个小时执行一次 /usr/bin/backup

    0 6-12/3 * 12 * /usr/bin/backup

例12:每月每天的午夜 0 点 20 分, 2 点 20 分, 4 点 20 分....执行 echo "haha"

    20 0-23/2 * * * echo "haha"

猜你喜欢

转载自www.cnblogs.com/fanweisheng/p/11109424.html
今日推荐