crontab定时职务不履行的来由,linux定时脚本

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

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

 Linux的cron和crontab

定时任务之crontab命令,任务之crontab命令

                      See crontab(1) for more information ”

                      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
亚洲必赢app官方下载 1
/etc/crontab.deny文件与/etc/crontab.allow文件
  1、分别表示不可能采取crontab命令的用户、以及可以使用crontab命令的用户
  2、八个文本同时设有crontab.allow文件优先
  3、八个公文都不存在则唯有root用户才具备调用该命令  

则切换来root用户,再使用命令

则切换来root用户,再选择命令

Cron定时执行工具详解           

2、语法

crontab [-e [UserName]|-l [UserName]|-r [UserName]|-v
[UserName]|File ] 梯次参数表明:crontab定时职务不履行的来由,linux定时脚本。 创办定时职责   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 用户名 命令

#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添加完任务,并且义务也设有,不过却尚未如约职分指定时间执行,则检查

2、假设做完了crontab
-e添加完任务,并且职务也存在,但是却未曾依据职分指定时间执行,则检查

Linux上启动Cron任务

 1)查看日志

 1)查看日志

 

日记文件地点

日志文件地点

[linux]解析crontab

默许情形下,crontab中履行的日记写在/var/log下,如:

默许意况下,crontab中实施的日记写在/var/log下,如:

 

亚洲必赢app官方下载 2

亚洲必赢app官方下载 3

cron表明式详解

crontab的日记比较简单,当crond执行职分失败时会给用户发一封邮件。恰巧在大家的一台服务器上发现一个任务没有正规实施,而且crond发邮件也破产了。

crontab的日记相比较简单,当crond执行义务战败时会给用户发一封邮件。恰巧在大家的一台服务器上发现一个任务没有正规履行,而且crond发邮件也破产了。

 

透过看mail的日志,看到是磁盘空间不足造成的。

经过看mail的日记,看到是磁盘空间不足导致的。

cron语法

 2)查看crontab 是还是不是启动成功,检测crontab 服务是还是不是启动,

 2)查看crontab 是还是不是启动成功,检测crontab 服务是还是不是启动,

 

     /etc/init.d/crond status 

     /etc/init.d/crond status 

Cron表明式不难学习

  没启动则要用上面发号施令

  没启动则要用上面发号施令

 

     /etc/init.d/crond start

     /etc/init.d/crond start

Cron表明式详解

 3)查看命令中操作的文件是或不是存在,当前用户是还是不是有操作该公文的权位

 3)查看命令中操作的文件是不是留存,当前用户是不是有操作该公文的权能

 

     我那里用的是cloudlogin用户安装

     我这里用的是cloudlogin用户设置

Linux定时任务系统 Cron

亚洲必赢app官方下载 4

亚洲必赢app官方下载 5

 

翻看命令中操作的文件是不是存在,并且当前用户是还是不是有操作该文件的权能

查看命令中操作的文书是不是存在,并且当前用户是还是不是有操作该公文的权柄

Shell命令_Cron使用

亚洲必赢app官方下载 6

亚洲必赢app官方下载 7

 

倘若没有则要赋予权力或者更换用户(请参见文章 crontab的三种配备情势进展配置)

如果没有则要给以权力或者转移用户(请参见文章 crontab的二种配备格局展开配置)

 

亚洲必赢app官方下载 8

亚洲必赢app官方下载 9

权限(?) 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服务,命令为

 4)若不是上边原因,则重启下crond服务,命令为

AIX 中 普通用户默许都有 crontab 权限,如若要限量用户使用 crontab
,就须要编制/var/adm/cron/cron.deny 
HP-UNIX 中默认普通用户没得crontab 权限 ,要想放手普通用户的crontab
权限可以编

     使用 /etc/init.d/crond restart

     使用 /etc/init.d/crond restart

 

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

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

 

留神:配置完后都须求重启下crontab使之生效

专注:配置完后都亟待重启下crontab使之生效

亚洲必赢app官方下载 10

 

 

在上述种种字段中,还足以利用以下特殊字符:

参考小说:crontab定时职责不履行的原由

参考文章:crontab定时义务不进行的由来

星号(*):代表享有可能的值,例如month字段假使是星号,则象征在满意其余字段的制约条件后每月都履行该命令操作。

crontab的三种配备格局

crontab的三种配备情势

逗号(,):能够用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

     

     

中杠(-):可以用整数之间的中杠表示一个整数范围,例如“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.下令成效:

亚洲必赢app官方下载 ,因此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
R环境变量又设置为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目录中保留一个该文件的副本。我就有过类似的经验,有数十次误删了crontab文件(因为r键紧挨在e键的入手)。那就是怎么有些系统文档提出并非直接编辑crontab文件,而是编辑该公文的一个副本,然后再次提交新的公文。

有点crontab的变体有些蹊跷,所以在行使crontab命令时要尤其小心。假使遗漏了其他拔取,crontab可能会打开一个空文件,或者看起来像是个空文件。那时敲delete键退出,不要按<Ctrl-D>,否则你将遗失crontab文件。

 

 

创设一个新的crontab文件


考虑向cron进度提交一个crontab文件在此之前,首先要做的一件工作就是设置条件变量EDITOR。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’。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图