最近开发需要在ubuntu里面定时备份oracle数据库的需要,采用cron,具体步骤如下:
1,写好导数据脚本 存放在 /usr/local/cjd/expdb.sh
2,给脚本授权
给到处存放目录授权
3,写定时任务 crontab -u root -e
4,查看该用户定时任务
5,一切完毕。不需要重启 cron.
1,写好导数据脚本 存放在 /usr/local/cjd/expdb.sh
file=`date +%Y-%m-%d_%H%M%S`
# echo $file
cd /usr/local/cjd/dbback
mkdir $file
# source /home/oracle/.profile -- 不可以,必须定义2个变量如下:
export ORACLE_HOME=/opt/ora10
export ORACLE_SID=orcl
# execute export
${ORACLE_HOME}/bin/exp oa/oa file=/usr/local/cjd/dbback/$file/$file.dmp 2>&1|tee /usr/local/cjd/dbback/$file/$file.log
# execute rar for package
cd /usr/local/cjd/dbback
rar a $file.rar $file
echo 'exp successfully.'>>/usr/local/cjd/dbback/$file/$file.log
echo "今日oracle备份"$file.rar "位于/usr/local/cjd/dbback/"$file/"目录下">>/usr/local/cjd/dbback/$file/$file.log
echo "send mail..."
echo "今日oracle备份"$file.rar "位于/usr/local/cjd/dbback/"$file/"目录下" | mail -s 今日oracle备份$file.rar xxxx@qq.com
# mail -s 今日oracle备份$file.rar xxxx@qq.com < /usr/local/cjd/dbback/$file/$file.log
uuencode $file.rar $file.rar | mail -s $file.rar_Oracle备份 xxxx@qq.com
2,给脚本授权
chmod 777 /usr/local/cjd/expdb.sh
给到处存放目录授权
chmod 777 /usr/local/cjd/dbback
3,写定时任务 crontab -u root -e
00 17 * * 1-5 /usr/local/cjd/expdb.sh #表示 周一至周五 每天 17点运行
4,查看该用户定时任务
crontab -u -l
5,一切完毕。不需要重启 cron.
service cron stop
service cron start