歡迎您光臨本站 註冊首頁

Linux FTP 自動上傳備份文件腳本

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  

DB 用RMAN 直接將備份文件放在盤柜上了,為了以防萬一,老大讓把這些備份文件在copy到一個備份伺服器上。 RMAN 對目錄有嚴格的要求,以後如果要恢復,還是還原到相同的目錄。

之前我計劃是將備份伺服器共享之後,直接mount 到DB 伺服器上,然後在cp 過去,這樣是很簡單的。但是搞系統的大哥建議用ftp來實現。 當時說是不會出現不能umount的情況,還有啥是安全什麼得,這個新年一過也記不清了。 備份伺服器上安裝了Server-U 的FTP 服務,配置好之後,把備份文件傳過來就可以了。

三步實現:

1. 查找符合要求的文件,放到一個臨時文件夾。

2. ftp中使用mput 上傳,上傳完從臨時文件夾中刪除。

3. 在備份伺服器上做好刪除策略。不然空間會撐滿掉。

 

三點說明:

1. 如果說只保留2天的話倒簡單,在mput 之前用mdelete 把文件全部刪除掉,在上傳就可以了,因為我這裡要保留多天的記錄。 所以就只能在備份伺服器上在弄個批處理的計劃任務來刪除了。

2. mput 的時候有個問題,它會要求按下回車后在上傳, 這對自動腳本來說是非常麻煩的。 我們需要關閉這個指令。

 

ftp>prompt

切換交談式指令,使用mput/mget 時不用每個文件皆詢問yes/no

ftp> help prompt

prompt          force interactive prompting on multiple commands

ftp> prompt

Interactive mode off.

ftp> prompt

Interactive mode on.

ftp> prompt

Interactive mode off.

ftp>

      

不加任何參數就可以進行開發或關閉的設備,每執行一次,狀態就會改變。

 

3 find -mtime 參數說明

find /u01/backup/backupsets -mtime +1 -name "*" + 表示 1天前的文件

find /u01/backup/backupsets -mtime -1 -name "*" :表示1天內的文件

 

 

完整腳本:

 

Linux上傳腳本:

[xezf@localhost scripts]$ cat uploadbackup.sh

#!/bin/sh

find /u01/backup/backupsets -mtime -1 -name "*" -exec cp -f {} /u01/backup/backuptmp /;

ftp -n 192.168.88.251 << EOF

user user password

bin

lcd /u01/backup/backuptmp

prompt

mput *

bye

EOF

cd /u01/backup/backuptmp

rm -rf /u01/backup/backuptmp/*

 

uploadbackup.sh腳本添加到crontab,定時執行。

 

備份伺服器刪除腳本:

 

deletebackupfile.bat

forfiles /p E:/db_backup_history/xezf /m * /d -10 /c "cmd /c del @file"

 

將這個bat 文件添加到計劃任務,定時執行即可。我這裡保留的是10天。

 

 

       在自己的本本上測試沒有問題。 找個測試庫跑幾天看看。 沒問題在搬到生產庫上去。

       補充一句,具體情況具體對待。



[火星人 ] Linux FTP 自動上傳備份文件腳本已經有2012次圍觀

http://coctec.com/docs/linux/show-post-68637.html