档案馆Linux下之crontab定时、执行任务指令详解 oracle 自动备份

档案馆Linux下之crontab定时、执行任务指令详解 oracle 自动备份

在LINUX中,周期执行之职责一般由cron这个守护进程来拍卖[ps -ef|grep
cron]。cron读取一个要多单布局文件,这些配置文件中蕴藏了命令行及其调用时间。
cron的布置文件称“crontab”,是“cron table”的简写。

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

仲、cron在3独地方寻找配置文件:
1、/var/spool/cron/
这个目录下存放的是每个用户包括root的crontab任务,每个任务为创建者的名字命名,比如tom建的crontab任务对应的文本就/var/spool/cron/tom。一般一个用户最为多单出一个crontab文件。

其三、/etc/crontab
这个文件负责布置由系统管理员制定的保障系统与其它任务的crontab。

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

# For details see man 4 crontabs

# 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

档案馆 1

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

季、/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命令。 

AIX 中 普通用户默认都发 crontab 权限,如果要限制用户用 crontab
,就需要编制/var/adm/cron/cron.deny 
HP-UNIX 中默认普通用户没得crontab 权限 ,要惦记放普通用户的crontab
权限可以编

六、创建cron脚本
第一步:写cron脚本文件,命名吧crontest.cron。
15,30,45,59 * * * * echo “xgmtest…..” >>
xgmtest.txt  表示,每隔15分钟,执行打印一坏命令 
次步:添加定时任务。执行命令 “crontab crontest.cron”。搞定 
其三步:”crontab -l”
查看定时任务是否成或检测/var/spool/cron下是否别对应cron脚本

专注:这操作是一直调换该用户下的crontab,而非是增创

 

七、crontab用法 
  crontab命令用于安装、删除或列出用于驱动cron后台进程的表。用户把需要实行的通令序列放到crontab文件中为得到执行。
   
每个用户还好出谈得来之crontab文件。/var/spool/cron下之crontab文件不可以直接创造或者直接改动。该crontab文件是经crontab命令创建的

   于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单单位,”-“代表从某个数字到某某数字,”,”分开几独离散的数字。

    -l 在正式输出达到显得当前之crontab。 
  -r 删除时底crontab文件。 
  -e
使用VISUAL或者EDITOR环境变量所负的编辑器编辑时底crontab文件。当了编辑离开时,编辑后底公文将活动安装。 

 

八、例子: 
每日早起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/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)  

年年的一月和四月,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或者EDITOR中指定的的编排软件编制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”这个参数了,如果失去丢这个参数的言语,后面就可形容如运行的某个脚本名,而不是目录名了。

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

 

admin

网站地图xml地图