歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux FTP 自動上傳備份文件腳本

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

日期:2017/2/28 16:04:05   编辑:Linux教程

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天。

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

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

Copyright © Linux教程網 All Rights Reserved