linux crontab 详解
- 格式:doc
- 大小:27.00 KB
- 文档页数:3
如何使用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命令参数和时间格式说明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如何使用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 之类的命令,也可以是执行你自行编写的脚本的命令。
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 简介】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命令详解含启动重启停⽌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用法一、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>是指其他用户的名称。
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。
Linux下的crontab定时执⾏任务命令详解在LINUX中,周期执⾏的任务⼀般由cron这个守护进程来处理[ps -ef|grep cron]。
cron读取⼀个或多个配置⽂件,这些配置⽂件中包含了命令⾏及其调⽤时间。
cron的配置⽂件称为“crontab”,是“cron table”的简写。
⼀、cron服务 cron是⼀个linux下的定时执⾏⼯具,可以在⽆需⼈⼯⼲预的情况下运⾏作业。
service crond start //启动服务 service crond stop //关闭服务 service crond restart //重启服务 service crond reload //重新载⼊配置 service crond status //查看服务状态⼆、cron在3个地⽅查找配置⽂件:1、/var/spool/cron/ 这个⽬录下存放的是每个⽤户包括root的crontab任务,每个任务以创建者的名字命名,⽐如tom建的crontab任务对应的⽂件就是/var/spool/cron/tom。
⼀般⼀个⽤户最多只有⼀个crontab⽂件。
三、/etc/crontab 这个⽂件负责安排由系统管理员制定的维护系统以及其他任务的crontab。
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/# 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 executedMAILTO=root:是说,当 /etc/crontab 这个档案中的例⾏性命令发⽣错误时,会将错误讯息或者是屏幕显⽰的讯息传给谁?由于 root 并⽆法再⽤户端收信,因此,我通常都將这个 e-mail 改成⾃⼰的账号,好让我随时了解系统的状态!01 * * * * root run-parts /etc/cron.hourly:在 #run-parts 这⼀⾏以后的命令,我们可以发现,五个数字后⾯接的是 root ,这⼀⾏代表的是『执⾏的级别为root⾝份』当然,你也可以将这⼀⾏改为成其他的⾝份!⽽ run-parts代表后⾯接的 /etc/cron.hourly 是『⼀个⽬录内(/etc/cron.hourly)的所有可执⾏⽂件』,也就是说,每个⼩时的01分,系统会以root⾝份去/etc/cron.hourly这个⽬录下执⾏所有可执⾏的⽂件!后⾯三⾏也是类似的意思!你可以到 /etc/ 底下去看看,系统本来就预设了这4个⽬录!你可以将每天需要执⾏的命令直接写到/etc/cron.daily即可,还不需要使⽤到crontab -e的程式!四、/etc/cron.d/ 这个⽬录⽤来存放任何要执⾏的crontab⽂件或脚本。
crontab表达式解析
Crontab表达式是用于定时执行任务的一种表达式。
在Linux系统中,通过Crontab表达式可以轻松地实现各种定时任务,比如定时备份数据、定时清理系统垃圾、定时发送邮件等。
Crontab表达式由五个字段组成,分别表示分钟、小时、日、月、星期。
每个字段都有对应的取值范围,如分钟取值范围为0-59,小时取值范围为0-23,日取值范围为1-31,月取值范围为1-12,星期取值范围为0-7,其中0和7都表示星期日。
Crontab表达式的格式如下:
* * * * * command
其中,每个星号表示对应字段的所有可能取值。
如果需要指定具体的取值范围,则可以使用连字符(-)表示区间,使用逗号(,)表示多个值,使用斜杠(/)表示间隔值。
例如,下面的Crontab表达式表示每周一至周五的上午9点半执行一次备份操作:
30 9 * * 1-5 /backup.sh
需要注意的是,Crontab表达式中的时间都是基于系统时钟的,如果系统时钟发生改变,可能会导致定时任务执行时间不准确。
因此,在使用Crontab表达式时,建议将系统时钟设置为与标准时间同步。
- 1 -。
Linux下计划任务:crontab命令的权限说明
Linux下的计划任务:
使⽤crontab命令来执⾏调度,在 Linux 下可以通过创建⽂件 /etc/cron.allow 或者 /etc/cron.deny 来控制权限,如果 /etc/cron.allow ⽂件存在,那么只有这个⽂件中列出的⽤户可以使⽤ crontab(同时/etc/cron.deny⽂件被忽略);如果 /etc/cron.allow ⽂件不存在,那么⽂件 /cron.deny中列出的⽤户将不能⽤使⽤ crontab。
例:
1、查看⽂件 /etc/cron.allow和/etc/cron.deny
说明: /etc⽬录下只有cron.allow⽂件,允许使⽤crontab命令的⽤户名记录在其中。
如需禁⽌某⽤户使⽤crontab命令,可⾃⾏新建cron.deny⽂件并把相应⽤户名写⼊⽂件中
2、查看crond状态和重启 crond 服务
3、切换到其它⽤户测试
说明:上图信息为cron.allow⽂件中没有oracle⽤户名,切换到oracle⽤户后,就不能使⽤ crontab 命令了。
4、其它说明如果⽤户创建 crontab 任务,在脚本中应指定 SHELL,PATH,HOME 变量,否则很容易出现脚本,命令找不到的情况。
linux crontab 参数Crontab是在Linux系统中常用的任务调度程序,它可以让用户在指定的时间自动执行任务,如备份数据、清理系统日志等。
在Crontab 中,可以使用多种参数来指定任务的执行方式和时间,下面介绍几个常用的参数。
1. 分钟参数分钟参数用于指定任务在哪一分钟执行,它的取值范围是 0~59。
例如,如果要让任务每小时的第 30 分钟执行一次,可以在 Crontab 中添加如下条目:30 * * * * command上述条目中的第一个星号表示每小时都会执行该任务,第二个星号表示每天都会执行,第三个星号表示每月都会执行,第四个星号表示每周都会执行。
2. 小时参数小时参数用于指定任务在哪一小时执行,它的取值范围是 0~23。
例如,如果要让任务每天的凌晨 3 点执行一次,可以在 Crontab 中添加如下条目:0 3 * * * command上述条目中的第一个数字表示在凌晨 3 点执行该任务,第二个星号表示每天都会执行,第三个星号表示每月都会执行,第四个星号表示每周都会执行。
3. 天参数天参数用于指定任务在哪一天执行,它的取值范围是 1~31。
例如,如果要让任务每月的第一天执行一次,可以在 Crontab 中添加如下条目:0 0 1 * * command上述条目中的第一个数字表示在凌晨 0 点执行该任务,第二个数字表示在每月的第一天执行,第三个星号表示每月都会执行,第四个星号表示每周都会执行。
4. 星期参数星期参数用于指定任务在星期几执行,它的取值范围是 0~7(0 和 7 都代表星期日)。
例如,如果要让任务每周六执行一次,可以在Crontab 中添加如下条目:0 0 * * 6 command上述条目中的第一个数字表示在凌晨 0 点执行该任务,第五个数字表示在星期六执行,其它三个星号表示每月、每天都会执行。
除了上述参数外,Crontab 还支持很多其它参数,如月份参数(取值范围 1~12)、用户参数(指定执行任务的用户)、环境变量参数等。
linux crontab 用法-回复Linux Crontab 用法: 让你的任务自动运行在Linux 系统中,Crontab 是一个非常有用的工具,可以执行定时任务。
无论是在个人计算机还是服务器上,Crontab 都是一个广泛使用的工具,可以帮助用户自动化执行一些重复的任务。
本文将为你详细介绍Crontab 的用法,一步一步回答你的问题。
1. 什么是Crontab?Crontab 是一个用于在固定的时间或者间隔时间内自动执行任务的工具。
它使用系统的Cron 守护程序来管理这些任务。
通过Crontab,你可以指定任务执行的时间和频率,以及你想要执行的命令或脚本。
2. 如何编辑Crontab?要编辑Crontab,首先需要打开终端并输入以下命令:crontab -e这将会打开一个文本编辑器,你可以在其中编辑你的Crontab 文件。
3. Crontab 的格式是什么样的?Crontab 的格式分为五个字段,从左到右依次为:分钟、小时、日期、月份、星期。
每个字段都可以是一个具体的数值,一个范围(用连字符表示),一个逗号分隔的列表,或者一个星号表示通配符。
例如,要每天上午9 点执行一个命令,可以使用以下的Crontab 格式:0 9 * * * command4. Crontab 的常见时间设置有哪些?- `*`:代表所有可能的值。
- `*/n`:代表每n 个单位(例如每个小时、每天、每月等)。
- `n`:具体的数值,如1 或者23。
- `n-m`:代表从n 到m 的范围内的所有值。
- `n1,n2,...`:代表指定的数值列表,如1,3,5。
5. Crontab 的例子有哪些?以下是一些常见的Crontab 例子,可以作为参考:- `0 2 * * * /home/user/backup.sh`:每天凌晨2 点执行备份脚本。
- `*/5 * * * * /home/user/check_status.sh`:每5 分钟运行一次状态检查脚本。
crontab命令解析摘要:1.crontab 命令简介2.crontab 命令基本语法3.crontab 命令具体用法示例4.crontab 命令的优点与局限性正文:1.crontab 命令简介crontab 命令是Linux 和Unix 系统中的一个重要工具,用于定时执行任务。
该命令可以让用户在特定时间或者时间间隔内执行特定的命令或者脚本,无需人工干预。
这对于定期执行一些重复性任务,如数据备份、日志清理等,具有很大的便利性。
2.crontab 命令基本语法crontab 命令的基本语法如下:```crontab -e [选项]```其中,`-e`选项用于编辑当前用户的定时任务列表,`-l`选项用于列出当前用户的定时任务列表,`-v`选项用于显示详细信息。
3.crontab 命令具体用法示例下面是一个具体的crontab 命令用法示例:```crontab -e```这将打开一个文本编辑器,允许用户编辑定时任务列表。
在文本编辑器中,用户可以添加、修改或删除定时任务。
一个典型的定时任务如下:```0 2 * * * /path/to/command```这表示每2 小时的0 分钟执行`/path/to/command`。
其中,`0 2 * * *`表示执行任务的时间,`/path/to/command`表示要执行的命令。
4.crontab 命令的优点与局限性crontab 命令的优点在于,它可以让用户在特定时间或者时间间隔内执行特定的命令或者脚本,无需人工干预。
这对于定期执行一些重复性任务,如数据备份、日志清理等,具有很大的便利性。
然而,crontab 命令也有其局限性。
首先,它只能执行命令和脚本,不能执行交互式任务。
其次,它的时间精度只能到分钟,无法做到更精确的控制。
linux crontab 语法在Linux系统中,crontab是一个非常有用的工具,它允许用户在特定的时间间隔内运行命令或脚本。
本文将详细介绍Linux crontab的语法和用法。
一、crontab基本语法Crontab的基本语法如下所示:```* * * * * Command```其中,星号代表任意值,可以用来表示每分钟、每小时、每天、每星期、每月。
而Command则是要执行的命令或脚本。
二、分钟与小时的设置在crontab语法中,分钟和小时的设置是通过改变星号的值来实现的。
例如,要在每天的0点执行一次脚本,可以这样写:```0 0 * * * Command```要在每小时的第5分钟执行一次脚本,可以这样写:```5 * * * * Command```三、每天的设置要设置每天的执行时间,可以在crontab语法中加入日期的字段。
例如,要在每月的1号执行一次脚本,可以这样写:```0 0 1 * * Command```要在每周的星期一执行一次脚本,可以这样写:```0 0 * * 1 Command```四、每月的设置要设置每月的执行时间,可以在crontab语法中加入月份的字段。
例如,要在每年的3月1号执行一次脚本,可以这样写:```0 0 1 3 * Command```要在每个季度的第一个月的第一天执行一次脚本,可以这样写:0 0 1 1,4,7,10 * Command```五、星期的设置要设置每周的执行时间,可以在crontab语法中加入星期的字段。
例如,要在每周的星期一、星期二执行一次脚本,可以这样写:```0 0 * * 1,2 Command```要在每周的工作日(星期一至星期五)执行一次脚本,可以这样写:```0 0 * * 1-5 Command```六、特殊字符的使用在crontab语法中,还可以使用一些特殊字符来实现一些特殊的设置。
例如,要在每小时的第15分钟和第45分钟执行一次脚本,可以这样写:```15,45 * * * * Command要在每隔10分钟执行一次脚本,可以这样写:```*/10 * * * * Command```七、定时任务的管理在Linux系统中,我们可以使用crontab命令来管理定时任务。
crontab复杂用法Crontab是Linux系统中一个非常实用的命令,用于执行定时任务。
它可以让用户在预定的时间执行指定的命令,从而减轻重复性工作的负担。
但是,Crondab并不仅仅是执行简单的任务,还拥有复杂用法,下面我们将一一介绍。
第一,利用Crondab执行多个任务。
在Crondab中,可以通过空格、制表符或者换行符来表示多个任务,这样就可以方便地实现多个任务的执行。
第二,利用Crondab在一定条件下执行任务。
如果只有在某些特定的情境下才需要执行任务,可以在Crondab中使用“@reboot”等其他特殊的时间设定关键词,以实现在系统启动之后执行任务的效果。
第三,利用Crondab在一定条件下停止任务的执行。
如果只有在特定的情境下需要停止任务的执行,可以通过修改crontab文件或使用命令“crontab -u 用户名称 -r”来停止任务的执行。
第四,利用Crondab执行周期性的任务。
如果需要执行周期性的任务,可以使用“*”来代表“任意”,通常配合“/”符号一起使用,如“*/5”表示每5分钟执行一次。
第五,利用Crondab执行复杂的任务。
如果需要执行比较复杂的任务,可以在crontab中引用shell脚本,将多个命令、变量、循环等信息整合成一个脚本文件,然后通过crontab文件来执行脚本。
第六,利用Crondab对任务进行记录。
如果需要对任务进行记录,可以在crontab中添加日志操作,将任务的执行情况、时间记录下来,以便于后续分析和处理。
在使用Crondab时,需要注意以下几点:1、使用正确的时间格式,了解时间的表示方法和对应的执行情况。
2、保证任务名、命令语法无误,避免因此导致执行失败。
3、充分利用log日志记录信息,方便事后查看,迅速发现问题并进行解决。
总之,Crondab是一个非常实用的命令,在复杂的任务处理过程中可以发挥出很大的作用。
通过合理的使用,不仅可以大幅度提高工作效率,还可以减少人工操作带来的错误。
linux中crontab表达式
在Linux中,crontab是一种定时任务管理工具,可以让用户在指定的时间自动执行某些任务。
crontab中的时间表达式非常重要,因为它决定了任务何时执行。
下面是一些关于crontab表达式的基本知识:
1. crontab表达式由五个字段组成,分别是分钟、小时、日、月、周几。
2. 表达式中可以使用星号(*)表示任何时间,也可以使用数字来表示具体时间。
3. 通配符也可以在表达式中使用,例如可以使用“*/5”表示每隔5分钟执行一次。
4. 表达式中还可以使用逗号来分隔多个时间,例如
“0,15,30,45”表示每小时的0分、15分、30分和45分执行任务。
5. 如果需要指定一个时间段内执行任务,可以使用“-”来表示,例如“0-5”表示从0到5分钟内执行任务。
6. 有时候需要指定多个时间段执行任务,可以使用“,”和“-”混合使用,例如“0-5,10-15,20-25,30-35,40-45,50-55”表示每小时执行6次任务。
7. crontab表达式中还可以使用特殊字符串,例如
“@hourly”表示每小时执行一次任务,“@daily”表示每天执行一次任务,“@weekly”表示每周执行一次任务。
8. 如果需要在crontab中添加注释,可以在表达式前面加上“#”号。
以上是关于crontab表达式的一些基本知识,掌握这些知识可以让你更好地使用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点之间,每隔一小时重启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.。