Linux——Crontab使用详解
- 格式:docx
- 大小:23.33 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 表示每隔两个小时执行一次。
通过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,它允许用户在指定的时间间隔内自动执行任务。
使用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是一个非常重要的工具,它可以帮助我们自动化执行任务。
无论是系统维护还是日常工作,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如何使用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命令的⽤法: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是一种用于在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工具。
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的安装以及使⽤⽅法安装crontab:[root@wulaoer ~]# yum install vixie-cron[root@wulaoer ~]# yum install crontabs说明:vixie-cron软件包是cron的主程序;crontabs软件包是⽤来安装、卸装、或列举⽤来驱动 cron 守护进程的表格的程序。
//+++++++++++++++++++++++++++++++++++cron 是linux的内置服务,但它不⾃动起来,可以⽤以下的⽅法启动、关闭这个服务:/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 on1、crontab命令功能说明:设置计时器。
语 法:crontab [-u <⽤户名称>][配置⽂件] 或 crontab [-u <⽤户名称>][-elr]补充说明:cron是⼀个常驻服务,它提供计时器的功能,让⽤户在特定的时间得以执⾏预设的指令或程序。
只要⽤户会编辑计时器的配置⽂件,就可以使⽤计时器的功能。
其配置⽂件格式如下:Minute Hour Day Month DayOFWeek Command参 数: -e 编辑该⽤户的计时器设置。
-l 列出该⽤户的计时器设置。
-r 删除该⽤户的计时器设置。
-u<⽤户名称> 指定要设定计时器的⽤户名称。
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⽂件或脚本。
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的方法详解发布:thebaby 来源:net 【大中小】本文介绍下,在linux中安装crontab的方法,以及crontab 的具体用法,有需要的朋友参考下。
这里使用yum方式安装crontab:说明:vixie-cron软件包是cron的主程序;crontabs软件包是用来安装、卸装、或列举用来驱动cron 守护进程的表格的程序。
cron 是linux的内置服务,但它不自动启动。
可以用以下的方法启动、关闭此服务:查看crontab服务状态:手动启动crontab服务:查看crontab服务是否已设置为开机启动,执行命令:没有就加入开机自动启动:有关crontab的用法。
语法介绍:使用权限:root用户和crontab文件的所有者语法:crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ]说明:crontab 是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。
-u user 是指设定指定user 的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。
如果不使用-u user 的话,就是表示设定自己的时程表。
参数:-e [UserName]: 执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe)-r [UserName]: 删除目前的时程表-l [UserName]: 列出目前的时程表-v [UserName]:列出用户cron作业的状态时程表的格式:使用者也可以将所有的设定先存放在档案file中,用crontab file 的方式来设定时程表。
由于Unix版本不一样,所以部分语法也有差别,请具体情况实际解决。
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是一个非常实用的命令,在复杂的任务处理过程中可以发挥出很大的作用。
通过合理的使用,不仅可以大幅度提高工作效率,还可以减少人工操作带来的错误。
crontable语法在Linux系统中,`crontab`是一个用于定时执行任务的工具。
`crontab`文件中的每一行表示一个定时任务,每行由六个字段组成,字段之间用空格或制表符分隔。
这六个字段分别表示分钟、小时、日期、月份、星期和要运行的命令。
`crontab`的语法如下:```plaintext分时日月周命令```-分(Minutes):0 到59-时(Hours):0 到23-日(Day of month):1 到31-月(Month):1 到12-周(Day of week):0 到6 (0 表示星期天)-命令:要执行的命令或脚本以下是一些例子,说明`crontab`的使用:1. 每天定时执行一个命令:```plaintext0 2 * * * /path/to/your/command```该命令表示在每天凌晨2点执行指定的命令。
2. 每小时执行一个任务:```plaintext0 * * * * /path/to/your/command```该命令表示在每小时的第0分钟执行指定的命令。
3. 每周五下午4点30分执行一个任务:```plaintext30 16 * * 5 /path/to/your/command```该命令表示在每周五的下午4点30分执行指定的命令。
4. 每月的1号执行一个任务:```plaintext0 0 1 * * /path/to/your/command```该命令表示在每月的1号的午夜执行指定的命令。
注意事项:- `*` 表示通配符,表示任意取值。
-多个数值用逗号分隔,例如`1,15,30`。
-还可以使用范围表示,例如`1-5` 表示1到5的范围。
你可以使用`crontab -e` 命令编辑当前用户的`crontab` 文件,添加或修改定时任务。
使用`crontab -l` 可以列出当前用户的定时任务。
crontab命令用法Crontab是一个在Linux和Unix操作系统中用于定期执行任务的工具,它允许用户在预定的时间间隔内自动运行命令或脚本。
以下是关于Crontab命令的用法的详细解释:1. 创建/编辑Crontab文件要创建或编辑Crontab文件,您需要使用以下命令:```bashcrontab -e```这将打开一个文本编辑器,您可以在其中输入要执行的命令或脚本。
每个命令或脚本都需要占用一行,并且需要指定执行的时间和日期。
2. 指定执行时间在Crontab文件中,您可以指定执行命令或脚本的时间和日期。
以下是一些常用的时间和日期选项:* * * * * command这表示每分钟都要执行一次命令。
0 * * * * command这表示每小时的第0分钟执行一次命令。
0 0 * * * command这表示每天的0点0分执行一次命令。
0 0 * * 0 command这表示每周日的0点0分执行一次命令。
3. 指定命令或脚本在Crontab文件中,您可以指定要执行的命令或脚本。
以下是一些示例:* * * * * echo "Hello World"这将每分钟输出“Hello World”。
0 * * * * /usr/bin/python3 /path/to/script.py这将每小时的第0分钟执行Python脚本。
4. 查看Crontab文件要查看当前用户的Crontab文件,请使用以下命令:```bashcrontab -l```这将列出当前用户的所有Crontab条目。
5. 删除Crontab文件要删除当前用户的Crontab文件,请使用以下命令:```bashcrontab -r```这将删除当前用户的所有Crontab条目。
总结:Crontab是一个非常有用的工具,它允许用户在预定的时间间隔内自动运行命令或脚本。
使用Crontab,您可以轻松地定期执行重复的任务,从而节省时间和精力。
crontab命令的功能是在一定的时间间隔调度一些命令的执行。
在/etc目录下有一个crontab 文件,这里存放有系统运行的一些调度程序。
每个用户可以建立自己的调度crontab。
crontab命令有三种形式的命令行结构:crontab [-u user] [file]crontab [-u user] [-e|-l|-r]crontab -l -u [-e|-l|-r] 第一个命令行中,file是命令文件的名字。
如果在命令行中指定了这个文件,那么执行crontab命令,则将这个文件拷贝到crontabs目录下;如果在命令行中没有制定这个文件,crontab命令将接受标准输入(键盘)上键入的命令,并将他们也存放在crontab目录下。
命令行中-r选项的作用是从/usr/spool/cron/crontabs目录下删除用户定义的文件crontab;命令行中-l选项的作用是显示用户crontab文件的内容。
使用命令crontab -u user -e命令编辑用户user的cron(c)作业。
用户通过编辑文件来增加或修改任何作业请求。
执行命令crontab -u user -r即可删除当前用户的所有的cron作业。
作业与它们预定的时间储存在文件/usr/spool/cron/crontabs/username里。
username使用户名,在相应的文件中存放着该用户所要运行的命令。
命令执行的结果,无论是标准输出还是错误输出,都将以邮件形式发给用户。
文件里的每一个请求必须包含以spaces和tabs分割的六个域。
前五个字段可以取整数值,指定何时开始工作,第六个域是字符串,称为命令字段,其中包括了crontab调度执行的命令。
第一道第五个字段的整数取值范围及意义是:0~59 表示分1~23 表示小时1~31 表示日1~12 表示月份0~6 表示星期(其中0表示星期日)/usr/lib/cron/cron.allow表示谁能使用crontab命令。
名称: 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文件位于用户自己的目录位置)。