在無法使用rsync的機器下,利用ftp 做rsync是有點麻煩的,不過有一套lftp 軟體可以做到兩台機器的目錄備份
就是lftp,,但lftp無法做出雙向同步的動作,他只有單向執行同步
安裝
用yum 就可以裝了
yum -y install lftp
環境設定
假設今天有兩台主機
主機A 192.168.0.100
主機B 192.168.0.101
環境上 A主機是遠端 B主機是你操作端
A主機上要有FTP服務,並要有帳號
假設帳號是dev
他的home目錄,對lftp來說就是遠端的根目錄
這個是對應的目錄位置,在寫路徑的時候,不要忘記這個原則
也就在B主機上寫script的時候 遠端目錄 要寫成 /dir 而非 /home/dev/dir
/home/dev/dir1 => /dir1
script
lftp使用上 可以使用一個script去執行所有的動作
例如 lftp -f /tmp/lftpscript
這樣就執行了 lftpscript的內容
範例
下載
在A主機上,要目錄為 html 的資料 到 本機資料夾的位置
寫一個檔案叫 run_down的script,放在tmp資料夾中的run資料夾內
mirro 是同步的指令 -e是刪除 -c續傳 相關指令請man一下
檔案內容
open ftp://dev:password@192.168.0.100
mirro -ec html /var/www/html/dev/html
這樣子 在/home/dev/html的資料夾內容就會完整的備份到 本機的/var/www/html 內
包含了所有的目錄結構與檔案內容
寫好後儲存檔名為download後執行命令
lftp -f /tmp/run/download
他就會執行
上傳
open ftp://dev:password@192.168.0.100
mirro -ecR /var/www/html/dev/html
這樣就不用打遠端的目錄位置,他是以ftp的根目錄當他上傳的預設位置,如果要切換 就在lcd裡面執行
例如這樣
open ftp://dev:password@192.168.0.100
lcd test1
mirro -ecR /var/www/html/dev/html
那這樣就會傳到
/home/dev/test1
變成
/home/dev/test1/html 了
這點是要注意的