Rsync

將大樹從一台機器複製到另一台機器,保持所有權

  • January 30, 2012

我正在嘗試在機器之間複製一個大型文件夾結構。我想在複製期間保留所有權/權利,因為事後“修復”privs 是不合理的。

因此,我使用以下命令將 privs 完整的文件 tar 並將數據傳輸到目標電腦。兩台機器上都存在相同的使用者。

tar cfzp - foldertocopy | ssh me@machine "cat > /applications/incoming/foldertocopy.tar.gz"

傳輸工作正常,下一步是 su 到遠端電腦上的 root 並解壓縮文件。

問題是:沒有足夠的磁碟空間來同時儲存壓縮和未壓縮的數據

我可以使用 rsync/recursive scp,但我的使用者無權創建具有正確權限的文件,並且 root 無法遠端登錄。

我有哪些選擇?源電腦是 RHEL4,目標電腦是 RHEL5。

以 root 身份設置命名管道:

# mkfifo /tmp/fifo
# chmod o+w /tmp/fifo

然後,將您的數據傳輸為me

$ tar cfzp - foldertocopy | ssh me@machine "cat > /tmp/fifo"

但讀為root

# tar -xfzp /tmp/fifo

該問題的一種解決方案是讓 ssh 直接執行 untar:

tar cfzp - foldertocopy | ssh me@machine "cd rightplace; tar xzf -"

引用自:https://unix.stackexchange.com/questions/30377