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地图