首页 > 网络 > 其他 >

Linux中使用crontab命令启用自定义定时任务

2016-10-17

一 简介Linux下的任务调度分为两类,系统任务调度和用户任务调度系统任务调度:系统需要定期执行的任务,比如重启、日志清理等,其配置文件是: etc crontab用户任务调度:某个用户需要定期执行的任务。

一 简介

Linux下的任务调度分为两类,系统任务调度和用户任务调度

系统任务调度:系统需要定期执行的任务,比如重启、日志清理等,其配置文件是:/etc/crontab

用户任务调度:某个用户需要定期执行的任务。用户可以使用 crontab 命令来配置自己的定时任务。所有用户配置的定时任务都存放在 /var/spool/cron/ 目录下,其文件名与用户名一致。如:root用户的所有定时任务就保存在/var/spool/cron/root 文件中

二crontab文件的含义

所有用户crontab文件都存放在 /var/spool/cron/ 目录下,以用户名命名。其中每一行都代表一项任务,每行的每个字段代表一项配置,它的格式一共分为六个字段,前五段是时间设置段,第六段是要执行的命令段,格式如下:

minute hour day month week command

  • minute: 表示分钟,可以是从0到59之间的任何整数

    hour:表示小时,可以是从0到23之间的任何整数

    day:表示日期,可以是从1到31之间的任何整数

    month:表示月份,可以是从1到12之间的任何整数

    week:表示星期,可以是从0到7之间的任何整数,这里的0或7代表星期日

    command:表示需要执行的命令,可以是系统命令,也可以是自己编写的脚本文件

    wKiom1f-447RkpcGAADq2h3iEls774.jpg

    在以上各个字段中,还可以使用以下特殊字符:

    • * 代表所有可能的值,例如:如果month字段是星号,则表示在满足其它字段的约束条件后每月都执行该命令

      , 用逗号隔开的值表示一个范围列表,例如:如果minute字段的值是“1,3,15”,则表示每小时的第1分钟、第3分钟和第15分钟都执行该命令

      – 可以用整数之间的–表示一个整数范围,例如:如果day字段的值是“2-6”,则表示每月的第2天到底6天都执行该命令

      / 可以用斜线表示命令的执行频率,例如:如果minute字段的值是“*/10”,则表示每十分钟执行一次命令

      三 一个定时任务实例

      某台服务器每10分钟向192.168.1.2进行时间同步:

      [root@web01cron]#vim/var/spool/cron/root

      添加以下内容:

      0-59/10****/usr/sbin/ntpdate-s192.168.1.2

      从上面的介绍可以知道,这句代码的意思是:从0到59分这个时间段每10分钟都执行时间同步命令,其时间同步服务器是192.168.1.2

      四 一些其他实例

      实例1:每1分钟执行一次command命令:* * * * * command

      实例2:每小时的第3和第15分钟执行命令:3,15 * * * * command

      实例3:在上午8点到11点的第3和第15分钟执行命令:3,15 8-11 * * * command

      实例4:每两天的上午8点到11点的第3和第15分钟执行命令:3,15 8-11 */2 * * command

      实例5:每个星期一的上午8点到11点的第3和第15分钟执行命令:3,15 8-11 * * 1 command

      实例6:每晚的21:30重启smb命令:30 21 * * * /etc/init.d/smb restart

      实例7:每月1、10、22日的4 : 45重启smb命令:45 4 1,10,22 * * /etc/init.d/smb restart

      实例8:每周六、周日的1 : 10重启smb命令:10 1 * * 6,0 /etc/init.d/smb restart

      实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb命令:0,30 18-23 * * * /etc/init.d/smb restart

      实例10:每星期六的晚上11 : 00 pm重启smb命令:0 23 * * 6 /etc/init.d/smb restart

    相关文章
    最新文章
    热点推荐