linux定时脚本,crontab定时任务不执行的原因

1、重启crontab假诺遇见“You (cloudlogin) are not allowed to use this program (crontab)

 Linux的cron和crontab

准时职责之crontab命令,职务之crontab命令

                      See crontab(1) for more information ”

 

1、简介

crontab用于安装周期性被执行的通令 Linux系统中Linux调动专门的职业分为两大类:   1、系统执行的办事:系统周期性所要实施的劳作,如备份系统数据、清理缓存   2、个人实施的职业:有个别顾客定时要做的工作,比方每间距10分钟检查邮件服务器是否有新信,这几个职业可由种种客户自动设置 /etc/crtontab   系统调治的任务平时贮存在/etc/crontab那么些文件下,里面寄存了大器晚成都部队分系统运作的调节程序,通过命令cat crontab查看   那一个职责会在系统运行起来活动调用 /var/spool/cron   各个用户都会变卦自动生成一个融洽的crontab文件,平常位于/var/spool/cron目录下   实行命令crontab -r 就能够去除当前客商的crontab文件。举例你切换成suifeng账号下,实行了该命令,那么/var/spool/cron/suifeng文件就能够去除,假设要开创该文件只必要用crontab -e命令就能够。   注意,普通客商平时从不权限访谈/var/spool/cron 图片 1 /etc/crontab.deny文件与/etc/crontab.allow文件   1、分别表示无法动用crontab命令的顾客、以至能够选择crontab命令的客户  2、五个文本同一时间设有crontab.allow文件优先   3、五个公文都不设有则独有root客商才有所调用该命令  

则切换来root客户,再接纳命令

Cron定期实践工具安详严整           

2、语法

crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v [UserName]|File ] 逐一参数表达: 成立定期职务   crontab -e步入文本(vi卡塔尔编辑状态   * * * * * command path  // 前三个字段能够取整数值,内定哪天带头职业,第五个域是字符串,即命令字段,此中囊括了crontab调整实行的指令。 各样字段之间用spaces和tabs分割。 (可将指令写入.sh脚本文件中,并给予可实行的权力就能够卡塔尔 调治指令的法规:

字段名称 说明 取值范围
分钟 每小时的第几分钟执行 0-59
小时 每日的第几个小时执行 0-23
日期 每月的第几天执行 1-31
月历 每年的第几月执行 1-12
星期 每周的第几天执行 0-6
命令名称 欲执行的命令及参数  

crontab命令中的一些常用特殊符号:

符号 说明
* 表示任何时刻
, 表示分割
表示一个段,如第二段里: 1-5,就表示1到5点
/n 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

翻开准时职务:crontab -l 除去依期职务:crontab -r  

#crontab -u 用户名 命令

 

3、使用示例

实例1:   每1分钟推行二回command   命令:* * * * * command 实例2:   每小时的第3和第15分钟实践   命令:3,15 * * * * command 实例3:   在上午8点到11点的第3和第15分钟实行   命令:3,15 8-11 * * * command 实例4:   每间距二日的上午8点到11点的第3和第15分钟实行  命令:3,15 8-11 */2 * * command 实例5:   每个星期二的晚上8点到11点的第3和第15分钟实行   命令:3,15 8-11 * * 1 command 实例6:   每晚的21:30重启smb    命令:30 21 * * * /etc/init.d/smb restart 实例7:   每月1、10、22日的4 : 45重启smb    命令:45 4 1,10,22 * * /etc/init.d/smb restart 实例8:   每周六、周日的1 : 10重启smb   命令:10 1 * * 6,0 /etc/init.d/smb restart 实例9:   天天18 : 00至23 : 00中间每间隔30分钟重启smb    命令:0,30 18-23 * * * /etc/init.d/smb restart 实例10:   每一周末的晚上11 : 00 pm重启smb    命令:0 23 * * 6 /etc/init.d/smb restart 实例11:   每大器晚成钟头重启smb    命令:* */1 * * * /etc/init.d/smb restart 实例12:   早晨11点到深夜7点之内,每间距大器晚成钟头重启smb    命令:* 23-7/1 * * * /etc/init.d/smb restart 实例13:   每月的4号与周周风流洒脱到周一的11点重启smb    命令:0 11 4 * mon-wed /etc/init.d/smb restart 实例14:   七月朝气蓬勃号的4点重启smb    命令:0 4 1 jan * /etc/init.d/smb restart 实例15:   每小时试行/etc/cron.hourly目录内的脚本   命令:01 * * * * root run-parts /etc/cron.hourly   表达:run-parts这一个参数了,假如去掉这些参数的话,前边就足以写要运转的有些脚本名,并不是目录名 实例16:   1、每一日23点59分后台实施test.sh脚本;并将标准输出写入log.txt中   命令:59 23 * * * /home/suifeng/scripts/test.sh >/home/suifeng/log.txt &   2、同上   命令:59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt &   3、每日23点59分后台施行test.sh脚本;并将错误输出写书log.txt中   命令:59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt &   4、每天23点59分后台实施test.sh脚本;并将错误输错当作正式输出(将在错误输出和专门的职业输出全部写入log.txt中卡塔尔  命令:59 23 * * * /home/suifeng/scripts/test.sh 1>/home/suifeng/log.txt 2>&1 & 有关表达:   0表示键盘输入   1表示行业内部输出   2表示错误输出   &表示后台实践  >>表示追加   >表示覆盖写 注意:   1、当在前台运转有些作业时,终端被该学业私吞;而在后台运转作业时,它不会据有终端。能够选拔&命令把作业放到后台施行。   2、需求客商人机联作的一声令下不要放在后台施行,因为这样子机器将会在那一向等候   3、作业在后台运营时,同样会将结果输出在显示器上,困扰你的正规干活。由此大家最佳将出口重定向到有个别文件中  

然后再重启

Linux下的crontab准期举行义务指令详明

4、crond服务

由此 chkconfig --list | grep cron 命令来查阅cron服务的开发银行状态: [[email protected]***** home]# chkconfig --list | grep cron crond 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭 大家能够见到,系统运行级别如果是1-4,cron服务都会开机自动运行的,大家能够透过如下命令来设置该服务的运行项:   /sbin/service crond start   /sbin/service crond stop   /sbin/service crond restart   /sbin/service crond reload 以上1-4行分别为运营、结束、重启服务和重新加载配置。 要把cron设为在开机的时候自动运维,在 /etc/rc.d/rc.local 脚本中步向/sbin/service crond start 就能够。 查看crontab服务场地: service crond status  

 

 

5、个人经历总计

  大家利用这些命令超多都以运作相关的台本文件,最广大的就是定期调用http央浼进行多少收集也许数据库的备份等等。因而当大家相濡相呴所写的剧本文件中满含文件引进时,最棒应用相对路线,不然将会引进失利从而导致准时职分失利。    

(以上是投机的一些视角,若有欠缺可能不当的地点请各位提出卡塔 尔(阿拉伯语:قطر‎

 我:那一叶随风   

 原著地址:

 注脚:本博客小说为原创,只代表本身在专门的学业学习中某一时间内总括的观点或结论。转发时请在篇章页面明显地方给出原作链接

1、简介crontab用于安装周期性被实行的命令Linux系统中Linux调动职业分为两大类: 1、系统履行的工...

2、假使做完了crontab -e加多完任务,并且任务也存在,但是却从没服从职责指准时期施行,则检查

Linux上启动Cron任务

 1卡塔 尔(阿拉伯语:قطر‎查看日志

 

日记文件地方

[linux]解析crontab

默许情状下,crontab中施行的日志写在/var/log下,如:

 

图片 2

cron表明式详细解释

crontab的日志比较轻便,当crond推行职分退步时会给用户发生龙活虎封邮件。适逢其会在大家的意气风发台服务器上开掘四个职分未有例行实践,并且crond发邮件也倒闭了。

 

因而看mail的日记,见到是磁盘空间不足形成的。

cron语法

 2卡塔尔国查看crontab 是或不是运营成功,检查测量检验crontab 服务是不是运行,

 

     /etc/init.d/crond status 

Cron表明式简单学习

  没运转则要用上边施命发号

 

     /etc/init.d/crond start

Cron表达式详细明白

 3卡塔尔国查看命令中操作的文件是不是留存,当前客商是或不是有操作该文件的权力

 

     作者这里用的是cloudlogin客户设置

Linux按期任务系统 Cron

图片 3

 

查看命令中操作的文本是还是不是存在,并且当前客户是或不是有操作该公文的权位

Shell命令_Cron使用

图片 4

 

纵然未有则要赋予权力或然转移客商(请参照他事他说加以考查随笔 crontab的三种配备方式开展计划卡塔尔

 

图片 5

权限(?) crontab权限难题到/var/adm/cron/下生龙活虎看,文件cron.allow和cron.deny是或不是存在
用法如下: 
1、若是多个文件都不设有,则唯有root顾客才具接受crontab命令。 
2、假设cron.allow存在但cron.deny官样文章,则唯有列在cron.allow文件里的客商技巧应用crontab命令,固然root客商也不在里面,则root客户也无法选择crontab。 
3、倘若cron.allow不设有, cron.deny存在,则只有列在cron.deny文件之中的顾客不能够应用crontab命令,此外客户都能利用。 
4、假设八个文本都设有,则列在cron.allow文件中並且还未列在cron.deny中的客商可以利用crontab,假如多少个文本中皆有同多少个客商,以cron.allow文件里面是或不是有该客商为准,借使cron.allow中有该客商,则足以行使crontab命令。 

 4卡塔 尔(阿拉伯语:قطر‎若不是地点原因,则重启下crond服务,命令为

AIX 中 普通客户私下认可都有 crontab 权限,假如要约束客户使用 crontab ,就要求编写制定/var/adm/cron/cron.deny 
HP-UNIX 中私下认可普通顾客没得crontab 权限 ,要想放手普通客户的crontab 权限能够编

     使用 /etc/init.d/crond restart

 

     或者service crond restart(Centos7下为systemctl restart crond)

 

专一:配置完后都急需重启下crontab使之生效

图片 6

 

在上述各类字段中,还是能利用以下特殊字符:

参照作品:crontab准时任务不实践的原因

星号(*卡塔 尔(阿拉伯语:قطر‎:代表全部希望的值,例如month字段借使是星号,则意味在满意此外字段的牵制条件后每月都试行该命令操作。

crontab的二种配备格局

逗号(,卡塔尔国:能够用逗号隔绝的值钦点二个列表范围,举例,“1,2,5,7,8,9”

     

中杠(-卡塔 尔(英语:State of Qatar):能够用整数之间的中杠表示七个整数范围,例如“2-6”表示“2,3,4,5,6”

正斜线(/卡塔尔:能够用正斜线指准时间的区间频率,比如“0-23/2”表示每两钟头执行一遍。同偶然间正斜线能够和星号一同利用,举例*/10,如若用在minute字段,表示每十分钟施行三遍。

 

crontab文件的意思:

客商所确立的crontab文件中,每意气风发行都意味风姿洒脱项任务,每行的各种字段代表豆蔻梢头项设置,它的格式共分为两个字段,前五段是光阴设定段,第六段是要推行的命令段,格式如下:

minute hour day month week command

其中:

minute: 表示秒钟,能够是从0到59里头的其他整数。

hour:表示时辰,可以是从0到23之内的任何整数。

day:表示日期,能够是从1到31之间的别样整数。

month:表示月份,可以是从1到12以内的其他整数。

week:表示星期几,能够是从0到7中间的其余整数,这里的0或7意味周末。

command:要施行的通令,能够是系统命令,也足以是投机编排的本子文件。

 

 

二、crond服务

安装crontab:

yum install crontabs

劳务操作表明:

/sbin/service crond start //运营服务

/sbin/service crond stop //关闭服务

/sbin/service crond restart //重启服务

/sbin/service crond reload //重新载入配置

/sbin/service crond status //运营服务

查阅crontab服务是或不是已设置为开机运转,推行命令:

ntsysv

参与开机自动运行:

chkconfig –level 35 crond on

 

 

crond简介

crond 是linux下用来周期性的实施某种义务或等候管理有些事件的叁个守护进度,与windows下的安排职责相仿,当安装到位操作系统后,暗中同意会安装此服务 工具,何况会活动运转crond进度,crond进度每分钟会准期检查是不是有要进行的职务,要是有要实行的职务,则自动实行该职分。

 

三、crontab命令详整

1.命令格式:

crontab [-u user] file

crontab [-u user] [ -e | -l | -r ]

2.命令功效:

因而crontab 命令,咱们得以在固定的间距时间试行钦命的系统指令或 shell script脚本。时间间距的单位能够是秒钟、小时、日、月、周及以上的人身自由组合。这么些命令非常设合周期性的日记深入分析或数据备份等工作。

3.发令参数:

-u user:用来设定有些顾客的crontab服务,例如,“-u ixdba”表示设定ixdba客商的crontab服务,此参数通常常有root客商来运作。

file:file是命令文件的名字,表示将file做为crontab的义务列表文件并载入crontab。假使在指令行中未有一些名那么些文件,crontab命令将选拔标准输入(键盘卡塔 尔(阿拉伯语:قطر‎上键入的通令,并将它们载入crontab。

-e:编辑某些客商的crontab文件内容。如若不点名顾客,则象征编辑当前客户的crontab文件。

-l:展现某些客户的crontab文件内容,即使不钦点客户,则代表展现当前客商的crontab文件内容。

-r:从/var/spool/cron目录中去除某些客户的crontab文件,假如不内定客商,则暗中认可删除当前客户的crontab文件。

-i:在剔除顾客的crontab文件时给确认提醒。

 

 

编辑crontab文件

设若期待丰裕、删除或编辑crontab文件中的条目款项,而E D I TO 酷威意况变量又设置为v i,那么就足以用v i来编排crontab文件,相应的指令为:

$ crontab -e

能够像使用v i编辑别的任何文件这样改进crontab文件并退出。如若改换了好几条目或增添了新的条规,那么在保存该公文时, c r o n会对其进展供给的完整性检查。如若中间的某些域现身了高于允许范围的值,它会提醒您。

咱俩在编辑crontab文件时,没准会参加新的条约。比方,参与下边包车型地铁一条:

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month

30 3 1,7,14,21,26 * * /bin/find -name “core’ -exec rm {} ;

今昔保留并脱离。最棒在crontab文件的每贰个条文之上插足一条注释,那样就足以清楚它的坚守、运维时刻,更为首要的是,知道那是哪位客商的课业。

 

crontab -l命令列出它的任何新闻:

$ crontab -l

# (crondave installed on Tue May 4 13:07:43 1999)

# DT:ech the date to the console every 30 minites

0,15,30,45 18-06 * * * /bin/echo `date` > /dev/tty1

# DT:delete core files,at 3.30am on 1,7,14,21,26,26 days of each month

30 3 1,7,14,21,26 * * /bin/find -name “core’ -exec rm {} ;

 

 

删除crontab文件

要删除crontab文件,可以用:

$ crontab -r

 

过来错过的crontab文件

假定相当大心误删了crontab文件,若是你在和煦的$ H O M E目录下还只怕有四个备份,那么能够将其拷贝到/var/spool/cron/<username>,此中<username>是顾客名。若是出于权力难点不能形成拷贝,能够用:

$ crontab <filename>

里头,<filename>是你在$ H O M E目录中别本的文件名。

本人提出你在投机的$ H O M E目录中保留三个该公文的别本。笔者就有过相像的经验,有数10回误删了crontab文件(因为r键紧挨在e键的右边手卡塔尔国。那正是干吗有个别系统文书档案建议不要直接编辑crontab文件,而是编辑该公文的一个别本,然后再一次提交新的文件。

多少crontab的变体有些奇异,所以在选择crontab命令时要这一个小心。如若疏漏了其余选取,crontab大概会展开三个空文件,恐怕看起来疑似个空文件。那时候敲delete键退出,不要按<Ctrl-D>,不然你将错失crontab文件。

 

 

创办二个新的crontab文件

在 寻思向cron进度提交贰个crontab文件在此之前,首先要做的风流洒脱件事情正是安装景况变量EDITO福特Explorer。cron进度依照它来鲜明使用哪个编辑器编辑 crontab文件。9 9 %的UNIX和LINUX客商都施用vi,若是您也是这么,那么您就编写$ HOME目录下的. profile文件,在其 中走入这么黄金年代行:

EDITOR=vi; export EDITOR

下一场保留并脱离。无妨创立八个名称为<user> cron的文书,此中<user>是顾客名,举例, davecron。在该公文中投入如下的内容。

# (put your own initials here)echo the date to the console every

# 15minutes between 6pm and 6am

0,15,30,45 18-06 * * * /bin/echo ‘date’ > /dev/console

封存并退出。确信前面5个域用空格分隔。

在 上面包车型大巴例证中,系统将每间隔1 5分钟向调控台出口贰回当前时光。假若系统崩溃或挂起,从最终所出示的时光就足以一眼看出系统是何等时间甘休专门的学业的。在多少 系统中,用tty1来表示调控台,能够依据实际意况对地点的事例实行对应的改造。为了提交你正巧创造的crontab文件,能够把那个新创立的公文作为 cron命令的参数:

$ crontab davecron

这段时间该公文已经交由给cron进度,它将每间距1 5分钟运维三回。

同期,新创制文件的三个别本已经被放在/var/spool/cron目录中,文件名正是客商名(即dave)。

 

 

 

动用实例

实例1:每1分钟实施三回command
命令:
* * * * * command

实例2:每小时的第3和第15分钟实行
命令:
3,15 * * * * command

实例3:在早上8点到11点的第3和第15分钟施行
命令:
3,15 8-11 * * * command

实例4:每间距二日的中午8点到11点的第3和第15分钟奉行
命令:
3,15 8-11 */2 * * command

实例5:各种星期二的中午8点到11点的第3和第15分钟施行
命令:
3,15 8-11 * * 1 command

实例6:每晚的21:30重启smb
命令:
30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb
命令:
45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb
命令:
10 1 * * 6,0 /etc/init.d/smb restart

实例9:天天18 : 00至23 : 00里边每间距30分钟重启smb
命令:
0,30 18-23 * * * /etc/init.d/smb restart

实例10:每周六的夜晚11 : 00 pm重启smb
命令:
0 23 * * 6 /etc/init.d/smb restart

实例11:每风华正茂钟头重启smb
命令:
* */1 * * * /etc/init.d/smb restart

实例12:上午11点到早上7点里面,每间隔少年老成钟头重启smb
命令:
* 23-7/1 * * * /etc/init.d/smb restart

实例13:每月的4号与每一周大器晚成到礼拜二的11点重启smb
命令:
0 11 4 * mon-wed /etc/init.d/smb restart

实例14:四月风流倜傥号的4点重启smb
命令:
0 4 1 jan * /etc/init.d/smb restart

实例15:每时辰试行/etc/cron.hourly目录内的本子
命令:
01 * * * * root run-parts /etc/cron.hourly
说明:
run-parts这一个参数了,假如去掉这几个参数的话,后边就足以写要运营的某部脚本名,并非目录名了

 

 

 

动用注意事项

注意情状变量难题
有的时候大家创立了一个crontab,可是那个任务却无可奈何自动实行,而手动奉行那个任务却并没十分,这种气象相通是出于在crontab文件中并未有布置遇到变量引起的。

在 crontab文件中定义四个调节职务时,必要特别注意的多少个标题正是境况变量的设置,因为大家手动推行有个别职责时,是在日前shell境况下进展的,程 序当然能找随地境变量,而系统自动实施义务调节时,是不会加载任何情况变量的,因而,就须求在crontab文件中钦赐职责局营所需的保有意况变量,那样,系统实践任务调整时就从不难题了。

毫不假定cron知道所急需的特有碰到,它实质上并不知道。所以您要作保在shelll脚本中提供具备要求的渠道和情况变量,除了部分自动安装的全局变量。所以注意如下3点:

1)本子中关系文件路径时写全局路径

2)剧本试行要用到java或其他情况变量时,通过source命令引入入国境遇变量,如:

cat start_cbp.sh

#!/bin/sh

source /etc/profile

export RUN_CONF=/home/d139/conf/platform/cbp/cbp_jboss.conf

/usr/local/jboss-4.0.5/bin/run.sh -c mev &

 

当手动实施脚本OK,可是crontab死活不实践时。这个时候必需大胆疑忌是意况变量惹的祸,并得以尝尝在crontab中平素引入景况变量消灭难题。如:

0 * * * * . /etc/profile;/bin/sh /var/www/java/audit_no_count/bin/restart_audit.sh

小心清理系统客户的邮件日志
每条职分调整推行完成,系统都会将职责输出消息经过电子邮件的款式发送给当前系统客商,这样集腋成裘,日志音信会格外大,大概会耳熏目染系统的不荒谬化运转,由此,将每条义务进展重定向管理极度首要。

诸如,能够在crontab文件中安装如下形式,忽略日志输出:

0 */3 * * * /usr/local/apache2/apachectl restart >/dev/null 2>&1

“/dev/null 2>&1”表示先将规范输出重定向到/dev/null,然后将业内错误重定向到职业输出,由于专门的学问输出已经重定向到了/dev/null,由此专门的职业错误也会重定向到/dev/null,那样日志输出难题就化解了。

 

系统级义务调治与顾客级任务调节
系 统级职务调整主要成就系统的黄金时代部分维护操作,客商级职责调治重要达成客商自定义的生机勃勃对职务,能够将客户级职责调治放到系统级职分调节来成功(不建议这样 做卡塔 尔(阿拉伯语:قطر‎,但是反过来却百般,root客户的职务调治操作能够因此“crontab –uroot –e”来安装,也得以将调治任务一向写入/etc /crontab文件,须求留意的是,若是要定义二个依期重启系统的职务,就必须要将任务放到/etc/crontab文件,尽管在root客户下创办贰个准期重启系统的职分也是于事无补的。

 

任何注意事项
新创制的cron job,不会立时实践,起码要过2分钟才推行。要是重启cron则任何时候实行

当crontab突然失灵时,能够品味/etc/init.d/crond restart解决难题。或然查看日志看有些job有未有实施/报错tail -f /var/log/cron。

千万别乱运维crontab -r。它从Crontab目录(/var/spool/cron卡塔尔国中删除客商的Crontab文件。删除了该顾客的富有crontab都没了。

在crontab中%是有新鲜含义的,表示换行的意趣。倘若要用的话不得不举行转义%,如日常用的date ‘ %Y%m%d’在crontab里是不会施行的,应该换来date ‘ %Y%m%d’。

 

本文由星彩网app下载发布于星彩网app下载,转载请注明出处:linux定时脚本,crontab定时任务不执行的原因

TAG标签: 星彩网app下载
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。