環境: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服務器腳本編寫完成。