1、设置时间环境变量
oracle用户下
vi .bash_profile //date赋值
export DATE=$(date +%Y%m%d)
root用户下
vi .bash_profile
export DATE=$(date +%Y%m%d)
设置完成后确认是否更改成功。
2、编辑执行文件
新建3个执行文件
Root用户下
cd /opt
mkdir bak
mkdir sh
********************************
vi /opt/sh /backup.sh //执行数据库备份的执行文件
加入oracle环境变量(export)
exp system/passwd rows=y indexes=n compress=n buffer=65536 feedback=100000 volsize=0 full=y file=/opt/bak/$HOSTNAME$DATE.dmp log=/opt/bak/log$HOSTNAME$DATE.log consistent=yes
************************************
vi /opt/sh /ftp.sh //执行数据库备份文件上传到备份数据库的执行文件
加入root环境变量(export)
ftp -v -n 21.175.194.147 << EOF //定义EOF管道并输入到ftp://21.175.194.147
user oracle password //user后面是登录FTP的用户名和密码
binary //二进制模式
bash //启用SHell
lcd /opt/bak //进入本地生成文件所在目录
put $HOSTNAME$DATE.dmp //上传dmp
put log$HOSTNAME$DATE.log //上传log
bye //退出FTP
EOF //退出EOF命名管道
vi /opt/sh /del.sh //执行删除备份文件的执行文件
rm -f /opt/bak/* //清除旧数据库备份文件
3 赋予权限
给文件/opt/sh/backup.sh、del.sh和ftp.sh执行权限和文件夹的执行和写入权限
chmod –R 777 /opt/bak
chmod –R 777 /opt/sh
4、定制计划任务
Crontab -e #设置Oracle用户的计划任务
* 1* * 6 /opt/sh/backup.sh //每周六的凌晨1点备份
crontab -e //设置root用户的计划任务
* 4 * * 6 /opt/sh/ftp.sh //每周六的凌晨4点将备份数据考到本分服务器
* 7 * * 6 /opt/sh/del.sh //每周六的早上7点将服务器上的备份数据删除
各用户mail位置 /var/spool/mail、crontab日志位置/var/log/cron.,执行crontab后会在mail和cron里有消息。