1、创建三个文件
exp.list 内容:oracle数据库的用户名和密码
name pwd
exp.log 主要用于存储在自动备份数据库时的日志信息
exp.sh
#!/bin/sh#找到数据库的路径 export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export PATH=$ORACLE_HOME/bin:$PATH export ORACLE_OWNER=oracle export ORACLE_SID=orcl export NLS_LANG=American_America.ZHS16GBK export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib#执行路径 cd /home/oracle/dbbackup exptime=$(date +%Y-%m-%d_%H)#读取创建的exp.list文件里的用户名及密码 cat exp.list | while read dbUser dbPasswd do echo $dbUserexp $dbUser/$dbPasswd GRANTS=Y file=$dbUser"_"$exptime.dmp #执行导出if [ "0" == $? ]thentar -zcvf $dbUser"_"$exptime.dmp.tar.gz $dbUser"_"$exptime.dmprm $dbUser"_"$exptime.dmpfi done #rm file which is 6 days before find . -mtime +6 -name "*.dmp.tar.gz" |xargs rm
2、本脚本加入定时任务里面
crontab -e
30 23 * * 0 /home/oracle/dbbackup/exp.sh >> /home/oracle/dbbackup/exp.log 2>&1
意思是:每星期周日的晚上23时30分执行/home/oracle/dbbackup下的exp.sh脚本,如果脚本执行报错会把错误信息放到exp.log下面。