如何使用rsync保留完整路徑?

如何使用rsync保留完整路徑?

使用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/./ba/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 金鑰新增至遠端伺服器連線而無需密碼

相關內容