客户需求每天半夜2点对几个重要表进行备份,在备份的同时删除隔一天的备份数据,
防止文件空间涨满。
例如:当天是20091110,这天执行备份脚本的时候就要删除20091108这天的备份数
据。过程很简单,就是执行完exp之后,判断一下当前日期减去2做为要删除的数据名,
rm掉就可以了。在操作系统中设置crontab自动调用脚本即可。详细代码如下:(在linux
机器上通过)
文件名:backup.sh
#!/bin/bash
ORACLE_HOME=/opt/oracle/product/10g
export ORACLE_HOME
ORACLE_SID=oracle
export ORACLE_SID
PATH=$ORACLE_HOME/bin:$PATH
export PATH
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1
export NLS_LANG
rq=$(date +%Y%m%d)
echo 'rq--->' $rq
exp system/system grants=y rows=y file=/home/oracle/backup/mem$rq.dmp log=/home/oracle/backup/mem$rq.log tables=sys.memory buffer=65536555
let rm_rq=$rq-2
echo 'rm_rq--->' $rm_rq
rm /home/oracle/backup/m
执行:
crontab -e
加上这句话即可,在试验环境中,每分钟执行一次脚本
* * * * * /home/oracle/mm/backup.sh
下面是crontab的一些知识:
字段说明
1分钟(0-59)
2小时(2-24)
3日期(1-31)
4月份(1-12;或英文缩写Jan、Feb等)
5周几(0-6,0为周日;或单词缩写Sun、Mon等)
6用户名(执行命令时以此用户的身份)
7要执行的命令(路径)
例:
1 2 3 * * root tar
3号2点1分的时候执行root的下的tar命令。没有的用*代替
查看当前用户的cron配置,使用 crontab -l
编辑当前用户的cron配置,使用 crontab -e
删除当前用户的cron配置,使用 crontab -r
阅读(1756) | 评论(0) | 转发(0) |