環境:
* Host A: Windows 2000 檔案伺服器
* Host B: Linux with FTP daemon
目的:
* 以 RAR 製作壓縮備份檔
* FTP 傳輸壓縮備份檔至另一台電腦
* Host A 只保留最近一個壓縮檔, Host B 保留最近三個壓縮檔 (以檔名區分)
From:http://cha.homeip.net/blog/archives/2005/10/windows_2000_xp.html
Host A (Windows 2000):
檔案名稱 | 說明 |
action.bat | 主批次檔 |
public.rar | 完成備份的壓縮檔 |
public.ssh | Linux 批次命令檔 |
public.ftp | FTP 批次命令檔 |
rar.exe | RAR 壓縮軟體 |
putty.exe | SSH 連結軟體 |
action.bat
@echooff setcurrentdate=%DATE:~-10% setcurrentdate=%currentdate:/=% rarf-as-m5public.rarc:public renpublic.rarpublic_%currentdate%.rar putty-ssh<linux_ip>-l<account>-pw<password>-mpublic.ssh ftp-v-n-i-s:public.ftp renpublic_%currentdate%.rarpublic.rar
public.ssh
cd/backup;./del_3rd_bkfile.sh
public.ftp
open<linux_ip> user <account> <password> bin mputpublic_*.rar quit
指令 | 說明 | 輸出範例 |
ECHO %DATE% | 取得目前日期字串 | 星期二 2005/10/25 |
ECHO %DATE:~-10% | 取出變數右邊10個字元 | 2005/10/25 |
ECHO %DATE:/=% | 將變數里的 "/" 字元全部變成空字串 | 星期二 20051025 |
RAR f -as -m5 | f = 更新壓縮檔裡的檔案 -as = 同步壓縮檔, 使壓縮檔內容與目的路徑內容一致 -m5 = 最大壓縮比 |
|
ftp -v -n -i -s:<batchfile> | -v = 不顯示 FTP Server 回應的訊息 -n = 連線後不提示登入訊息 -i = 執行 mget / mput 多檔傳輸指令時不使用互動模式 -s = 引用批次指令檔 |
P.S.
1.需先建立 public.rar (rar 參數: a) 才能以 f 參數更新壓縮檔內容
2.Windows XP 日期格式為:「2005/10/25 星期二」, 日期取得須改為: %DATE=:~0,10% (取出左邊10個字元)
Host B (Linux):
/backup/del_3rd_bkfile.sh
#!/bin/bash filecount=`ls -l public_*.rar | wc -l` if [ $filecount -eq 3 ]; then filename=`ls public_*.rar | head -n 1` rm -f $filename fi
邏輯說明:如果備份檔案數量達到 3 個,則刪除最舊的那個備份檔案。
Please follow and like us:
Sehr wertvolle Informationen! Empfehlen!