自动执行oracle脚本文件,设置周期性自动执行备份脚本

如下所示:

0f25365bcdbbef63a14d9ffa91e76ead.png

在以上字段中可以使用如下特殊字符:

星号(*):代表所有可能的值,比如在month字段中使用“*",表示在满足其他字段的制约条件后每个月都执行该命令。

逗号(,):可以在一个字段中使用逗号隔开值来表示一个范围,如“1,2,3,4,5,6,”。

横杠(-):同样在一个字段中使用来表示一个范围,如"1-6"表示“1,2,3,4,5,6”。

斜线(/):可以使用斜线来指定时间的间隔频率,如“0-23/2”表示每两个小时执行一次。同时斜线可以和星号使用,如果在minute字段中有*/10,表示每十分钟执行一次。

crond服务操作说明:

启动服务:/sbin/service crond start

停止服务:/sbin/service crond stop

重启服务:/sbin/servie crond restart

重新载入配置:/sbin/service crond reload

查看crond服务状态:/sbin/service crond status

在考虑向crond进程提交一个crontab文件之前,首先要做的是设置一个环境变量,EDITOR。crond进程用它来确定使用哪个编辑器,大部分都是使用vi编辑器,那么就到相应用户的.bash_profile中加入一行:

export EDITOR=vi

存盘退出并使用source使其立即生效。

例子:

在/home/huan目录下创建一个名为cronz的文本:

*/2 * * * * echo "hello" >>test.txt(注意是>>)

意思是每隔两分钟就向test.txt文本写入"hello"。

然后执行crontab filename:

[huan@oracle ~]$ crontab cronz

验证crontab文件是否真的生成了:到/var/spool/cron目录下查看以用户名为名称的文本是否生成,并查看其中的内容:

[root@oracle cron]# ls

huan

[root@oracle cron]# more huan

*/2 * * * * echo "hello" >test.txt

查看test.txt,发现每隔两分钟就会写入"hello":

[huan@oracle ~]$ tail -f test.txt

hello

hello

hello

hello

hello

实例:

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

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:00pm重启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目录内的脚本:

*  */1  *  *  *  root run-parts /etc/cron.hourly

16.每个周二,周四,周六零时30分的时候执行脚本rman.sh:

30 00 * * 2,4,6 /home/oracle/backup_script/rman.sh

17.每天零时30分的时候执行脚本rman.sh:

30 00 * * * /home/oracle/backup_script/rman.sh

如下,想每隔一分钟输出时间到test.txt文件中:

[oracle@oracle cronoracle]$ vi crontime

*/1 * * * * date >> /home/oracle/test.txt

[oracle@oracle cronoracle]$ crontab crontime

[oracle@oracle cronoracle]$ crontab -l

*/1 * * * * date >> /home/oracle/test.txt

[oracle@oracle cronoracle]$ tail -f /home/oracle/test.txt

Wed Oct 29 07:57:01 PDT 2014

Wed Oct 29 07:58:01 PDT 2014

Wed Oct 29 07:59:01 PDT 2014

下面给出一个自动执行备份的脚本例子:

[oracle@oracle scripts]$ more rman.sh

#!/bin/bash

export ORACLE_SID=orcl

export ORACLE_BASE=/u01/app/oracle

export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1

export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH

rman target / > /u01/app/backup/autorman/log/rman_backup_`date "+%Y-%m-%d"`.log << EOF

run{

CONFIGURE BACKUP OPTIMIZATION ON;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/u01/app/backup/autorman/dbfull_%d_%s';

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/u01/app/backup/autorman/ctl_%F';

backup format='/u01/app/backup/autorman/dbfull_%d_%s' database plus archivelog delete input;

sql 'alter system switch logfile';

}

quit

EOF

[oracle@oracle cronrman]$ crontab -l

30 0 * * * /scripts/rman.sh

每天零时30分执行一次/scripts/rman.sh备份脚本。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值