Linux ftp 自動上傳備份檔案指令碼

roominess發表於2012-05-08

三步實現:

1查詢符合要求的檔案,放到一個臨時資料夾。

2ftp中使用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,定時執行。 關於crontab,參考我的Blog

     

 

備份伺服器刪除指令碼:

 

deletebackupfile.bat

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

 

將這個bat 檔案新增到計劃任務,定時執行即可。我這裡保留的是10天。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15880878/viewspace-723026/,如需轉載,請註明出處,否則將追究法律責任。

相關文章