关于linux:每天学一个-Linux-命令98crontab

40次阅读

共计 2545 个字符,预计需要花费 7 分钟才能阅读完成。

命令简介

在服务器装置好零碎及相干服务之后,对于零碎的配置、服务的配置、数据的治理以及服务器的操作权限治理就变的尤为重要。因为,波及到服务器的各项平安(如:登录、操作)。

crontab 命令用来关上 cron 表进行编辑。

定时工作:顾名思义,就是定期执行某项操作或者某种行为。像 Windows 零碎同样它也有定时工作服务。

在 Linux 零碎中,crond 是 Linux 零碎中用来定期执行命令、脚本或指定程序的一种服务。定时工作个别有以下两种用处:

  • 1、零碎本身定期执行的操作或工作(如:日志轮询)。
  • 2、用户定期执行的操作或工作(如:定时更新同步数据、重要数据备份等)。

Linux 下的任务调度分为两类:零碎任务调度和用户任务调度

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

/etc/crontab 文件内容如下

[root@centos7 ~]# 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

从上机的配置文件,能够看出零碎定时工作格局 /etc/crontab 分为 6 段,以空格分隔。前 5 段为工夫格局,第 6 段是所需执行的命令。具体的阐明:

minute  #分钟,能够是从 0 到 59 之间的任何整数
hour   #小时,能够是从 0 到 23 之间的任何整数
day    #日期,能够是从 1 到 31 之间的任何整数
month  #月份,能够是从 1 到 12 之间的任何整数
week   #星期,能够是从 0 到 7 之间的任何整数,这里的 0 或 7 代表星期日
command  #执行的命令,能够是系统命令,也能够是本人编写的脚本文件

在上述的配置字段中,还会应用到上面的特殊字符

*(星号)#示意所有值。比方在第一段中如果应用 *, 则示意在满足其余条件的同时每分钟都执行前面的命令操作。,(逗号)#用逗号分隔的值示意指定的一个范畴。比方在第四段应用 1,3,5,7,则示意在第 1,3,5,7 月的含意。—(中杠)#示意一个范畴。比方在第二段应用 0 -8,则示意 0 点到 8 点这一区间范畴。/(正斜线)  #示意一个工夫的距离频率。比方在第一段应用 */5, 则示意每距离 5 分钟的含意。

语法格局

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

选项阐明

-e  #编辑该用户的计时器
-l  #列出该用户的计时器
-r  #删除该用户的计时器
-u< 用户名称 >  #指定要设定计时器的用户名称

定时工作书写与配置

书写定工作标准

在日常理论生产、测试环境中,书写定时工作是须要恪守肯定的标准、规定的。笔者依据本人理论生产环境书写教训,总结如下:

  • 1、书写定时工作时必须对每一行或一段加上正文信息。
  • 2、如里是以 shell 脚本执行的工作,在最后面加上解释 /bin/sh。
  • 3、对于执行脚本的定时工作,需在其结尾加上 >/dev/null 2>&1 将一些不必要的输入信息重定向到空,也就是不输入不须要的信息。
  • 4、应用零碎或服务命令要应用绝对路径,再写到脚本,最初将脚本写进定时工作中。
  • 5、标准应用目录(如定时工作执行的脚本目录设置成 /server/cron_scripts)。
2)定时工作配置

理论生产、测试环境,对于定时工作的配置也是须要有肯定操作标准的,具体如下:

  • 1、对于执行命令的模式的定时工作,须要先测试命令执行状况,确认无误后将执行的命令写进脚本。
  • 2、对于脚本模式的定时工作,首先就是须要调试脚本的整体执行状况,而后应用标准目录门路写进定时工作。
  • 3、对于生产环境的定时工作操作,必须在测试环境进行重复测试,确认无误后再利用到理论生产环境中,而后在定时工作执行后人工进行查看执行状况。

对于定时工作的具体实例及各类操作,可参考官网文档阐明。读者也可在本人的试验环境进行书写、配置,本章节就不做过多赘述。

以上的内容源自民工哥的新书《Linux 零碎运维指南 从入门到企业实战》

利用举例

查看以后登录用户下的定时工作状况

[root@centos7 ~]# crontab -l
no crontab for root

每小时的第 5 和第 15 分钟执行

5,15 * * * * command_name

在上午 9 点到 11 点的第 5 和第 15 分钟执行

5,15 9-11 * * * command_name

每隔 3 天的上午 9 点到 11 点的第 5 和第 15 分钟执行

5,15 9-11 */3 * * command_name

每个星期一的上午 9 点到 11 点的第 5 和第 15 分钟执行

5,15 9-11 * * 1 command_name

每月 1、11、21 日的 14:45 重启 httpd

45 14 1,11,21 * * /etc/init.d/httpd restart

每周六、周日的 1:10 重启 smb

10 1 * * 6,0 /etc/init.d/httpd restart

每小时执行 /etc/scripts/test.sh 这个脚本

01 * * * * /etc/scripts/test.sh

每天学一个 Linux 命令(96):ntpdate

每天学一个 Linux 命令(97):jobs

正文完
 0