使用rsync備份時,如何保留完整的目錄結構?
例如,遠端伺服器是土星,我想備份土星的/home/udi/檔案/圖片到名為的本地目錄備份。
我想要(本地)備份/home/udi/檔案/圖片而不是備份/圖片。
答案1
使用-R
或--relative
選項保留完整路徑。
答案2
另一個常見的相關用例是使用 保留目錄樹的選定部分/./
,例如,如果您想要:
/home/udi/files/pictures
要去:
backup/files/pictures
你可以寫:
rsync --relative /home/udi/./files/pictures backup
在將該路徑傳遞給系統呼叫之前,魔術/./
會被專門解析,並告訴它從哪裡開始建立目錄。一般來說,rsync
這對於其他 POSIX 實用程式沒有任何意義,例如路徑與POSIX 中的路徑相同。/./
a/./b
a/b
答案3
使用 Cygwin Windows rsync,並假設遠端 rsync 指向根目錄,我會這樣做:
rsync -vtrz --delete server::rsyncid/home/udi/files/pictures /cygdrive/d/backup/home/udi/files
這會將遠端圖片目錄的內容放在 /backup/home/udi/files/pictures 中。想必unix下的文法是類似的。
JR
答案4
您可以根據要啟動 rsync 的時間在 cron 中進行更改
rsync -avz -e ssh ruser@rserver:/home/udi/files/pictures/* /backup/pictures/
您也可以將 ssh 金鑰新增至遠端伺服器連線而無需密碼