linux定时任务详细说明解析.docx

上传人:b****6 文档编号:7113643 上传时间:2023-01-18 格式:DOCX 页数:17 大小:31.84KB
下载 相关 举报
linux定时任务详细说明解析.docx_第1页
第1页 / 共17页
linux定时任务详细说明解析.docx_第2页
第2页 / 共17页
linux定时任务详细说明解析.docx_第3页
第3页 / 共17页
linux定时任务详细说明解析.docx_第4页
第4页 / 共17页
linux定时任务详细说明解析.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

linux定时任务详细说明解析.docx

《linux定时任务详细说明解析.docx》由会员分享,可在线阅读,更多相关《linux定时任务详细说明解析.docx(17页珍藏版)》请在冰豆网上搜索。

linux定时任务详细说明解析.docx

linux定时任务详细说明解析定时任务详细说明解析Linux定时任务fileclear.shtamcdir=$HOME/ora/user_projects/domains/tamccd$tamcdirechorm-flsheapdump*.phdrm-fheapdump*.phdechorm-flsjavacore*.txtrm-fjavacore*.txtechorm-flsSnap*.trcrm-fSnap*.trccdbinechocp/dev/nullnuhup.outcp/dev/nullnuhup.outcd$tamcdir/pxbakechorm-rfls20*rm-rf20*cd$tamcdir/webapps/tamcx/fileLoadechorm-ffind/weblogic/ora/user_projects/domains/tamc/webapps/tamcx/fileLoad/-mtime+1find/weblogic/ora/user_projects/domains/tamc/webapps/tamcx/fileLoad/-mtime+1-execrm-f;task.crontab#web服务端日志、临时文件清理101*ksh$HOME/tools/clearweblogic.sh/weblogic/ora/user_projects/domains/tamc/webapps/tamcx/log/crontab.log2/weblogic/ora/user_projects/domains/tamc/webapps/tamcx/log/crontab.logtask.null.crontab是一个没有内容的空文件开启定时任务crontab/weblogic/tools/task.crontab停止定时任务crontab/weblogic/tools/task.null.crontabcrontab-uusername-l|-e|-r参数:

-u:

只有root才能进行这个任务,也即帮其他用户新建/删除crontab工作调度;-e:

编辑crontab的工作内容;-l:

查阅crontab的工作内容;-r:

删除所有的crontab的工作内容,若仅要删除一项,请用-e去编辑。

范例一:

用dmtsai的身份在每天的12:

00发信给自己crontab-e#此时会进入vi的编辑界面让你编辑工作。

注意到,每项工作都是一行。

012*maildmtsai-sat12:

00/tmp/ls.txt任务调度的crond常驻命令crond是linux用来定期执行程序的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

6.crontab命令选项:

-u指定一个用户-l列出某个用户的任务计划-r删除某个用户的任务-e编辑某个用户的任务7.cron文件语法:

分小时日月星期命令0-590-231-311-120-6command(取值范围,0表示周日一般一行对应一个任务)记住几个特殊符号的含义:

“*”代表取值范围内的数字,“/”代表”每”,“-”代表从某个数字到某个数字,“,”分开几个离散的数字8.任务调度设置文件的写法可用crontab-e命令来编辑,编辑的是/var/spool/cron下对应用户的cron文件,也可以直接修改/etc/crontab文件具体格式如下:

MinuteHourDayMonthDayofweekcommand分钟小时天月天每星期命令每个字段代表的含义如下:

Minute每个小时的第几分钟执行该任务Hour每天的第几个小时执行该任务Day每月的第几天执行该任务Month每年的第几个月执行该任务DayOfWeek每周的第几天执行该任务Command指定要执行的程序在这些字段里,除了“Command”是每次都必须指定的字段以外,其它字段皆为可选字段,可视需要决定。

对于不指定的字段,要用“*”来填补其位置。

举例如下:

按Ctrl+C复制代码按Ctrl+C复制代码9.新增调度任务新增调度任务可用两种方法:

1)、在命令行输入:

crontab-e然后添加相应的任务,wq存盘退出。

2)、直接编辑/etc/crontab文件,即vi/etc/crontab,添加相应的任务。

10.查看调度任务crontab-l/列出当前的所有调度任务crontab-l-ujp/列出用户jp的所有调度任务11.删除任务调度工作crontab-r/删除所有任务调度工作12.任务调度执行结果的转向例1:

每天5:

30执行ls命令,并把结果输出到/jp/test文件中305*ls/jp/test2&1注:

2&1表示执行结果及错误信息。

编辑/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*rootrun-parts/etc/cron.hourly/每小时执行/etc/cron.hourly内的脚本024*rootrun-parts/etc/cron.daily/每天执行/etc/cron.daily内的脚本224*0rootrun-parts/etc/cron.weekly/每星期执行/etc/cron.weekly内的脚本4241*rootrun-parts/etc/cron.monthly/每月去执行/etc/cron.monthly内的脚本大家注意”run-parts”这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名了例如:

1)在命令行输入:

crontab-e然后添加相应的任务,wq存盘退出。

2)直接编辑/etc/crontab文件,即vi/etc/crontab,添加相应的任务1122110*rm-rf/mnt/fb在UNIX下怎样实现和Windows下“计划任务”一样的功能$crontab-e编辑脚本$crontab-l察看脚本用$crontab-e编辑脚本,加入下列行:

分小时星期月命令Linux下crontab命令的用法任务调度的crond常驻命令crond是linux用来定期执行程序的命令。

当安装完成操作系统之后,默认便会启动此任务调度命令。

crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作。

而linux任务调度的工作主要分为以下两类:

1、系统执行的工作:

系统周期性所要执行的工作,如备份系统数据、清理缓存2、个人执行的工作:

某个用户定期要做的工作,例如每隔10分钟检查邮件服务器是否有新信,这些工作可由每个用户自行设置3、Crontab是UNIX系统下的定时任务触发器,其使用者的权限记载在下列两个文件中:

文件含义/etc/cron.deny该文件中所列的用户不允许使用Crontab命令/etc/cron.allow该文件中所列的用户允许使用Crontab命令/var/spool/cron/是所有用户的crontab文件/var/spool/cron/crontabs4、Crontab命令的格式为:

crontabl|-r|-e|-iusername,其参数含义如表一:

参数名称含义示例-l显示用户的Crontab文件的内容crontabll-i删除用户的Crontab文件前给提示crontabl-ri-r从Crontab目录中删除用户的Crontab文件crontabl-r-e编辑用户的Crontab文件crontabl-e5、用户所建立的Crontab文件存于/var/spool/cron中,其文件名与用户名一致。

它的格式共分为六段,前五段为时间设定段,第六段为所要执行的命令段,格式如下:

*其时间段的含义如表二:

段含义取值范围第一段代表分钟059第二段代表小时023第三段代表日期131第四段代表月份112第五段代表星期几0代表星期日名称:

crontab使用权限:

所有使用者使用方式:

crontab-uuserfilecrontab-uuser-l|-r|-e说明:

crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。

-uuser是指设定指定user的时程表,这个前提是你必须要有其权限(比如说是root)才能够指定他人的时程表。

如果不使用-uuser的话,就是表示设定自己的时程表。

餐数:

-e:

执行文字编辑器来设定时程表,内定的文字编辑器是VI,如果你想用别的文字编辑器,则请先设定VISUAL环境变数来指定使用那个文字编辑器(比如说setenvVISUALjoe)-r:

删除目前的时程表-l:

列出目前的时程表时程表的格式如下:

f1f2f3f4f5program其中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中,用crontabfile的方式来设定时程表。

例子:

每月每天每小时的第0分钟执行一次/bin/ls:

07*/bin/ls在12月内,每天的早上6点到12点中,每隔20分钟执行一次/usr/bin/backup:

06-12/3*12*/usr/bin/backup周一到周五每天下午5:

00寄一封信给alexdomain.name:

017*1-5mail-shialexdomain.name/dev/null2&1即可例:

如果用户的Crontab文件的内容是:

2919*echoitsdinnertime,则系统每天的19:

29显示itsdinnertime示例(创建一个cron全过程,每分钟都会在test.txt里输入当前时间):

1.以普通用户登录linux系统(我用的是CentOS4.1)2.$crontabe说明:

系统默认的编辑器是VIM,如果不是请加上以下shell:

$EDITOR=vi$exportEDITOR3.输入”*/1*date$HOME/test.txt”,saveandexitVIM4.$suroot5.$cd/etc/init.d6./crondrestart下面看看看几个具体的例子:

0*/2*/sbin/servicehttpdrestart意思是每两个小时重启一次apache507*/sbin/servicesshdstart意思是每天7:

50开启ssh服务5022*/sbin/servicesshdstop意思是每天22:

50关闭ssh服务001,15*fsck/home每月1号和15号检查/home磁盘1*/home/bruce/backup每小时的第一分执行/home/bruce/backup这个文件0003*1-5find/home*.xxx-mtime+4-execrm;每周一至周五3点钟,在目录/home中,查找文件名为*.xxx的文件,并删除4天前的文件。

306*/10*ls意思是每月的1、11、21、31日是的6:

30执行一次ls命令在linux平台上如果需要实现任务调度功能可以编写cron脚本来实现。

以某一频率执行任务linux缺省会启动crond进程,crond进程不需要用户启动、关闭。

crond进程负责读取调度任务并执行,用户只需要将相应的调度脚本写入cron的调度配置文件中。

cron的调度文件有以下几个:

1.crontab2.cron.d3.cron.daily4.cron.hourly5.cron.monthly6.cron.weekly如果用的任务不是以hourlymonthlyweekly方式执行,则可以将相应的crontab写入到crontab或cron.d目录中。

示例:

每隔一分钟执行一次脚本/opt/bin/test-cron.sh可以在cron.d新建脚本echo-date.sh内容为*/1*root/opt/bin/test-cron.sh在指定的时间运行任务也可以通过at命令来控制在指定的时间运行任务如:

at-ftest-cron.sh-v10:

25其中-f指定脚本文件,-v指定运行时间quote:

ea946d690b=lophyxp首先用contab-l>contabs.tmp导出contab的配置。

然后编辑contabs.tmp文件。

以一下格式添加一行:

分钟小时天月星期命令比如103*0,6hello就是每周六、周日的3点10分执行hello程序。

154*4-6hello就是从周四到周六的4点15点执行hello程序。

然后用contabcontabs.tmp命令导入新的配置。

一般不建议直接修改/etc/下的相关配置文件。

启动cron进程的方法:

/etc/init.d/crondstart开机就启动cron进程的设置命令:

chkconfig-addcrond方法二:

把cron加入到启动脚本中:

#rc-updateaddvixie-crondefaultcrontab-l#查看你的任务crontab-e#编辑你的任务crontab-r#删除用户的crontab的内容实例讲解二:

系统cron设定:

/etc/crontab通过/etc/crontab文件,可以设定系统定期执行的任务,当然,要想编辑这个文件,得有root权限07*rootmpg123/wakeup.mp3分时日月周示例:

04*0rootemerge-sync&emerge-uDworld#每周日凌晨4点,更新系统021*rootrm-f/tmp/*#每月1号凌晨2点,清理/tmp下的文件0865*rootmailrobin>/tmp/test.txt晚上11点到早上8点之间每两个小时,早上八点023-7/2,8*echohaveagooddream:

)>>/tmp/test.txt每个月的4号与每个礼拜的礼拜一到礼拜三的早上11点0114*1-3commandline1月1日早上4点0411*commandlinelinux下定时执行任务的方法在LINUX中你应该先输入crontab-e,然后就会有个vi编辑界面,再输入03*1/clearigame2内容到里面:

wq保存退出。

在LINUX中,周期执行的任务一般由cron这个守护进程来处理ps-ef|grepcron。

cron读取一个或多个配置文件,这些配置文件中包含了命令行及其调用时间。

cron的配置文件称为“crontab”,是“crontable”的简写。

一、cron在3个地方查找配置文件:

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

一般一个用户最多只有一个crontab文件。

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

三、/etc/cron.d/这个目录用来存放任何要执行的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命令。

五、cron服务cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。

/sbin/servicecrondstart/启动服务/sbin/servicecrondstop/关闭服务/sbin/servicecrondrestart/重启服务/sbin/servicecrondreload/重新载入配置/sbin/servicecrondstatus/查看服务状态在crontab文件中如何输入需要执行的命令和时间。

该文件中每行都包括六个域,其中前五个域是指定命令被执行的时间,最后一个域是要被执行的命令。

每个域之间使用空格或者制表符分隔。

格式如下:

minutehourday-of-monthmonth-of-yearday-of-weekcommands合法值00-5900-2301-3101-120-6(0issunday)commands(代表要执行的脚本)除了数字还有几个个特殊的符号就是*、/和-、,,*代表所有的取值范围内的数字,/代表每的意思,/5表示每5个单位,-代表从某个数字到某个数字,分开几个离散的数字。

几个例子:

每天早上6点06*echoGoodmorning./tmp/test.txt/注意单纯echo,从屏幕上看不到任何输出,因为cron把任何输出都email到root的信箱了。

每两个小时0*/2*echoHaveabreaknow./tmp/test.txt晚上11点到早上8点之间每两个小时和早上八点023-7/2,8*echoHaveagooddream/tmp/test.txt每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点0114*1-3commandline1月1日早上4点0411*commandlineSHELL=/bin/bashPATH=/sbin:

/bin:

/usr/sbin:

/usr/binMAILTO=root/如果出现错误,或者有数据输出,数据作为邮件发给这个帐号HOME=/每小时执行/etc/cron.hourly内的脚本01*rootrun-parts/etc/cron.hourly每天执行/etc/cron.daily内的脚本024*rootrun-parts/etc/cron.daily每星期执行/etc/cron.weekly内的脚本224*0rootrun-parts/etc/cron.weekly每月去执行/etc/cron.monthly内的脚本4241*rootrun-parts/etc/cron.monthly注意:

run-parts这个参数了,如果去掉这个参数的话,后面就可以写要运行的某个脚本名,而不是文件夹名。

每天的下午4点、5点、6点的5min、15min、25min、35min、45min、55min时执行命令。

5,15,25,35,45,5516,17,18*command每周一,三,五的下午3:

00系统进入维护状态,重新启动系统。

0015*1,3,5shutdown-r+5每小时的10分,40分执行用户目录下的innd/bbslin这个指令:

10,40*innd/bbslink每小时的1分执行用户目录下的bin/account这个指令:

1*bin/account每天早晨三点二十分执行用户目录下如下所示的两个指令(每个指令以;分隔):

203*(/bin/rm-fexpire.lslogins.bad;bin/expire$#62;expire.1st)每年的一月和四月,4号到9号的3点12分和3点55分执行/bin/rm-fexpire.1st这个指令,并把结果添加在mm.txt这个文件之后(mm.txt文件位于用户自己的目录位置)。

12,5534-91,4*/bin/rm-fexpire.1st$#62;$#62;mm.txtat命令实现定时任务假如我们只是想要让特定任务运行一次,那么,这时候就要用到at监控程序了。

at类似打印进程,会把任务放到/var/spool/at目录中,到指定时间运行它。

at命令相当于另一个shell,运行attime命令时,它发送一个个命令,可以输入任意命令或者程序。

at命令执行流程如下#at2:

05tomorrowat/home/kyle/do_jobatCtrl+DATTime中的时间表示方法-时间例子说明-Minuteatnow+5minutes任务在5分钟后运行Houratnow+1hour任务在1小时后运行Daysatnow+3days任务在3天后运行Weeksatnow+2weeks任务在两周后运行Fixedatmidnight任务在午夜运行Fixedat10:

30pm任务在晚上10点30分注意:

linux默认为不启动,而ubuntu默认为启动的。

检查是否启动,用serviceatd检查语法,用serviceatdstatus检查atd的状态,用serviceatdst

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1