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 表示每隔两个小时执行一次。
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如何使用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定时任务 规则

linux crontab定时任务规则【引言】在Linux 系统中,crontab 是一个强大的定时任务调度工具,可以帮助我们自动执行一些定期需要进行的任务。
本文将介绍如何使用Linux crontab 创建、管理和使用定时任务,以提高工作效率。
【Linux crontab 简介】crontab 是一个文本文件,用于存储定时任务的配置信息。
每个用户都可以拥有自己的crontab 文件,通过编辑该文件,用户可以设置定时任务的执行时间、命令和周期。
在Linux 系统中,crontab 文件的默认位置是`/etc/crontab`。
【创建定时任务规则】要创建一个定时任务,只需在crontab 文件中添加相应的规则。
每个规则由六部分组成,分别是:分钟、小时、天、月、周和命令。
这些部分用空格分隔。
例如,以下规则表示每小时的每分钟执行一次命令:```* * * * * /path/to/your/command```【常用定时任务实例】1.每天凌晨1点备份数据库:```0 1 * * * /path/to/your/backup_command```2.每小时检查系统日志:```* * * * * /path/to/your/log_check_command```3.每周五下午3点更新软件包:```0 15 * * 5 /path/to/your/apt_update_command```4.每月1号凌晨2点执行大规模数据处理任务:```0 2 1 * * /path/to/your/data_processing_command ```【管理定时任务】1.查看已存在的定时任务:```crontab -l```2.添加定时任务:```crontab -e```3.删除定时任务:```crontab -r <rule_id>```4.修改定时任务:```crontab -e```【结语】熟练掌握Linux crontab 定时任务的使用,可以让我们更加高效地管理日常工作。
crontab命令详解含启动重启停止

crontab命令详解含启动重启停⽌linux 系统则是由 cron (crond) 这个系统服务来控制的。
Linux 系统上⾯原本就有⾮常多的计划性⼯作,因此这个系统服务是默认启动的。
另外, 由于使⽤者⾃⼰也可以设置计划任务,所以, Linux 系统也提供了使⽤者控制计划任务的命令 :crontab 命令。
⼀、crond简介crond 是linux下⽤来周期性的执⾏某种任务或等待处理某些事件的⼀个守护进程,与windows下的计划任务类似,当安装完成操作系统后,默认会安装此服务⼯具,并且会⾃动启动crond进程,crond进程每分钟会定期检查是否有要执⾏的任务,如果有要执⾏的任务,则⾃动执⾏该任务。
Linux下的任务调度分为两类,系统任务调度和⽤户任务调度。
系统任务调度:系统周期性所要执⾏的⼯作,⽐如写缓存数据到硬盘、⽇志清理等。
在/etc⽬录下有⼀个crontab⽂件,这个就是系统任务调度的配置⽂件。
/etc/crontab⽂件包括下⾯⼏⾏:[root@localhost ~]# cat /etc/crontabSHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=””HOME=/# run-parts51 * * * * root run-parts /etc/cron.hourly24 7 * * * root run-parts /etc/cron.daily22 4 * * 0 root run-parts /etc/cron.weekly42 4 1 * * root run-parts /etc/cron.monthly[root@localhost ~]#前四⾏是⽤来配置crond任务运⾏的环境变量,第⼀⾏SHELL变量指定了系统要使⽤哪个shell,这⾥是bash,第⼆⾏PATH变量指定了系统执⾏命令的路径,第三⾏MAILTO变量指定了crond的任务执⾏信息将通过电⼦邮件发送给root⽤户,如果MAILTO变量的值为空,则表⽰不发送任务执⾏信息给⽤户,第四⾏的HOME变量指定了在执⾏命令或者脚本时使⽤的主⽬录。
suse crontab用法

suse crontab用法一、Crontab详解Crontab是Linux系统中自带的一个定时任务工具,用户可以通过编辑定时任务表文件来设置命令和脚本的执行周期,每个用户都有自己的定时任务表。
每当系统启动之后,Crontab就会自动读取所有用户的定时任务表,然后按照用户所设置的时间周期执行相应的命令。
二、Crontab的使用2.1 Crontab命令行选项下面是Crontab命令的一些常用选项:• -u user:指定要操作的用户的名称• -e:编辑该用户的定时任务表• -l:列出该用户的定时任务表• -r:删除该用户的定时任务表2.2 Crontab命令格式Crontab命令的格式如下:```minute hour day month weekday command```每个字段含义如下:• minute:表示分钟,取值范围是0-59• hour:表示小时,取值范围是0-23• day:表示月中的某一天,取值范围是1-31• mo nth:表示月份,取值范围是1-12• weekday:表示星期几,取值范围是0-7(其中0和7都表示周日)• command:需要执行的命令或脚本2.3 编辑定时任务表使用Crontab编辑定时任务表的命令是:```crontab -e``````export EDITOR=<editor>```2.4 添加定时任务```0 10 * * * /bin/bash /home/user/script.sh```这个命令表示在每天的10点整执行脚本“script.sh”。
这些字段的意义如下:• 0:表示0分,也就是每小时的第0分钟(即整点)• 10:表示10点• *:表示每一天都执行• *:表示每个月都执行• *:表示每个星期都执行2.5 查看定时任务要查看某个用户的定时任务表中的内容,请使用以下命令:```crontab -l``````crontab -u <user> -l```<user>是指其他用户的名称。
crontab格式详解

Linux crontab 命令格式与详细例子基本格式 :* * * * * command分时日月周命令第1列表示分钟1~59 每分钟用*或者 */1表示第2列表示小时1~23(0表示0点)第3列表示日期1~31第4列表示月份1~12第5列标识号星期0~6(0表示星期天)第6列要运行的命令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名称 : crontab使用权限 : 所有使用者使用方式 :crontab file [-u user]-用指定的文件替代目前的crontab。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基本格式:
*****command
分时日月周命令
第1列表示分钟1~59 每分钟用*或者*/1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
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点之间,每隔一小时重启apache
0 11 4 * mon-wed /usr/local/etc/rc.d/lighttpd restart
每月的4号与每周一到周三的11点重启apache
0 4 1 jan * /usr/local/etc/rc.d/lighttpd restart
一月一号的4点重启apache
名称: 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.
M: 分钟(0-59)。
H:小时(0-23)。
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@ < /tmp/maildata
每月每天的午夜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.。