1.创建备份目录:
mkdir -p /dcits/sx_xmz/sx_data_bak
chown -R oracle18c:oinstall /dcits/sx_xmz/sx_data_bak
2.脚本文件编写 vi databak.sh 输入如下内容
#设置环节变量
export ORACLE_SID=orcl18c
export ORACLE_BASE=/home/oracle18c/u01/app/oracle
export ORACLE_HOME=/home/oracle18c/u01/app/oracle/product/18.3/dbhome_1
export PATH=/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export CLASSPATH=$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib
export PATH=$ORACLE_HOME/bin:$PATH
#设置用户变量, 数据库用户
orowner=sx_rms
#设置时间
days=10
#设置文件名称
bakdata=$orowner"_"$(date +%Y%m%d).dmp
#设置导出执行日志名称
baklog=$orowner"_"$(date +%Y%m%d).log
#设置打包名称
ordatabak=$orowner"_"$(date +%Y%m%d).tar.gz
#设置备份文件存放地址
bakdir=/dcits/sx_xmz/sx_data_bak
#编写备份命令
cd $bakdir
exp sx_rms/sx_ams@pdb1 file=$bakdir/$bakdata owner=sx_rms log=$bakdir/$baklog
tar -zcvf $ordatabak $bakdata $baklog
find $bakdir -type f -name "*.log" -exec rm {} ;
find $bakdir -type f -name "*.dmp" -exec rm {} ;
find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} ;
**编写完成之后,手动执行下脚本验证脚本是否正确,完事用chmod命令给脚本文件赋予执行权限 **
3.切换到oracle的用户,创建Linux定时任务
-e edit user's crontab 编辑定时任务
-l list user's crontab 查看定时任务列表
-r delete user's crontab 删除定时任务
crontab -l 查看当前用户下的定时任务
crontab -e 编辑定时任务,编辑完成保存30 1 * * * /dcits/sx_xmz/sx_data_bak/databak.sh
crontab -l 查看是否添加成功30 1 * * * /dcits/sx_xmz/sx_data_bak/databak.sh
定时任务设置时间结构:
┌────────── minute (0 - 59)
│ ┌──────── hour (0 - 23)
│ │ ┌────── day of month (1 - 31)
│ │ │ ┌──── month (1 - 12)
│ │ │ │ ┌── day of week (0 - 6 => Sunday - Saturday, or
│ │ │ │ │ 1 - 7 => Monday - Sunday)
↓ ↓ ↓ ↓ ↓
* * * * * command to be executed
注意事项:
a、星期和数字对应
0 - Sun Sunday
1 - Mon Monday
2 - Tue Tuesday
3 - Wed Wednesday
4 - Thu Thursday
5 - Fri Friday
6 - Sat Saturday
7 - Sun Sunday
b、’day or month‘ 、‘month’ 、‘day of week’ --这三项注意 如果不能确定月份日期和周日期对应关系,可以两个取一个 即 规定了 月份和日期 就不选择星期 星期 执行 * 规定了 星期 月份和日期就 * *
参考链接:https://www.cnblogs.com/huangjiangyong/p/15434857.html
内容来源于网络如有侵权请私信删除
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!