图片 2

导言

图片 1

定期任务(cron
job)被用来安顿这些供给被周期性推行的命令。利用它,你能够布置有些命令或许脚本,让它们在有些设定的年月内周期性地运营。cron
是 Linux 可能类 Unix 系统中最棒实用的工具之一。cron
服务(守护进度)在系统后台运维,並且会无休无止地检讨 /etc/crontab 文件和
/etc/cron.*/目录。它同样也会检讨 /var/spool/cron/ 目录。

0 */2 * * * echo "Have a break now." >> /tmp/test.txt

Linux crontab 命令详细用法及示例

Linux系统则是由 cron (crond卡塔尔国 那么些体系服务来决定的。Linux
系统方面原来就有不菲的安排性专门的学问,因而那一个种类服务是暗中认可运营的。别的,
由于使用者自身也得以设置计划任务,所以, Linux
系统也提供了使用者调节布署任务的命令 :crontab
命令[@[email protected]]

一、crond简介

crond是Linux下用来周期性的推行某种职责或等候管理有些事件的贰个医生和医护人员进度,与windows下的安插职责相似,当安装实现操作系统后,私下认可会安装此服务工具,何况会活动运转crond进度,crond进程每分钟会准时检查是不是有要施行的职分,如若有要实践的职务,则自动施行该任务。

Linux下的职务调节分为两类,系统职务调整和客商职务调解。

系统职分调解:系统周期性所要奉行的做事,举例写缓存数据到硬盘、日志清理等。在/etc目录下有三个crontab文件,那几个正是系统任务调治的配置文件。

/etc/crontab文件包蕴上面几行:

[[email protected]
~]# cat /etc/crontab

SHELL=/bin/bash

PATH=/sbin:/bin:/usr/sbin:/usr/bin

MAILTO=””HOME=/

# run-parts

51 * * * * root run-parts /etc/cron.hourly

24 7 * * * root run-parts /etc/cron.daily

22 4 * * 0 root run-parts /etc/cron.weekly

42 4 1 * * root run-parts /etc/cron.monthly

[[email protected]
~]#

前四行是用来布置crond任务运营的境况变量,第一行SHELL变量钦命了系统要采用哪个shell,这里是bash,第二行PATH变量内定了系统履行命令的门路,第三行MAILTO变量内定了crond的天职实行音讯将通过电子邮件发送给root顾客,假诺MAILTO变量的值为空,则表示不发送职分施行新闻给顾客,第四行的HOME变量钦赐了在实行命令或许脚本时行使的主目录。第六至九行表示的含义就要下个小节详细描述。这里不在多说。

客商任务调治:客户准时要施行的劳作,比方顾客数据备份、依期邮件指示等。客商能够应用
crontab 工具来定制本身的计划任务。全体顾客定义的crontab 文件都被封存在
/var/spool/cron目录中。其文件名与客户名雷同。

使用者权限文件:

文件:

/etc/cron.deny

说明:

该公文中所列顾客区别意行使crontab命令

文件:

/etc/cron.allow

说明:

该文件中所列客户同意利用crontab命令

文件:

/var/spool/cron/

说明:

负有顾客crontab文件存放的目录,以顾客名命名

crontab文件的意思:

顾客所树立的crontab文件中,每一行都意味着一项职责,每行的各个字段代表一项设置,它的格式共分为七个字段,前五段是时刻设定段,第六段是要进行的命令段,格式如下:

minute hour day month week command

其中:

minute: 表示分钟,能够是从0到59以内的其它整数。

hour:表示小时,能够是从0到23之间的其他整数。

day:表示日期,能够是从1到31里面包车型大巴任何整数。

month:表示月份,能够是从1到1第22中学间的别样整数。

week:表示星期几,能够是从0到7里头的其余整数,这里的0或7象征星期六。

command:要施行的指令,能够是系统命令,也足以是和睦编排的台本文件。

图片 2

在以上种种字段中,还足以行使以下特殊字符:

星号(*):代表全部希望的值,举个例子month字段即使是星号,则意味着在知足此外字段的钳制条件后每月都实践该命令操作。

逗号(,):能够用逗号隔离的值钦定八个列表范围,比方,“1,2,5,7,8,9”

中杠(-):能够用整数之间的中杠表示叁个整数限定,举个例子“2-6”表示“2,3,4,5,6”

正斜线(/):能够用正斜线指如时期的间隔频率,比如“0-23/2”表示每两钟头施行贰次。同期正斜线能够和星号一同行使,比方*/10,假设用在minute字段,表示每十分钟实行叁回。

二、crond服务

安装crontab:

yum install crontabs

劳务操作表达:

/sbin/service crond start //运转服务

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

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

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

查阅crontab服务情形:

service crond status

手动启动crontab服务:

service crond start

查阅crontab服务是不是已设置为开机运转,执行命令:

ntsysv

参加开机自动运转:

chkconfig –level 35 crond on

三、crontab命令精解

1.命令格式:

crontab [-u user] file

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

2.指令成效:

通过crontab 命令,大家得以在定点的间隔时间施行钦命的系统指令或 shell
script脚本。时间隔断的单位能够是分钟、小时、日、月、周及以上的放肆组合。那一个命令特别设合周期性的日记剖析或数据备份等职业。

3.发令参数:

-u user:用来设定某些客户的crontab服务,比方,“-u
ixdba”表示设定ixdba顾客的crontab服务,此参数平日常有root顾客来运作。

file:file是命令文件的名字,表示将file做为crontab的义务列表文件并载入crontab。要是在命令行中未有一些名这些文件,crontab命令将收受标准输入(键盘)上键入的下令,并将它们载入crontab。

-e:编辑有个别客商的crontab文件内容。如若不钦点顾客,则象征编辑当前客商的crontab文件。

-l:呈现有个别客户的crontab文件内容,假若不点名顾客,则象征彰显当前顾客的crontab文件内容。

-r:从/var/spool/cron目录中剔除有些客户的crontab文件,假诺不内定顾客,则暗许删除当前客商的crontab文件。

-i:在剔除客户的crontab文件时给确认提醒。

4.常用艺术:

1卡塔尔. 创制一个新的crontab文件

在杜撰向cron进度提交三个crontab文件早先,首先要做的一件事情正是安装环境变量EDITO奥迪Q3。cron进度遵照它来分明使用哪个编辑器编辑crontab文件。9
9 %的UNIX和Linux顾客都施用vi,假如您也是这般,那么您就编写$
HOME目录下的. profile文件,在内部加入这么一行:

EDITOR=vi; export EDITOR

然后保留并脱离。不要紧成立三个名叫<user>
cron的公文,个中<user>是客户名,比方,
davecron。在该文件中参加如下的内容。

# (put your own initials here)echo the date to the console every

# 15minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo ‘date’ > /dev/console

保存并脱离。确信前边5个域用空格分隔。

在上边的事例中,系统将每间距1
5分钟向调整台出口二次当几日前子。若是系统崩溃或挂起,从最终所显示的时间就能够一眼看出系统是哪些日子结束专业的。在多少系统中,用tty1来表示控制台,能够依照实际情形对地点的例子举行相应的改进。为了提交你刚刚成立的crontab文件,能够把那几个新创立的公文作为cron命令的参数:

$ crontab davecron

以后该公文已经付诸给cron进程,它将每间距1 5分钟运转一遍。

而且,新成立文件的八个别本已经被放在/var/spool/cron目录中,文件名就是顾客名(即daveState of Qatar。

Linux中动用crontab成立安插义务

Linux中用crontab例行专门的工作安顿

Linux crontab不实践难点每一个核实

Ubuntu使用crontab定期职务

Linux布置职责(at batch crontab anacron卡塔尔  

正文恒久更新链接地址:

crontab 命令详细用法及示例 Linux系统则是由
cron (crond卡塔尔国 那一个系统服务来决定的。Linux
系统方面原来就有不行多的规划职业,由此这些系…

利用特殊字符串来节省时间

您可以动用以下 8
个新鲜字符串中的当中一个替代头三个字段,那样不只好够省去你的时日,还是能增加可读性。

特殊字符 含义
@reboot 在每次启动时运行一次
@yearly 每年运行一次,等同于 “0 0 1 1 *”.
@annually (同 @yearly)
@monthly 每月运行一次, 等同于 “0 0 1 * *”.
@weekly 每周运行一次, 等同于 “0 0 * * 0”.
@daily 每天运行一次, 等同于 “0 0 * * *”.
@midnight (同 @daily)
@hourly 每小时运行一次, 等同于 “0 * * * *”.

示例:

cron是一个linux下的按期实施工具,能够在没有必要人工干预的动静下运作作业。由于Cron
是Linux的内置服务,但它不活动起来,能够用以下的方法运转、关闭这么些服务:

怎么样禁止使用邮件输出

默许情况下,有些命令或然脚本的出口内容(假设某个话)会发送到你的本地邮箱账户中。若想停止收取crontab 发送的邮件,供给丰盛 >/dev/null 2>&1
这段内容到奉行的授命的前边,举个例子:

0 3 * * * /root/backup.sh >/dev/null 2>&1

假定想将出口内容发送到特定的邮件账户中,举个例子说 vivek@nixcraft.in
那么些邮箱, 则你要求像上面那样定义多少个 MAILTO 变量:

MAILTO="vivek@nixcraft.in"
0 3 * * * /root/backup.sh >/dev/null 2>&1

访问 “剥夺 Crontab
命令的邮件提醒”
查看更加多消息。

钦点数值由逗号分开。如:3,4,6,8意味那三个钦赐整数。

关于 /etc/crontab 文件和 /etc/cron.d/* 目录的更加多内容

/etc/crontab 是系统的 crontab 文件。日常只被 root
客商或守护进程用于配置种类等级的职务。各类独立的客商必需像下边介绍的那么采纳crontab 命令来设置和编写制定自个儿的任务。/var/spool/cron/ 也许/var/cron/tabs/ 目录贮存了个人客商的 crontab
文件,它应该备份在顾客的家目录个中。

 minute hour day month dayofweek command

明白私下认可的 /etc/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
02 4 * * * root run-parts /etc/cron.daily
22 4 * * 0 root run-parts /etc/cron.weekly
42 4 1 * * root run-parts /etc/cron.monthly

首先,情况变量必得被定义。如若 SHELL 行被忽视,cron 会使用暗许的 sh
shell。假诺 PATH
变量被忽视,就一贯不暗中认可的检索路线,全部的公文都须求使用相对路线来恒定。如果HOME 变量被忽视,cron 会使用调用者(顾客)的家目录代替。

其它,cron 会读取 /etc/cron.d/目录中的文件。平日情形下,像 sa-update
或许 sysstat 那样的类别守护进度会将他们的准时职分贮存在这里间。作为 root
顾客依旧一级顾客,你能够运用以下目录来布置你的准时职务。你能够平昔将脚本放到这里。run-parts命令会通过
/etc/crontab 文件来运作坐落于有个别目录中的脚本可能程序。

目录 描述
/etc/cron.d/ 将所有的脚本文件放在此处,并从 /etc/crontab 文件中调用它们。
/etc/cron.daily/ 运行需要 每天 运行一次的脚本
/etc/cron.hourly/ 运行需要 每小时 运行一次的脚本
/etc/cron.monthly/ 运行需要 每月 运行一次的脚本
/etc/cron.weekly/ 运行需要 每周 运行一次的脚本

在编辑cron服务时,编辑的内容有一点格式和预约,输入:crontab -u root -e

每时辰运行一回 ntpdate 命令

@hourly /path/to/ntpdate
*/5 * * * * /home/dbbackup/db2backup.sh backup

依期配置文件的体系

配备文件分为以下两样的品类:

  • UNIX 或 Linux 的系统级 crontab : 此类型平时由那多少个需求 root
    或相像权限的类别服务和要害职务接收。第多少个字段(见下方的字段介绍)为顾客名,用来钦点此命令以哪个顾客身份来实施。如此一来,系统的
    crontab 即能够随机顾客之处来施行操作。
  • 用户的 crontab: 顾客能够动用 crontab
    命令来设置归于他们本人的依期职分。 第四个字段为须要周转的授命,
    全部的吩咐都会以创办该 crontab 任务的客户的身价运转。

注意: 这种问答方式的 Cron 完结由 Paul Vixie
编写而成,并且被含有在无数 Linux 发行版本和类 Unix
系统(如广受迎接的第四版 BSD)中。它的语法被各样 crond 的落实所匹配。

那正是说作者该怎么设置、创立只怕编辑笔者自个儿的准时职务吗?

要编写你的 crontab 文件,须求在 Linux 或 Unix 的 shell
提示符后键入以下命令:

$ crontab -e

crontab 语法(字段介绍)

语法为:

1 2 3 4 5 /path/to/command arg1 arg2

或者

1 2 3 4 5 /root/ntp_sync.sh

其中:

  • 第1个字段:分钟 (0-59)
  • 第2个字段:小时 (0-23)
  • 第3个字段:日期 (0-31)
  • 第4个字段:月份 (0-12 [12 代表 December])
  • 第5个字段:11日在这之中的某天 (0-7 [7 或 0 代表星期六])
  • /path/to/command – 布置施行的台本或指令的称谓

方便人民群众回忆的格式:

* * * * * 要执行的命令
----------------
| | | | |
| | | | ---- 周当中的某天 (0 - 7) (周日为 0 或 7)
| | | ------ 月份 (1 - 12)
| | -------- 一月当中的某天 (1 - 31)
| ---------- 小时 (0 - 23)
------------ 分钟 (0 - 59)

简单的 crontab 示例:

### 每隔 5 分钟运行一次 backupscript 脚本 ##
*/5 * * * * /root/backupscript.sh

### 每天的凌晨 1 点运行 backupscript 脚本 ##
0 1 * * * /root/backupscript.sh

### 每月的第一个凌晨 3:15 运行 backupscript 脚本 ##
15 3 1 * * /root/backupscript.sh

各种月的4号和各类礼拜的礼拜四到星期四的清早11点

任务:列出你有着的准期职务

键入以下命令:

# crontab -l
# crontab -u username -l

要去除全体的准时任务,能够接受如下命令:

### 删除当前定时任务
crontab -r

### 删除某用户名下的定时任务,此命令需以 root 用户身份执行
crontab -r -u username

当修正的crontab必要保留时,文件会保留在成如下文件/var/spool/cron/username。文件名会根据顾客名而差别。

备份定期任务

# crontab -l > /path/to/file

# crontab -u user -l > /path/to/file

意味着每日3点实行/home/dbbackup/db1backup.sh
backup,4点试行/home/dbbackup/db2backup.sh
backup,若是是每五分钟实施一回可改为:

crontab 命令

crontab 是用来安装、卸载大概列出依期职务列表的下令。cron
配置文件则用于驱动 Vixie Cron 的
cron(8)
守护进度。各样客户都足以具有本人的 crontab 文件,纵然这几个文件都置身/var/spool/cron/crontabs
目录中,但并不意味着你能够一贯编辑它们。你供给通过 crontab
命令来编排也许配置你本身的依期任务。

0 6 * * * echo "Good morning." >> /tmp/test.txt //注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

怎么着行使操作符

操作符允许你为八个字段钦定三个值,这里有四个操作符可供使用:

  • 星号 (*) :
    此操作符为字段钦定全数可用的值。比如,在小时字段中,三个星号等同于各样小时;在月份字段中,四个星号则千篇一律每月。
  • 逗号 (,) :
    这些操作符钦定了二个包罗三个值的列表,比如:1,5,10,15,20,25.
  • 横杠 () : 此操作符钦命了叁个值的节制,比方:5-15
    ,等同于使用逗号操作符键入的 5,6,7,8,9,…,13,14,15。
  • 分隔符 (/) : 此操作符内定了二个步进值,例如: 0-23/
    能够用来时辰字段来钦定有些命令每小时被实践一遍。步进值也足以跟在星号操作符前边,假设您期望命令行每
    2 小时奉行叁回,则足以选用 */2。

对此以上各语句,星号(*State of Qatar表示具备可用的值。举例*在代表month时表示每月试行(必要相符别的约束规范State of Qatar该命令。 

标识“/”钦点步进设置。“/”表示步进值。如0-59/2概念每两分钟施行二遍。步进值也可用星号表示。如*/3用来运营每7个月份运维钦命任务。

上边再附一篇介绍:

世家只顾”run-parts”那么些参数了,假使去掉这些参数的话,后边就足以写要运维的有些脚本名,并非文件夹名了。

莫西干发型间的连字号(-卡塔尔(قطر‎表示整数列,比方1-4意思是整数1,2,3,4

 除了root客商之外的客户能够实行crontab配置陈设职责。全数客户定义的crontab存款和储蓄在目录/var/spool/cron下,任务会以创造者的身份被实施。要以特定客商创造八个crontab,先以该顾客登录,实行命令crontab
-e,系统会运行在VISUAL大概EDITOPAJERO中钦命的的编辑撰写软件编写crontab。文件内容与/etc/crontab格式相通。示举例下:

当今Cron那些服务一度在进程之中了,大家就足以用这么些服务了,Cron服务提供以下二种接口供我们利用:
 

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

本条格式的前一部分是对时间的设定,后边一部分是要试行的授命,假设要履行的吩咐太多,能够把那个命令写到三个剧本里面,然后在那处一贯调用那个本子就能够了,调用的时候记得写出命令的完全路线。时间的设定大家有自然的预约,前边七个*号表示七个数字,数字的取值范围和含义如下:

admin

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注