Rsync
將大樹從一台機器複製到另一台機器,保持所有權
我正在嘗試在機器之間複製一個大型文件夾結構。我想在複製期間保留所有權/權利,因為事後“修復”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 -"