废话不多说,直接上菜了

废话不多说,间接上菜了

在LINUX中,周期执行的天职一般由cron这么些守护进度来处理[ps -ef|grep
cron]。cron读取一个或多个布局文件,这个安插文件中隐含了命令行及其调用时间。
cron的布局文件称为“crontab”,是“cron table”的简写。

此办法不要求修改Tomcat配置 亲测,可用

 

 

一、cron服务
  cron是一个linux下
的定时执行工具,可以在无需人工干预的状态下运行作业。
  service crond start    //启动服务
  service crond stop     //关闭服务
  service crond restart  //重启服务
  service crond reload   //重新载入配置
  service crond status   //查看服务场馆 

1.在tomcat  bin目录下添Gavin件clear_log.sh

首先种:在/etc/crontab下设置,指定用户名的

首先种:在/etc/crontab下设置,指定用户名的

二、cron在3个地点找找配置文件:
1、/var/spool/cron/
那一个目录下存放的是每一个用户包涵root的crontab任务,各个职务以创设者的名字命名,比如tom建的crontab义务对应的文书就是/var/spool/cron/tom。一般一个用户最八只有一个crontab文件。

情节如下:

1、vim命令进入/etc/crontab

1、vim命令进入/etc/crontab

三、/etc/crontab
这么些文件负责布署由系统管理员制定的爱惜系统以及其余义务的crontab。

#!/bin/sh
d=`date +%Y-%m-%d`
d7=`date -d’7 day ago’
+%Y-%m-%d`
cp
/opt/apache-tomcat-8.5.9/logs/catalina.out
/opt/apache-tomcat-8.5.9/logs/catalina.${d}.log
echo “” >
/opt/apache-tomcat-8.5.9/logs/catalina.out
rm -rf
/opt/apache-tomcat-8.5.9/logs/catalina.${d7}.log

2、在终极一行加上

2、在最终一行加上

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

2.将sh文件加入操作权限

59 23 *crontab的二种配备格局,自动备份。 * * root /root/catalina.out.rm/rm_8080_8081_catalina.sh

59 23 * * * root /root/catalina.out.rm/rm_8080_8081_catalina.sh

# For details see man 4 crontabs

chmod +x
/opt/apache-tomcat-8.5.9/bin/clear_log.sh

正如表明:

一般来说表达:

# 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 executed

3.修改/etc/crontab文件(定时器)在文档最下方添加(每一日0点1分执行脚本):

澳门金沙国际 1

澳门金沙国际 2

澳门金沙国际 3

1 0 * * * root
/opt/apache-tomcat-8.5.9/bin/clear_log.sh

3、重启crontab,使配置生效

3、重启crontab,使配置生效

  • MAILTO=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的程式!

4.加载crontab文件

澳门金沙国际 4

澳门金沙国际 5

四、/etc/cron.d/ 那一个目录用来存摒弃何要实施的crontab文件或脚本。

crontab -u root /etc/crontab

 

 

五、权限(?)
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命令。 

5.重启crontab

 

 

AIX 中 普通用户暗中同意都有 crontab 权限,借使要限量用户采用 crontab
,就必要编制/var/adm/cron/cron.deny 
HP-UNIX 中暗许普通用户没得crontab 权限 ,要想放手普通用户的crontab
权限能够编

/etc/init.d/crond restart

其次种:直接用crontab -e,不需求指定用户

其次种:直接用crontab -e,不须要指定用户

六、创建cron脚本
首先步:写cron脚本文件,命名为crontest.cron。
15,30,45,59 * * * * echo “xgmtest…..” >>
xgmtest.txt  表示,每隔15分钟,执行打印五次命令 
第二步:添加定时义务。执行命令 “crontab crontest.cron”。消除 
其三步:”crontab -l”
查看定时任务是还是不是成功照旧检测/var/spool/cron下是不是变动对应cron脚本

6.查看定时职务

1、crontab -e进入

1、crontab -e进入

留神:那操作是平素交换该用户下的crontab,而不是骤增

crontab -l

澳门金沙国际 6

澳门金沙国际 7

 

2、:wq退出保存

2、:wq退出保存

七、crontab用法 
  crontab命令用于安装、删除可能列出用于驱动cron后台进程的报表。用户把必要执行的指令体系放到crontab文件中以博得执行。
   
逐个用户都足以有协调的crontab文件。/var/spool/cron下的crontab文件不得以向来创建或许直接改动。该crontab文件是通过crontab命令创建的

3、查看上边极度剧本是或不是有实践权限

3、查看上面万分剧本是不是有实施权限

   在crontab文件中如何输入要求实施的命令和岁月。该公文中每行都囊括七个域,其中前多个域是点名命令被实施的时刻,最终一个域是要被实践的通令。
    各种域之间接纳空格或许制表符分隔。格式如下: 
  minute hour day-of-month month-of-year day-of-week commands 
    合法值 00-59 00-23 01-31 01-12 0-6 (0 is sunday) 
 
  除了数字还有多少个个优异的记号就是”*”、”/”和”-“、”,”,*表示所有的取值范围内的数字,”/”代表每的情趣,”/5″表示每5个单位,”-“代表从某个数字到某个数字,”,”分开多少个离散的数字。

澳门金沙国际 8

澳门金沙国际 9

    -l 在正式输出上出示当前的crontab。 
  -r 删除当前的crontab文件。 
  -e
使用VISUAL或许EDITO智跑环境变量所指的编辑器编辑当前的crontab文件。当截至编辑离开时,编辑后的文书将活动安装。 

4、还要看剧本里面的关联的操作文件是或不是有权力

4、还要看剧本里面的涉及的操作文件是或不是有权力

 

5、重启crontab,使配置生效

5、重启crontab,使配置生效

八、例子: 
每一天中午6点 
0 6 * * * echo “Good morning.” >> /tmp/test.txt
//注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的邮箱了。

澳门金沙国际 10

澳门金沙国际 11

每八个钟头 
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 line

1月1日早上4点 
0 4 1 1 * command line SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root
//若是现身错误,大概有数量输出,数据作为邮件发给这么些帐号 HOME=/ 

每时辰执行/etc/cron.hourly内的台本
01 * * * * root run-parts /etc/cron.hourly
每一日执行/etc/cron.daily内的本子
02 4 * * * root run-parts /etc/cron.daily 

每星期执行/etc/cron.weekly内的台本
22 4 * * 0 root run-parts /etc/cron.weekly 

每月去执行/etc/cron.monthly内的脚本 
42 4 1 * * root run-parts /etc/cron.monthly 

瞩目:
“run-parts”那几个参数了,若是去掉那几个参数的话,前边就足以写要运行的某个脚本名,而不是文件夹名。
  

每日的晚上4点、5点、6点的5 min、15 min、25 min、35 min、45 min、55
min时执行命令。 
5,15,25,35,45,55 16,17,18 * * * command

每星期天,三,五的中午3:00系统进入维护状态,重新启航系统。
00 15 * * 1,3,5 shutdown -r +5

每小时的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)  

年年岁岁的1四月和四月,4号到9号的3点12分和3点55分执行/bin/rm -f
expire.1st那个命令,并把结果添加在mm.txt这一个文件之后(mm.txt文件位于用户本身的目录地点)。 
12,55 3 4-9 1,4 * /bin/rm -f expire.1st$#@62;$#@62;mm.txt

 

 

 

 

 前几日做了个数据库的备份脚本,顺便系统得上学一下Linux下定时举办脚本的装置。Linux下的定时执行重点是利用crontab文件中插足定制安插来推行,设置比Windows略微复杂一些(因为没有图形界面嘛),不过也不是很复杂,基本上用过一次就能记住了,关键是要铭记在心/var/spool/cron那个目录。上边看一下实际的应用办法:

 

   
首先查看一下/etc/crontab文本:

 

$ cat /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

# run-parts
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中每行职务的描述格式如下: 

 

    minute hour day month dayofweek
command

 

    minute – 从0到59的整数 
    hour – 从0到23的整数 
    day – 从1到31的整数
(必须是指定月份的有效性日期)
    month – 从1到12的平头
(或如Jan或Feb简写的月份)
    dayofweek –
从0到7的平头,0或7用来描述星期天 (或用Sun或Mon简写来代表)
    command – 需求举行的下令(可用as
ls /proc >> /tmp/proc或 执行自定义脚本的指令) 

 

    root代表以root用户身份来运转
    run-parts表示前面跟着的是一个目录,要推行的是该目录下的持有脚本

 

    对于上述各语句,星号(*)表示所有可用的值。例如*在代表month时表示每月执行(需求符合其余限制条件)该命令。 
    整数间的连字号(-)表示整数列,例如1-4意味是整数1,2,3,4

    指定数值由逗号分开。如:3,4,6,8意味着那两个指定整数。

    符号“/”指定步进设置。“/<interger>”表示步进值。如0-59/2定义每两分钟实施四回。步进值也可用星号表示。如*/3用来运作每半年份运行指定任务。

 

    以“#”开端的为凝视行,不会被实践。

 

    如若一个cron任务急需定期而不是按时辰,天,周,月来推行,则须要追加/etc/cron.d目录。那几个目录下的具备文件和文件/etc/crontab语法相同,查看样例:

 

# record the memory usage of the system every monday 
# at 3:30AM in the file /tmp/meminfo 
30 3 * * mon cat /proc/meminfo >> /tmp/meminfo 
# run custom scrīpt the first day of every month at 4:10AM 
10 4 1 * * /root/scrīpts/backup.sh

    除了root用户之外的用户可以举行crontab配置陈设义务。所实用户定义的crontab存储在目录/var/spool/cron下,职分会以制造者的身份被执行。要以特定用户创造一个crontab,先以该用户登录,执行命令crontab
-e,系统会启动在VISUAL只怕EDITOPRADO中指定的的编辑软件编写crontab。文件内容与/etc/crontab格式相同。演示例子如下:

 

0 3 * * * /home/dbbackup/db1backup.sh backup
0 4 * * * /home/dbbackup/db2backup.sh backup

 

    表示每一日3点执行/home/dbbackup/db1backup.sh
backup,4点实施/home/dbbackup/db2backup.sh
backup,假使是每五秒钟实施两次可改为:

 

*/5 * * * * /home/dbbackup/db2backup.sh backup

 

    当更改的crontab需求保留时,文件会保留在成如下文件/var/spool/cron/username。文件名会依据用户名而差别。

 

    cron服务会每分钟检查五回/etc/crontab、/etc/cron.d/、/var/spool/cron文件下的更改。若是发现变化,就会下载到存储器中。由此,即便crontab文件改变了,程序也不必要重启。推荐自定义的义务使用crontab
-e命令扩大,退出后用/etc/init.d/crond
restart命令重启crond进度,官方文书说并非重启进程,但自个儿遇到不重启不大概运转职责的境况。初阶不驾驭/etc/crontab文件中的run-parts是怎样意思,直接把命令根据/etc/crontab的格式加上总是力不从心运行,后来才知晓run-parts是指背后跟着的是目录。

 

 

 

 

 

 

下边再附一篇介绍:

************************************************************************************

cron是一个linux下的定时执行工具,能够在无需人工干预的情事下运行作业。因为Cron
是Linux的放权服务,但它不自行起来,可以用上面的消除方案启动、关闭那一个服务:

 

/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置

 

你也得以将那些服务在系统启动的时候自动启动:

 

在/etc/rc.d/rc.local这些本子的末梢加上:
/sbin/service crond start

 

近日Cron这几个服务业已在进程之中了,大家就足以用这些服务了,Cron服务提供上面二种接口供我们利用:

 

1.一贯用crontab命令编辑

 

cron服务提供crontab命令来设定cron服务的,上边是这些命令的一部分参数与认证:

 

crontab -u
//设定某个用户的cron服务,一般root用户在实施那个命令的时候须求此参数

crontab -l //列出某个用户cron服务的事无巨细内容

crontab -r //删除没个用户的cron服务

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

 

例如说root查看本人的cron设置:crontab -u root -l

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

在编排cron服务时,编辑的情节有一部分格式和约定,输入:crontab -u root -e

 

进去vi编辑形式,编辑的情节自然要符合下边的格式:*/1 * * * * ls
>> /tmp/ls.txt

 

以此格式的前一部分是对时间的设定,前面一部分是要实施的指令,假如要实施的指令太多,可以把这一个命令写到一个本子里面,然后在那边直接调用那么些剧本就足以了,调用的时候记得写出命令的一体化路径。时间的设定大家有一定的约定,前面七个*号表示几个数字,数字的取值范围和含义如下:

 

分钟 (0-59)

小時(0-23)

日期(1-31)

月份(1-12)

星期(0-6) //0代表星期日

 

    除了数字还有多少个个新鲜的标记就是”*”、”/”和”-“、”,”,*意味着所有的取值范围内的数字,”/”代表每的意趣,”*/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/28 * * * echo “Have a good dream:)” >> /tmp/test.txt

 

各种月的4号和各种礼拜的星期一到礼拜天的清早11点


0 11 4 * 1-3 command line

 

1月1日早上4点


0 4 1 1 * command line

 

    每一次编辑完某个用户的cron设置后,cron自动在/var/spool/cron下生成一个与此用户同名的文件,此用户的cron音讯都记录在这么些文件中,那些文件是不得以直接编辑的,只能用crontab
-e
来编排。cron启动后每过一份钟读五回这些文件,检查是或不是要实施里面的命令。因而此文件修改后不要求重启cron服务。

 

2.编辑/etc/crontab 文件配置cron

 

    cron服务每分钟不仅要读四遍/var/spool/cron内的保有文件,还索要读一回/etc/crontab,由此大家配备这几个文件也能动用cron服务做一些事务。用crontab配置是指向某个用户的,而编辑/etc/crontab是指向系统的职责。此文件的文件格式是:

 

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root //若是出现错误,恐怕有数量输出,数据作为邮件发给那么些帐号
HOME=/      //使用者运行的门道,那里是根目录
# run-parts
01 * * * * 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”那个参数了,借使去掉那个参数的话,前边就可以写要运行的某部脚本名,而不是目录名了。

************************************************************************************

 

相关文章