码迷,mamicode.com
首页 > 系统相关 > 详细

每天一个Linux命令(44)crontab命令

时间:2016-06-11 10:35:53      阅读:698      评论:0      收藏:0      [点我收藏+]

标签:

    crontab命令被用来提交和管理用户需要周期性执行的任务,与windows下的计划任务类似。

 

    (1)用法:

    用法: crontab  [-u user]  file

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

 

    (2)功能:

    功能:  当安装完成操作系统后,默认会安装此服务工具,并且会自动启动crond进程,crond进程每分钟会定期检查是否有要执行的任务,如果有要执行的任务,则自动执行该任务。  

             在固定的间隔时间执行指定的系统指令或 shell script脚本。时间间隔的单位可以是分钟、小时、日、月、周及以上的任意组合。这个命令非常设合周期性的日志分析或数据备份等工作。

 

    (3)选项参数:

      1) -l         列出当前计时器的设置,查看定时运行的程序

      2) -e             编辑该用户的计时器设置,设置计时器

      3) -r        删除该用户的计时器设置

      4) -u<用户名称>  指定要设定计时器的用户名称

        

    (4)实例:(此命令用的不常,在此简要介绍)

      1)每1分钟执行一次command

* * * * * command

      2)每五分钟执行一次命令

 */5 * * * * command

     3)在每天的17:00执行这个命令

00 17 * * *  command

      4)在8:02,11:02,14:02,17:02,20:02 执行,在8点到20点的时间内,每三个小时执行一下命令

2 8-20/3 * * * command

     以后会讨论crondtab的几个用法:

     *创建一个新的crontab文件;

     *列出crontab文件;

     *编辑crontab文件;

     *删除crontab文件;

     恢复丢失的crontab文件;  

 

    (5)其他:

    1.什么是Windows的计划任务?

      在Windows中,系统有一项重要的“计划任务”功能,通过设置“计划任务”,你可以将每天或某一天的某个时间需要做的事拟成计划,到约定的时间,不管你在电脑上进行什么工作,系统都会提醒你或者启动你设定好的任务程序。

    2.crontab的简介:

      crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。常,crontab储存的指令被守护进程激活, crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。

    3.crontab文件:  

  crontab文件包含送交cron守护进程的一系列作业和指令。每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

    4.Linux下的任务调度

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

      系统任务调度:  系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下有一个crontab文件,这个就是系统任务调度的配置文件:

[root@localhost /]# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

# 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

      前三行是用来配置crond任务运行的环境变量。第一行SHELL变量指定了系统要使用哪个shell,这里是bash;第二行PATH变量指定了系统执行命令的路径;第三行MAILTO变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户。

 *: 表示任何时刻
  ,: 表示分割
-:表示一个段,如第二端里: 1-5,就表示1到5点
 /n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

      用户任务调度:  用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用 crontab 工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在/var/spool/cron目录中。其文件名与用户名一致。

[root@localhost /]# cd /var/spool/cron
[root@localhost cron]# ll
总用量 0
/etc/cron.deny       该文件中所列用户不允许使用crontab命令 
/etc/cron.allow      该文件中所列用户允许使用crontab命令
/var/spool/cron/    所有用户crontab文件存放的目录,以用户名命名

    5.crond服务

   1)安装crontab:

  yum install crontabs

      服务操作说明:

/sbin/service crond start //启动服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

  查看crontab服务状态:  service crond status

[root@localhost sunjimeng]# service crond status
Redirecting to /bin/systemctl status  crond.service
crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
   Active: active (running) since 五 2016-05-27 23:11:47 PDT; 1 weeks 5 days ago
 Main PID: 1303 (crond)
   CGroup: /system.slice/crond.service
           └─1303 /usr/sbin/crond -n

5月 27 23:11:47 localhost.localdomain systemd[1]: Started Command Scheduler.
5月 27 23:11:47 localhost.localdomain crond[1303]: (CRON) INFO (RANDOM_DELAY...
5月 27 23:11:48 localhost.localdomain crond[1303]: (CRON) INFO (running with...
Hint: Some lines were ellipsized, use -l to show in full.

  手动启动crontab服务:  service crond start

[root@localhost sunjimeng]# service crond start
Redirecting to /bin/systemctl start  crond.service

    查看crontab服务是否已设置为开机启动,执行命令:  ntsysv

[root@localhost sunjimeng]# ntsysv

       输入上述命令后,centOS弹出下面的页面:

技术分享

  加入开机自动启动:     chkconfig –level 35 crond on    (以后再介绍)

 

每天一个Linux命令(44)crontab命令

标签:

原文地址:http://www.cnblogs.com/MenAngel/p/5573297.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!