Linux——Crontab使用详解
如何使用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 表示每隔两个小时执行一次。
通过crontab命令查看和编辑定时任务

通过crontab命令查看和编辑定时任务cron是Unix和类Unix操作系统中的一个时间任务调度器,常用于周期性地执行指定的任务或命令。
而crontab命令即用于查看和编辑用户的定时任务。
本文将介绍如何使用crontab命令来查看和编辑定时任务。
一、查看定时任务要查看定时任务,可以使用以下命令:```shellcrontab -l```执行上述命令后,系统会将当前用户的定时任务列表显示出来。
如果当前用户没有设置任何定时任务,命令行会显示 "no crontab for username"。
二、编辑定时任务要编辑定时任务,可以使用以下命令:```shellcrontab -e```执行上述命令后,系统会自动打开一个文本编辑器,显示当前用户的定时任务。
如果当前用户没有设置任何定时任务,编辑器中将为空白。
三、定时任务格式定时任务的每一行由六个字段组成,分别表示分钟、小时、日期、月份、星期和要执行的命令。
各字段之间由空格分隔。
下面是定时任务格式的详细说明:1. 分钟(0-59)2. 小时(0-23)3. 日期(1-31)4. 月份(1-12)5. 星期(0-7,其中0和7都表示星期日)6. 要执行的命令例如,如果要设置每天早上8点30分执行一个脚本文件,可以使用以下格式的定时任务:```shell30 8 * * * /path/to/script.sh```这表示在每天的8点30分执行 "/path/to/script.sh" 这个脚本文件。
四、定时任务示例下面是一些定时任务的示例,以便更好地理解定时任务的设置方法:1. 执行一个脚本文件,每天早上5点定时执行:```shell0 5 * * * /path/to/script.sh```2. 每隔5分钟执行一次命令:```shell*/5 * * * * command```3. 每隔两小时执行一次命令:```shell0 */2 * * * command```4. 每月的1号凌晨3点执行一次命令:```shell0 3 1 * * command```五、保存和退出定时任务编辑器在编辑定时任务时,可以按照编辑器的要求进行修改或添加定时任务。
在Linux终端中使用cron定时执行任务

在Linux终端中使用cron定时执行任务Linux操作系统提供了一种强大的工具,即cron,它允许用户在指定的时间间隔内自动执行任务。
使用cron,可以轻松地实现定时备份文件、更新系统、执行脚本等操作。
一、了解cronCron是一种用于定时运行命令或脚本的工具,它在后台运行,并根据预先设置的时间表执行任务。
在Linux终端中,可以通过编辑crontab文件来管理cron的任务列表。
二、编辑crontab文件要编辑crontab文件,可以使用以下命令:```crontab -e```这将打开一个文本编辑器,显示当前用户的cron表。
每一行代表一个计划任务,由时间表达式和要执行的命令组成。
三、时间表达式cron使用时间表达式来定义任务的执行时间。
时间表达式由五个不同的字段组成,分别表示分钟、小时、日期、月份和星期。
这些字段使用空格或者通配符来表示。
- 星号(*)表示所有可能的值,例如在分钟字段中,*表示每分钟都执行。
在其他字段中,*表示所有可能的值。
- 逗号(,)用于分隔枚举值,例如"1,3,5"表示1、3和5。
- 减号(-)用于指定一个范围,例如"1-5"表示1到5。
- 正斜杠(/)用于指定间隔,例如"*/10"表示每10分钟。
- 除号(/)用于指定除法,例如"5/15"表示从第5分钟开始,每隔15分钟执行一次。
四、实例以下是一个示例crontab文件,展示了如何使用cron来定时执行任务:```# 每天凌晨3点备份文件0 3 * * * /usr/bin/backup.sh# 每小时更新系统0 * * * * /usr/bin/update.sh# 每周一清理日志文件0 0 * * 1 /usr/bin/clean_logs.sh```在上述示例中,每天凌晨3点备份文件的任务被安排在第一行。
通过指定执行时的分钟位为0,小时位为3,其余时间位使用星号代替,就可以实现在每天的3点运行任务。
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,我们可以提高工作效率和准确性,使得任务的执行更加方便和自动化。
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详解

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来指定哪个用户的配置,不指定默认是当前登录用户。
Linux下crontab命令的用法:sudocrontab-l

Linux下crontab命令的⽤法:sudocrontab-lcron 是linux系统下⼀个⾃动执⾏指定任务的程序.cron服务是linux的内置服务,但它不会开机⾃动启动。
可以⽤以下命令启动和停⽌服务:Linux代码1. /sbin/service crond start2. /sbin/service crond stop3. /sbin/service crond restart4. /sbin/service crond reload以上1-4⾏分别为启动、停⽌、重启服务和重新加载配置。
要把cron设为在开机的时候⾃动启动,在 /etc/rc.d/rc.local 脚本中加⼊ /sbin/service crond start 即可。
查看,删除,修改cron把命令⾏保存在crontab(cron table)⽂件⾥,这个⽂件通常在 /etc ⽬录下。
每个系统⽤户都可以有⾃⼰的crontab(在 /var/spool/cron/ 下)。
file 使⽤file⽂件的内容作为某个⽤户的cron服务配置,内容会复制到cron服务的配置⽂件中-u 设定某个⽤户的cron服务配置,⼀般root ⽤户在执⾏这个命令的时候需要此参数-l 列出某个⽤户cron服务配置-r 删除某个⽤户的cron服务配置-e 编辑某个⽤户的cron服务配置,当指定crontab 不存在时新建,将使⽤vi打开配置⽂件进⾏编辑保存后退出,⽂件语法见后crontab –v 显⽰上⼀次编辑的时间(只在某些操作系统上可⽤)例如:sudo crontab -l语法每⾏表⽰⼀个指令,即表⽰⼀项计划任务;每⾏由空格分隔的六个部分组成,前5部分表⽰定时任务的执⾏时间,剩余部分为定时任务要执⾏的命令,格式如下:分⼩时⽇⽉星期命令Minute Hour Day Month DayOfWeek commandMinute 每个⼩时的第⼏分钟执⾏该任务,0-59Hour 每天的第⼏个⼩时执⾏该任务,0-23Day 每⽉的第⼏天执⾏该任务,1-31Month 每年的第⼏个⽉执⾏该任务,1-12DayOfWeek 每周的第⼏天执⾏该任务,0-6,0表⽰周⽇Command 指定要执⾏的程序以上前五项可使⽤以下四个特殊符号:* 表⽰所有数值,如第⼀位使⽤* 表⽰每分钟/ 表⽰每,如第⼀位使⽤ */5 表⽰每5分钟- 表⽰数值范围,如第⼆位使⽤2-4表⽰2点到4点, 表⽰离散的多个数值,如第2位使⽤6,8 表⽰6点和8点指定“步长”:8-14/2 表⽰8,10,12,14指定列表:⽐如 “1,2,3,4″,”0-4,8-12″在每⾏的六项字段中,除了Command是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。
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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
名称: crontab使用权限: 所有使用者使用方式:crontab file [-u user]-用指定的文件替代目前的crontab。
crontab-[-u user]-用标准输入替代目前的crontab.crontab-1[user]-列出用户目前的crontab.crontab-e[user]-编辑用户目前的crontab.crontab-d[user]-删除用户目前的crontab.crontab-c dir- 指定crontab的目录。
crontab文件的格式:M H D m d cmd. 基本格式:*****command分时日月周命令M: 分钟(0-59)。
每分钟用*或者*/1表示H:小时(0-23)。
(0表示0点)D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。
cmd要运行的程序,程序被送入sh执行,这个shell只有USER,HOME,SHELL这三个环境变量说明:crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
-u user 是指设定指定user 的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。
如果不使用-u user 的话,就是表示设定自己的时程表。
参数:crontab -e : 执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL 环境变数来指定使用那个文字编辑器(比如说setenv VISUAL joe)crontab -r : 删除目前的时程表crontab -l : 列出目前的时程表crontab file [-u user]-用指定的文件替代目前的crontab。
时程表的格式如下: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...个小时要执行,其馀类推使用者也可以将所有的设定先存放在档案file 中,用crontab file 的方式来设定时程表。
例子:#每天早上7点执行一次/bin/ls :0 7 * * * /bin/ls在12 月内, 每天的早上6 点到12 点中,每隔3个小时执行一次/usr/bin/backup :0 6-12/3 * 12 * /usr/bin/backup 周一到周五每天下午5:00 寄一封信给alex@ :0 17 * * 1-5 mail -s "hi" alex@ 每月每天的午夜0 点20 分, 2 点20 分, 4 点20 分....执行echo "haha"20 0-23/2 * * * echo "haha"注意:当程序在你所指定的时间执行后,系统会寄一封信给你,显示该程序执行的内容,若是你不希望收到这样的信,请在每一行空一格之后加上> /dev/null 2>&1 即可例子2 :#每天早上6点10分10 6 * * * date#每两个小时0 */2 * * * date#晚上11点到早上8点之间每两个小时,早上8点0 23-7/2,8 * * * date#每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0 11 4 * mon-wed date#1月份日早上4点0 4 1 jan * date范例$crontab -l 列出用户目前的crontab./usr/lib/cron/cron.allow表示谁能使用crontab命令。
如果它是一个空文件表明没有一个用户能安排作业。
如果这个文件不存在,而有另外一个文件/usr/lib/cron/cron.deny,则只有不包括在这个文件中的用户才可以使用crontab命令。
如果它是一个空文件表明任何用户都可安排作业。
两个文件同时存在时cron.allow优先,如果都不存在,只有超级用户可以安排作业。
crontab文件的一些例子:30 21 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每晚的21:30重启apache。
45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示每月1、10、22日的4 : 45重启apache。
10 1 * * 6,0 /usr/local/etc/rc.d/lighttpd restart上面的例子表示每周六、周日的 1 : 10重启apache。
0,30 18-23 * * * /usr/local/etc/rc.d/lighttpd restart上面的例子表示在每天18 : 00至23 : 00之间每隔30分钟重启apache。
0 23 * * 6 /usr/local/etc/rc.d/lighttpd restart上面的例子表示每星期六的11 : 00 pm重启apache。
* */1 * * * /usr/local/etc/rc.d/lighttpd restart每一小时重启apache* 23-7/1 * * * /usr/local/etc/rc.d/lighttpd restart晚上11点到早上7点之间,每隔一小时重启apache0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart每月的4号与每周一到周三的11点重启apache0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart一月一号的4点重启apache例子:每两个时间值中间使用逗号分隔。
除了数字还有几个个特殊的符号就是”*”、”/”和”-”、”,”,*代表所有的取值范围内的数字,”/”代表每的意思,”*/5″表示每5个单位,”-”代表从某个数字到某个数字,”,”分开几个离散的数字。
每天早上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每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab -e 来编辑。
cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。
因此此文件修改后不需要重新启动cron服务。
2.编辑/etc/crontab文件配置croncron服务每分钟不仅要读一次/var/spool/cron内的所有文件,还需要读一次/etc/crontab,因此我们配置这个文件也能运用cron服务做一些事情。
用crontab配置是针对某个用户的,而编辑/etc/crontab是针对系统的任务。
此文件的文件格式是:SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=root //如果出现错误,或者有数据输出,数据作为邮件发给这个帐号HOME=/ //使用者运行的路径,这里是根目录# run-parts01 * * * * root run-parts /etc/cron.hourly //每小时执行/etc/cron.hourly内的脚本02 4 * * * root run-parts /etc/cron.daily //每天执行/etc/cron.daily内的脚本22 4 * * 0 root run-parts /etc/cron.weekly //每星期执行/etc/cron.weekly内的脚本42 4 1 * * root run-parts /etc/cron.monthly //每月去执行/etc/cron.monthly内的脚本大家注意"run-parts"这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了。
5,15,25,35,45,55 16,17,18 * * * command这就是表示任意天任意月,其实就是每天的下午4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55 min时执行命令。
[例] 在每周一,三,五的下午3:00系统进入维护状态,重新启动系统。
那么在crontab文件中就应该写入如下字段:00 15 * * 1,3,5 shutdown -r +5然后将该文件存盘为foxy.cron,再键入crontabfoxy.cron安装该文件。
[例] 每小时的10分,40分执行用户目录下的innd/bbslin这个指令:10,40 * * * * innd/bbslink[例] 每小时的1分执行用户目录下的bin/account这个指令:1 * * * * bin/account[例] 每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):20 3 * * * (/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文件位于用户自己的目录位置)。