Linux的crontab命令

合集下载

如何使用crontab命令在Linux中设置定时任务

如何使用crontab命令在Linux中设置定时任务

如何使用crontab命令在Linux中设置定时任务在Linux中设置定时任务是一项非常重要的技能,它可以帮助我们自动化重复性的任务,提高工作效率。

而crontab命令是Linux系统中用来管理定时任务的工具。

本文将介绍如何使用crontab命令来设置定时任务。

一、什么是crontab命令Crontab(Cron Table)是Linux系统中用来管理定时任务的工具,它允许用户在指定的时间自动执行特定的命令或脚本。

Crontab命令是由cron守护进程控制的,该守护进程会在指定的时间间隔内检查用户的crontab文件,并执行相应的任务。

二、创建和编辑crontab文件要创建和编辑crontab文件,可以使用以下命令:```crontab -e```这个命令会打开一个文本编辑器,你可以在其中添加或修改定时任务。

三、crontab文件的格式crontab文件中每一行代表一个定时任务,格式如下:分时日月周命令```其中,分表示分钟,时表示小时,日表示日期,月表示月份,周表示星期。

命令是要执行的命令或脚本。

每个字段可以是一个具体的数值,也可以是一个用逗号分隔的数值列表,或者是一个数值范围。

四、设置定时任务的示例以下是一些使用crontab命令设置定时任务的示例:1. 每天晚上8点执行一个命令:```0 20 * * * command```2. 每隔5分钟执行一个命令:```*/5 * * * * command```3. 每个月的1号凌晨3点执行一个命令:```0 3 1 * * command4. 每周一到周五的上午9点执行一个命令:```0 9 * * 1-5 command```五、常用的时间单位符号在crontab文件中,我们可以使用一些特殊的时间单位符号,如下所示:- *:代表所有值,比如在分钟字段中使用 * 表示每分钟都执行。

- */n:表示每隔n个单位执行一次,比如在小时字段中使用 */2 表示每隔两个小时执行一次。

Linuxcrontab命令参数和时间格式说明

Linuxcrontab命令参数和时间格式说明

Linuxcrontab命令参数和时间格式说明crontab 是⽤来让使⽤者在固定时间或固定间隔执⾏程序之⽤参数说明选项功能-e编辑crontab定时任务-l查询crontab任务-r删除当前⽤户所有的crontab任务时间格式项⽬含义范围第⼀个“*”⼀⼩时当中的第⼏分钟0-59第⼆个“*”⼀天当中的第⼏⼩时0-23第三个“*”⼀个⽉当中的第⼏天1-31第四个“*”⼀年当中的第⼏⽉1-12第五个“*”⼀周当中的星期⼏0-7(0和7都代表星期⽇)特殊符号特殊符号含义*代表任何时间。

⽐如第⼀个“*”就代表⼀⼩时中每分钟都执⾏⼀次的意思。

,代表不连续的时间。

⽐如“0 8,12,16 * * * 命令”,就代表在每天的8点0分,12点0分,16点0分都执⾏⼀次命令-代表连续的时间范围。

⽐如“0 5 * * 1-6命令”,代表在周⼀到周六的凌晨5点0分执⾏命令*/n代表每隔多久执⾏⼀次。

⽐如“*/10 * * * * 命令”,代表每隔10分钟就执⾏⼀遍命令举例时间含义45 22 * * * 命令在22点45分执⾏命令0 17 * * 1 命令每周1 的17点0分执⾏命令0 5 1,15 * * 命令每⽉1号和15号的凌晨5点0分执⾏命令40 4 * * 1-5 命令每周⼀到周五的凌晨4点40分执⾏命令*/10 4 * * * 命令每天的凌晨4点,每隔10分钟执⾏⼀次命令0 0 1,15 * 1 命令每⽉1号和15号,每周1的0点0分都会执⾏命令。

注意:星期⼏和⼏号最好不要同时出现,因为他们定义的都是天。

⾮常容易让管理员混乱。

linux周期性执行指令crontab

linux周期性执行指令crontab

A、crontab简介我们应用crontab命令实现周期性执行指令的目标。

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。

该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。

通常,crontab储存的指令被守护进程激活,crond常常在后台运行,每一分钟检查是否有预定的作业需要执行。

这类作业一般称为cron jobs。

B、crontab命名crontab [-u user] filecrontab [-u user] [ -e | -l | -r ]-e (edit user's crontab)执行文字编辑器来设定时程表,内定的文字编辑器是vi-l (list user's crontab) 列出目前的时程表-r (delete user's crontab) 删除目前的时程表C、crontab文件crontab文件包含送交cron守护进程的一系列作业和指令。

每个用户可以拥有自己的crontab文件;同时,操作系统保存一个针对整个系统的crontab文件,该文件通常存放于/etc 或者/etc之下的子目录中,而这个文件只能由系统管理员来修改。

crontab文件的每一行均遵守特定的格式,由空格或tab分隔为数个领域,每个领域可以放置单一或多个数值。

C.1、时程表的格式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...个小时要执行,其余类推C、重启crond服务service crond restart。

linux中cron用法

linux中cron用法

linux中cron用法引言概述:Linux中的cron是一个非常重要的工具,它可以帮助我们自动化执行任务。

无论是系统维护还是日常工作,cron都能够提高效率和准确性。

本文将详细介绍Linux中cron的用法,包括设置定时任务、编辑cron表达式、查看和管理任务等。

正文内容:1. 设置定时任务1.1. 使用crontab命令:通过crontab命令可以编辑和管理用户的cron表。

可以使用crontab命令创建、编辑和删除定时任务。

1.2. 编辑cron配置文件:在Linux系统中,还可以直接编辑cron配置文件来设置定时任务。

这种方法适用于需要同时管理多个用户的定时任务。

2. 编辑cron表达式2.1. 分钟和小时字段:cron表达式中的分钟字段和小时字段分别用来指定任务执行的分钟和小时。

可以使用星号表示任意值,也可以使用逗号分隔多个值。

2.2. 日期和月份字段:除了分钟和小时字段,cron表达式还包括日期和月份字段,用来指定任务执行的日期和月份。

可以使用星号、逗号和连字符来设置多个值或范围。

2.3. 星期字段:在一些情况下,我们可能还需要指定任务在特定的星期几执行。

星期字段可以用来设置任务的执行日期。

同样,可以使用星号、逗号和连字符来设置多个值或范围。

3. 查看和管理任务3.1. 查看当前用户的定时任务:可以使用crontab命令的-l选项来查看当前用户的定时任务列表。

3.2. 查看所有用户的定时任务:root用户可以使用crontab命令的-u选项来查看其他用户的定时任务列表。

3.3. 管理任务:除了查看定时任务,我们还可以使用crontab命令的-e选项来编辑任务,使用-r选项来删除任务。

总结:在Linux中,cron是一个非常强大的工具,它可以帮助我们自动化执行任务。

本文从设置定时任务、编辑cron表达式、查看和管理任务等方面详细介绍了Linux 中cron的用法。

通过合理使用cron,我们可以提高工作效率和准确性,使得任务的执行更加方便和自动化。

crontab语法转换

crontab语法转换

crontab语法转换全文共四篇示例,供读者参考第一篇示例:Crontab是一个在Linux系统中用于执行定时任务的工具,通过crontab定时任务可以实现自动化的运维管理。

在实际使用中,我们需要根据具体需求来编写crontab语法,以达到预期的定时执行效果。

在本文中,我将向大家介绍crontab语法的基本结构,并提供一些常用的crontab语法示例,以便大家更好地理解和使用这一强大的定时任务工具。

一、crontab语法基本结构1. crontab命令格式在Linux系统中,我们可以通过crontab命令来编辑和管理定时任务,其基本格式如下:```crontab [选项]```crontab命令的常用选项包括:- `-e`:编辑当前用户的定时任务- `-l`:列出当前用户的定时任务- `-r`:删除当前用户的定时任务在编辑定时任务时,我们需要使用特定的格式来描述任务的执行时间。

crontab定时任务格式如下:```* * * * * command```每个`*`代表一个时间字段,具体含义如下:- 第一个`*`:分钟(取值范围为0-59)- 第二个`*`:小时(取值范围为0-23)- 第三个`*`:日期(取值范围为1-31)- 第四个`*`:月份(取值范围为1-12)- 第五个`*`:星期几(0表示星期日,1-6表示星期一至星期六)在这里,我们可以通过设置不同的时间字段来描述不同的执行时间规则,从而实现精确的定时任务运行效果。

1. 每天凌晨1点执行脚本要实现每天凌晨1点执行脚本的效果,我们可以使用如下crontab 语法:```0 1 * * * /path/to/script.sh```在这里,`0`表示分钟为0,`1`表示小时为1,`*`表示日期、月份和星期几均为通配符,`/path/to/script.sh`表示要执行的脚本路径。

2. 每周一至周五早上9点半执行任务3. 每个月的1号和15号凌晨2点执行任务三、注意事项在编写crontab定时任务时,务必要仔细理解各个时间字段的含义,避免出现错误的定时任务规则。

linux_下的crontab如何使用

linux_下的crontab如何使用

linux 下的crontab如何使用crontab命令的功能是在一定的时间间隔调度一些命令的执行。

在/etc目录下有一个crontab 文件,这里存放有系统运行的一些调度程序。

每个用户可以建立自己的调度crontab。

cron 的主配置文件是/etc/crontab,它包括下面几行:SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# run-parts01 * * * * root run-parts /etc/cron.hourly02 4 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly前四行是用来配置cron 任务运行环境的变量。

SHELL 变量的值告诉系统要使用哪个shell 环境(在这个例子里是bash shell);PATH 变量定义用来执行命令的路径。

cron 任务的输出被邮寄给MAILTO 变量定义的用户名。

如果MAILTO 变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出。

HOME 变量可以用来设置在执行命令或脚本时使用的主目录。

/etc/crontab 文件中的每一行都代表一项任务,它的格式是:minute hour day month day_of_week commandminute —分钟,从0 到59 之间的任何整数hour —小时,从0 到23 之间的任何整数day —日期,从1 到31 之间的任何整数(如果指定了月份,必须是该月份的有效日期)month —月份,从1 到12 之间的任何整数(或使用月份的英文简写如jan、feb 等等)dayofweek —星期,从0 到7 之间的任何整数,这里的0 或7 代表星期日(或使用星期的英文简写如sun、mon 等等)command —要执行的命令(命令可以是ls /proc >> /tmp/proc 之类的命令,也可以是执行你自行编写的脚本的命令。

linux之crontab详解

linux之crontab详解

CRONTAB概述:Crontab是一个用于设置周期性被执行的任务的工具。

被周期性执行的任务被称为cron job。

周期性执行的任务列表被称为cron table。

安装并检查crontab服务:crontab -l ###检查是否安装crontab工具servicecrondstatus ###检查crond服务是否启动chkconfig –listcrond ###查看crond服务随系统启动等级的状态安装cronyum installvixie-cronyum installcrontabs一个简单的例子:1.crontab -e ###命令执行会用vi编辑器打开crontab的任务配置文件2.如图添加以上内容,并退出,在crontab -l来查看刚才设置的任务列表。

任务解释:每分钟打印时间到/tmp/log.txt文件里面3.tail –f /tmp/log.txttail -f /tmp/log.txt中的-f选项是实时的查看文件的变化,ctrl+c可以退出。

此示例简单了解crontab的工具使用。

Crontab基本组成:Crontab配置文件格式:需要注意的是没有60分钟与24时的设定,60分即0分,24时即00时。

关于格式的几个简单示例:每晚21:34重启apache服务:30 21 * * * service httpd restart每月1、10、30日的4:33重启apache:33 4 1,10,30 * * service httpd restart每月10日到20日18:58重启apache:58 18 10-20 * * service httpdsestart每隔两分钟重启apache服务器:*/2 * * * * service httpd restart每小时的1分重启,后面每增加两分钟重启一次(奇数分钟重启):1-59/2 * * * * service httpd restart晚上11点到早上7点之间,每小时重启一次:0 23-7/1 * * * servicehttpd restart每天18:00到23:00之间每隔30分钟重启一次apache:0,30 18-23 * * * servicehttpd restart0-59/30 18-23 * * * service httpd restart小结:*表示任何时候都匹配“A,B,C”表示A或B或C时执行命令“A-B”表示A到B之间时(连续的)执行命令“*/A”表示每A分钟(小时、天等)执行一次命令在使用crontab工具时,可以使用-u来指定哪个用户的配置,不指定默认是当前登录用户。

crontab sleep用法

crontab sleep用法

crontab sleep用法Crontab是一种用于在Linux系统中定时执行任务的工具。

它允许用户设置在指定时间和日期自动执行某些命令或脚本,从而实现自动化管理和任务调度。

其中,sleep命令是一种用于暂停程序执行一段时间的命令。

它可以让程序在指定的时间内暂停执行,以便进行其他操作或等待其他事件的发生。

下面是crontab和sleep命令的使用方法:1. crontab使用方法- 打开终端并输入crontab -e打开crontab编辑器;- 在编辑器中输入任务计划表,每行表示一个任务,格式为:分钟小时日月周命令;- 每个字段可以使用一个值、逗号分隔的值列表、星号(代表所有可能值)或者由连字符分隔的范围;- 支持通配符@reboot(系统启动时运行)、@yearly(每年一次)、@monthly(每月一次)、@weekly(每周一次)和@daily(每天一次)。

例如,以下是一个简单的crontab示例:```* * * * * /usr/bin/echo "Hello, World!" >> /tmp/crontab.log```该计划将在每分钟运行一次echo命令,并将输出写入/tmp/crontab.log文件中。

2. sleep使用方法- 打开终端并输入sleep [时间]命令,其中时间可以是一个整数或者带有单位的时间值;- 时间单位包括s(秒)、m(分钟)、h(小时)和d(天);- 程序将在指定的时间内暂停执行。

例如,以下是一个简单的sleep示例:```sleep 10s && /usr/bin/echo "Hello, World!" >> /tmp/sleep.log ```该命令将在程序执行到这一行时暂停10秒钟,然后再执行echo命令并将输出写入/tmp/sleep.log文件中。

综上所述,crontab和sleep命令都是非常实用的Linux工具。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

linux定时运行命令脚本——crontab分类:Linux/Shell2011-09-24 11:12 12787人阅读评论(0) 收藏举报Linux中,周期执行的任务一般由cron这个守护进程来处理 ps -ef | grep croncron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。

cron的配置文件称为“crontab”,是“cron table”的简写。

一、cron在3个地方查找配置文件(设置shell脚本):1、/var/spool/cron/yanggang 这个目录下存放的是每个用户(包括root)的crontab任务,每个任务以创建者的名字命名,比如用户tom建的crontab任务对应的文件就是/var/spool/cron/tomyanggang@barry$ sudo ls -l /var/spool/cron/(或有时是 /var/spool/cron/crontabs/)-rw------- 1 root crontab 1071 2011-09-19 17:20 root-rw------- 1 yanggang crontab 1176 2011-09-24 11:07 yanggang一般一个用户最多只有一个crontab文件(如:root, yanggang等),其对应日志在/var/spool/mail/root(或/var/spool/mail/yanggang)文件里2、/etc/crontab这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# .---------------- 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# | | | | |# * * * * * command to be executed例如:*/5 * * * * root /usr/libexec/atrunminute:代表一小时内的第几分,范围0-59。

hour:代表一天中的第几小时,范围0-23。

mday:代表一个月中的第几天,范围1-31。

month:代表一年中第几个月,范围1-12。

wday:代表星期几,范围0-7 (0及7都是星期天)。

who:要使用什么身份执行该指令,当您使用crontab -e 时,不必加此字段。

command:所要执行的指令。

3、/etc/cron.d/ 这个目录用来存放任何要执行的crontab文件或脚本。

二、权限crontab权限问题到/var/adm/cron/下一看,文件cron.allow和cron.deny是否存在用法如下:1、如果两个文件都不存在,则只有root用户才能使用crontab命令。

2、如果cron.allow存在但cron.deny不存在,则只有列在cron.allow文件里的用户才能使用crontab命令,如果root用户也不在里面,则root用户也不能使用crontab。

3、如果cron.allow不存在, cron.deny存在,则只有列在cron.deny文件里面的用户不能使用crontab命令,其它用户都能使用。

4、如果两个文件都存在,则列在cron.allow文件中而且没有列在cron.deny中的用户可以使用crontab,如果两个文件中都有同一个用户,以cron.allow文件里面是否有该用户为准,如果cron.allow中有该用户,则可以使用crontab命令。

AIX 中普通用户默认都有crontab 权限,如果要限制用户使用crontab ,就需要编辑/var/adm/cron/cron.denyHP-UNIX 中默认普通用户没得crontab 权限,要想放开普通用户的crontab 权限可以编三、创建cron脚本第一步:写cron脚本文件,命名为crontest.cron。

15,30,45,59 * * * * echo "xgmtest....." >> xgmtest.txt 表示,每隔15分钟,执行打印一次命令第二步:添加定时任务。

执行命令“crontab crontest.cron”。

搞定第三步:"crontab -l" 查看定时任务是否成功或者检测/var/spool/cron下是否生成对应cron脚本四、cron服务cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。

/sbin/service crond start //启动服务/sbin/service crond stop //关闭服务/sbin/service crond restart //重启服务/sbin/service crond reload //重新载入配置/sbin/service crond status //查看服务状态例如:使用sudo停止与启动服务yanggang@barry$sudo service cron stopcron stop/waitingyanggang@barry$ sudo service cron startcron start/running, process 7502五、 crontab用法crontab命令用于安装、删除或者列出用于驱动cron后台进程的表格,用户把需要执行的命令序列放到crontab文件中以获得执行。

每个用户都可以有自己的crontab文件,/var/spool/cron下的crontab文件不可以直接创建或者直接修改,该crontab文件是通过crontab -e命令创建的在crontab文件中如何输入需要执行的命令和时间,该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。

每个域之间使用空格或者制表符分隔。

格式如下:minute hour day-of-month month-of-year day-of-week commands合法值00-59 00-23 01-31 01-12 0-6 (0 is sunday)除了数字还有几个个特殊的符号就是"*"、"/"和"-"、",",*代表所有的取值范围内的数字"/"代表每的意思,"/5"表示每5个单位,"-"代表从某个数字到某个数字,","分开几个离散的数字。

-l 在标准输出上显示当前的crontab。

-r 删除当前的crontab文件。

-e 使用VISUAL或者EDITOR环境变量所指的编辑器编辑当前的crontab文件。

当结束编辑离开时,编辑后的文件将自动安装。

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

每两个小时0 */2 * * * echo "Have a break now." >> /tmp/test.txt晚上11点到早上8点之间每两个小时和早上八点0 23-7/2,8 * * * echo "Have a good dream" >> /tmp/test.txt每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4 * 1-3 command line1月1日早上4点0 4 1 1 * command line SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号HOME=/每小时(第一分钟)执行/etc/cron.hourly内的脚本01 * * * * root run-parts /etc/cron.hourly每天(凌晨4:02)执行/etc/cron.daily内的脚本02 4 * * * root run-parts /etc/cron.daily每星期(周日凌晨4:22)执行/etc/cron.weekly内的脚本22 4 * * 0 root run-parts /etc/cron.weekly每月(1号凌晨4:42)去执行/etc/cron.monthly内的脚本42 4 1 * * root run-parts /etc/cron.monthly注意: "run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。

每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min 时执行命令。

5,15,25,35,45,55 16,17,18 * * * command每周一,三,五的下午3:00系统进入维护状态,重新启动系统。

00 15 * *1,3,5 shutdown -r +5每小时的10分,40分执行用户目录下的innd/bbslin这个指令:10,40 * * * * innd/bbslink每小时的1分执行用户目录下的bin/account这个指令:1 * * * * bin/account每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):203 * * * (/bin/rm -f expire.ls logins.bad;bin/expire$#@62;expire.1st)每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f expire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。

12,553 4-91,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt六、几个问题crontab 编辑:输入编辑命令:crontab -e# m h dom mon dow commandSHELL=/bin/bash30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.shCtrl + O (写入)——》enter键(保存文件名)——》Ctrl + X(退出)输入查看命令:crontab -l# m h dom mon dow commandSHELL=/bin/bash30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(建议使用此方式)语法错误:Syntax error:"(" unexpected参见:LINUX - BASH Syntax Error或者,crontab -e 时指定shell解释器(sh):SHELL=/bin/bash(请参见上面crontab 编辑示例)路径错误:在/var/spool/crontab/yanggang 中,添加了如下命令,在日志文件/var/spool/mail/yanggang 中提示找不到xxx.sh 路径30 * * * * /home/barry/top800/top10/top10_fruits/top10_all.sh或30 * * * * bash /home/barry/top800/top10/top10_fruits/top10_all.sh这是因为你在crontab中使用了绝对路径执行脚本top10_all.sh,因此在脚本top10_all.sh 中引用的其它脚本也都需要使用绝对路径,才能被crontab找到并执行如何避免绝对路径复杂的设置呢,如上文六、几个问题所示,采用如下格式:30 * * * * cd /home/barry/top800/top10/top10_fruits/ && ./top10_all.sh(建议使用此方式,先进入该目录,然后在执行脚本;否则,执行脚本中的其它脚本都需要加绝对路径)。

相关文档
最新文档