
我想建立一個 shell 腳本,它從來源伺服器複製備份目錄,並透過 sftp 命令將它們放入目標伺服器上的不同目錄中。另外,將檔案放入目標伺服器後,我想比較來源伺服器和目標伺服器的大小以驗證 sftp 是否完全成功。
答案1
使用指定的工具而不是sftp
執行此操作,例如rsync
:
來自來源伺服器:
rsync -av -e ssh /path/to/files target-server:/path/to/backup/
從目標伺服器:
rsync -av -e ssh source-server:/path/to/files /path/to/backup/
這樣做的好處是它只會複製已更改的文件,甚至僅複製文件中的更改。預設情況下,它會比較大小和修改時間,但您可以-c, --checksum
根據校驗和進行比較。
新增--delete
以刪除來源伺服器上已刪除的檔案。