crontab配置文件(linux定时任务配置文件)

admin 370 0

大家好,今天给各位分享crontab配置文件的一些知识,其中也会对linux定时任务配置文件进行解释,文章篇幅可能偏长,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在就马上开始吧!

一、linux怎么修改crontab

使用crontab命令可以修改crontab配置文件,然后该配置由cron公用程序在适当的时间执行,该命令使用权限是所有用户。

-e:执行文字编辑器来设定时程表,内空的文字编辑器是vi

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三个环境变量。

使用cron服务,用server crond status查看cron服务状态,如果没有启动则service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或编辑需要定时执行的任务:

crontab–u//设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

crontab–l//列出某个用户cron服务的详细内容

crontab–r//删除某个用户的cron服务

crontab–e//编辑某个用户的cron服务

crontab filename//以filename作为crontab的任务列表文件并载入

比如说root查看自己的cron设置:crontab–u root–l

再例如,root想删除fred的cron设置:crontab–u fred–r

在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab–u root–e

进入vi编辑模式,编辑的内容一定要符合下面的格式:

辑/etc/crontab文件,在末尾加上一行:30 5*** root init 6这样就将系统配置为每天早上5点30分自动重新启动。

crontab文件中的行由6个字段组成,不同字段间用空格或tab键分隔。前5个字段指定命令要运行的时间

星期几(0-6,其中0代表星期日,好像7也代表星期日)

第6个字段是一个要在适当时间执行的字符串。

#MIN HOUR DAY MONTH DAYOFWEEK COMMAND

#晚上11点到早上8点之间每两个小时,早上8点

#每个月的4号和每个礼拜一到礼拜三的早上11点

补充:在使用crontab的时候,要特别注意的是运行脚本中能够访问到的环境变量和当前测试环境中环境变量未必一致,一个比较保险的做法是在运行的脚本程序中自行设置环境变量(export)

(1)先建一个文件crond.txt如下,每天早上5点36分重新启动

让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后,也要重新启动cron服务器。

在Fedora和Redhat中,我们应该用:

如果让crond在开机时运行,应该改变其运行级别:

service crond status查看cron服务状态,如果没有启动则service crond start启动它,cron服务是一个定时执行的服务,可以通过crontab命令添加或者编辑需要定时执行的任务

二、crontab定时任务配置是什么

1、/var/spool/cron/这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名,比如tom建的crontab任务对应的文件就是/var/spool/cron/tom。一般一个用户最多只有一个crontab文件。

2、/etc/crontab这个文件负责安排由系统管理员制定的维护系统以及其他任务的crontab。

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

4、作为普通用户来讲只需关注/var/spool/cron/对应用户的配置文件即可。

5、crontab是Unix和Linux用于设置周期性被执行的指令,是互联网很常用的技术,很多任务都会设置在crontab循环执行,如果不使用crontab,那么任务就是常驻程序,这对你的程序要求比较高,一个要求你的程序是24X7小时不宕机,一个是要求你的调度程序比较可靠。

6、实际工作中,90%的程序都没有必要花这么多时间和精力去解决上面的两个问题的,只需要写好自己的业务逻辑,通过crond这个工业级程序去调度就行了,crond的可靠性,健壮性,大家应该是毫无疑问的。

三、linux中的cron计划任务配置方法[详细]

   -l列出某个用户的任务计划

   -r删除某个用户的任务

   -e编辑某个用户的任务

可用crontab-e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件。具体格式如下:

Minute Hour Day Month Week command

   分钟小时天月星期命令

   0-59 0-23 1-31 1-12 0-6 command

Minute每个小时的第几分钟执行该任务

   Hour每天的第几个小时执行该任务

   Day每月的第几天执行该任务

   Month每年的第几个月执行该任务

   DayOfWeek每周的第几天执行该任务,0表示周日

   Command指定要执行的程序、脚本或命令

在这些字段里,除了“Command”是必须指定的字段以外,其它字段皆为可选。对于不指定的字段,要用“*”来填补其位置。

   “*”代表取值范围内的数字,

   “/”代表”每”,

   “-”代表从某个数字到某个数字,

   “,”分开几个离散的数字

4.关于cron配置文件/etc/crontab

cron的主配置文件是/etc/crontab,它包括下面几行:

   PATH=/sbin:/bin:/usr/sbin:/usr/bin

   01**** root run-parts/etc/cron.hourly

   02 4*** root run-parts/etc/cron.daily

   22 4** 0 root run-parts/etc/cron.weekly

   42 4 1** root run-parts/etc/cron.monthly

前四行是用来配置 cron任务运行环境的变量:

SHELL变量的值指定shell环境(此处默认为 bash shell);PATH变量定义用来执行命令的程序路径;cron任务的输出被邮寄给 MAILTO变量定义的用户名,如果 MAILTO变量被定义为空白字符串(MAILTO=""),电子邮件就不会被寄出;HOME变量可以用来设置在执行命令或脚本时使用的主目录。

如在/etc/crontab文件中run-parts部分所示,它使用 run-parts脚本来执行存在于/etc/cron.hourly、/etc/cron.daily、/etc/cron.weekly和/etc/cron.monthly目录中的脚本,这些脚本被相应地按照预设时间在每小时、每日、每周、或每月执行。这些目录中的文件应该是 shell脚本,并且具有可执行权限(chmod+x filename)。

如果某 cron任务需要根据调度来执行,而不是每小时、每日、每周、或每月地执行,它可以被添加到/etc/cron.d目录中。该目录中的所有文件使用和/etc/crontab中一样的语法。

每次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron信息都记录在这个文件中,这个文件是不可以直接编辑的,只可以用crontab-e来编辑。cron启动后每过一份钟读一次这个文件,检查是否要执行里面的命令。因此此文件修改后不需要重新启动cron服务。

5 **** ls指定每小时的第5分钟执行一次ls命令

   30 5*** ls指定每天的 5:30执行ls命令

   30 7 8** ls指定每月8号的7:30分执行ls命令

   30 5 8 6* ls指定每年的6月8日5:30执行ls命令

   30 6** 0 ls指定每星期日的6:30执行ls命令[注:0表示星期天,1表示星期1,以此类推,也可以用英文来表示,sun表示星期天,mon表示星期一等。]

   30 3 10,20** ls每月10号及20号的3:30执行ls命令[注:“,”用来连接多个不连续的时段]

   25 8-11*** ls每天8-11点的第25分钟执行ls命令[注:“-”用来连接连续的时段]

   */15**** ls每15分钟执行一次ls命令 [即每个小时的第0 15 30 45 60分钟执行ls命令 ]

   30 6*/10** ls每个月中,每隔10天6:30执行一次ls命令[即每月的1、11、21、31日是的6:30执行一次ls命令 ]

每天7:50以root身份执行/etc/cron.daily目录中的所有可执行文件

   50 7** * root run-parts /etc/cron.daily [注:run-parts参数表示,执行后面目录中的所有可执行文件

第10、20、30分钟输出到/tmp/cron1.txt:

   10,20,30**** echo"第10、20、30分钟输出一次"/tmp/cron1.txt

以用户lzw.me的身份每两小时就运行某个程序:

0*/2*** lzw.me/usr/bin/somecommand/dev/null 21

   B、重启cron的方法

#/etc/rc.d/init.d/crond restart

   Usage:/etc/rc.d/init.d/crond{start|stop|status|reload|restart|condrestart}

四、LINUX crontab 文件怎么写

1、第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;第七段应该定义的是:执行的命令和参数。注:其中用户名可是省略,用户名定义的是程序用哪个用户来执行,比如mysql服务器,我们可以定义成以mysql用户来启动、停止、重新启动,这时要写上用户名;不过对于cron来说意义不是太大,因为每个用户都有自己的cron配置文件。有些程序的启动必须用到root用户,这时我们就可以修改root用户的cron配置文件就行了。在每个用户的配置文件中,不必指定用户名。

2、我们可以把计划任务写在全局性配置文件中,如果您想把一个计划放入全局性配置文件中,就得改发行版所对应的cron全局配置文件,比如Fedora 5的全局性配置文件是/etc/crontab文件;

3、每个用户也能定义自己的cron配置文件,用crontab-e命令来定义;

4、举一例:让机器在每天8点30分重新启动;

5、关于时间格式中有7个字段。我们可以直接更改或者添加,当然这是系统任务调用。举个例子,比如我在每天的早上8点30分重新启动机器,就可以在

6、/etc/crontab中加入下面的两句,第一句就是注释了。以#号开始,后面写一个自己能知道这是什么任务的备注;

7、# reboot OS 30 8*** root/sbin/reboot

8、第一段应该定义的是:分钟,表示每个小时的第几分钟来执行。范围是从0-59

9、第二段应该定义的是:小时,表示从第几个小时来执行,范围是从0-23

10、第三段应该定义的是:日期,表示从每个月的第几天执行,范围从1-31

11、第四段应该定义的是:月,表示每年的第几个月来执行,范围从1-12

12、第五段应该定义的是:周,表示每周的第几天执行,范围从0-6,其中 0表示星期日。

13、每六段应该定义的是:用户名,也就是执行程序要通过哪个用户来执行,这个一般可以省略;

14、第七段应该定义的是:执行的命令和参数。

15、对比上面的例子就知道,30是不是分钟??8是不是小时?如果有*代表的地方,表示全部,也就是说,每个月,每天,每星期都要执行。root表示用root用户执行,命令是/sbin/reboot,也就是说,系统在每天 8点30分重新启动;

16、我们可以把每天8点30分重新启动的计划任务写入cron全局性配置文件中,也可以定义在root用户自己的cron配置文件中。如果定义在 root自己的配置文件,请用root身份来执行 crontab-e来修改配置文件;crontab-e进入修改配置文件的过程,其实和vi的用法一样。

17、让配置文件生效:如果让配置文件生效,还得重新启动cron,切记,既然每个用户下的cron配置文件修改后。也要重新启动cron服务器。

文章分享结束,crontab配置文件和linux定时任务配置文件的答案你都知道了吗?欢迎再次光临本站哦!

上一篇php在线测试

下一篇replace toner