ftp異地備份

需求:將數據備份的文件上傳到ftp所在服務器
ftp服務器IP地址:192.168.5.5
ftp服務器賬戶/密碼:jie/jd!2016

1、在數據庫所在服務器上創建ftp.sh腳本,用的root用戶創建的腳本,權限也root用戶

#vi /home/hh/ftp.sh 
#!/bin/bash        #聲明改文件爲sh腳本可執行文件

CURDATE=$(date '+%Y%m%d')     #獲取當天的日期

cd /u01/bacup/           #切換本地目錄
ftp -v -n 192.168.5.5 <<- EOF    #執行ftp命令
user jie jd!2016         #用戶名 密碼
binary                     #以字節傳輸
hash
put NL$CURDATE*.dmp NL$CURDATE.dmp
put HL$CURDATE*.dmp HL$CURDATE.dmp
bye
EOF
FTP的命令行格式爲: 
ftp -v -d -i -n -g [主機名] ,其中 
-v 顯示遠程服務器的所有響應信息; 
-n 限制ftp的自動登錄,即不使用;.n etrc文件; 
-d 使用調試方式; 
-g 取消全局文件名。

給ftp.sh腳本執行權限,做計劃任務即可。

2、備份數據庫同時異地上傳備份數據

$ vi /u01/databack/bin/re.sh 
#!/bin/sh
source /home/oracle/.bash_profile
timedate=$(date +%Y%m%d%H%M%S)
bakdbname=re
bakdbpasswd=13
dumpdbname=re
bakdbhome=/u01/databack
expdp $bakdbname/$bakdbpasswd directory=backDir dumpfile=$dumpdbname'_'$timedate.dmp logfile=$bakdbname'_'$timedate.log
cd /u01
zip -r databack/$dumpdbname'_'$timedate.zip databack/$dumpdbname'_'$timedate.dmp databack/$bakdbname'_'$timedate.log
find $bakdbhome/*.log -mtime +10 -exec rm -rf {} \;
find $bakdbhome/*.zip -mtime +10 -exec rm -rf {} \;
find $bakdbhome/*.dmp -exec rm -rf {} \;

cd $bakdbhome
ftp -v -n 192.168.5.5 >>${bakdbname}_${timedate}.log << EOF
user jieshida jsd!2016
binary
hash
put ${dumpdbname}_${timedate}.zip ${dumpdbname}_${timedate}.zip
bye
EOF

#iconv -f gb2312  -t utf8 ${bakdbname}_${timedate}.log  -o ${bakdbname}_${timedate}.log
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章