环境:Red Hat Enterprise Linux Server release 6.4
需求:需要将Oracle数据库的定时备份上传至FTP服务器
1.干货,用户名:oracle,数据库名称:XXXXXXX,FTP服务器地址:127.0.0.1。脚本至ftp -i -v -n<<!前都为本身存在的数据库定时备份脚本。路径为/home/用户名/ordatabak.sh
#!/bin/sh
. /home/oracle/.bash_profile
date=`date +%Y_%m_%d`
days=7
orowner=wxdb
bakdir=/home/oracle/orabackup
bakdata=$orowner"_"$date
ordatabak=$orowner"_"$date.tar.gz
cd $bakdir
expdp \"\/ as sysdba\" DIRECTORY=DATA_BAK DUMPFILE=$bakdata"_"%U.dmp SCHEMAS=XXXXXXX CONTENT=ALL logfile=$bakdata"_".log cluster=N
tar -zcvf $ordatabak *.dmp *.log
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 {} \; ftp -i -v -n<<!
open 127.0.0.1
user username passwd
binary
cd /destination_directory
lcd /source_directory
prompt
put $ordatabak $ordatabak
close
bye
!
2.对oracle数据库不是很熟悉,之前搭建的时候是别人负责的,只说ftp上传部分。
我使用的linux没有安装ftp客户端,如果服务器上已经安装了的,可以跳过这一步。首先要安装ftp客户端,命令:yum install ftp,提示complete就表示安装完成。
注意:之前并不知道我使用的linux没有安装ftp客户端,网上搜到的命令为:yum install vsftpd,该命令为安装ftp服务器的,在本例中使用不到,也就没有深究。参考连接:
https://zhidao.baidu.com/question/2010722861325815548.html
http://blog.csdn.net/jiafu1115/article/details/7621303
安装过程中出现错误,错误大概为:
对linux知之甚少,也就只能依靠百度了。大概就是另一程序在使用yum安装程序,所以锁住了,删除yum.pid,重启yum服务(不太清楚是不是,看上去是update的服务),问题得以解决。链接:
https://zhidao.baidu.com/question/331411086597515805.html
[root@centos5 ~]# rm -r /var/run/yum.pid
rm:是否删除 一般文件 “/var/run/yum.pid”? y
[root@centos5 ~]# /sbin/service yum-updatesd restart
停止 yum-updatesd: [确定]
启动 yum-updatesd: [确定]
至于pid文件是干啥的,看这个链接,我也不是很懂。http://blog.csdn.net/shanzhizi/article/details/23272437
3.ftp客户端安装完成后,就可以简单测试ftp连接,脚本也可以仿照1里面写。命令的意思要自己百度,我懒得找了,大概就是open后面加上ftp服务器地址,cd后面写ftp服务器上传地址,lcd写本地上传文件所在地址。
脚本编写完成后,可以尝试运行,并看看ftp服务器上是否收到文件。
简单的vim操作命令 http://www.cnblogs.com/momofan/p/5936203.html
4.添加计划任务
命令:vi /etc/crontab
网上有些人说命令也可以是 crontab -e,可能是环境的问题,我这边用不了。至此,linux定时备份数据至ftp服务器脚本编写完成。