Backuppc
BackupPC - 為什麼它使用 rsync –sender –server …?
我正在 CentOS 5.5 伺服器上試驗 BackupPC。我幾乎用預設值設置了所有東西。
我嘗試為主機的 /www 目錄設置基本備份。備份失敗並出現以下錯誤:
full backup started for directory /www Running: /usr/bin/ssh -q -x -l root target /usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /www/ Xfer PIDs are now 30395 Read EOF: Connection reset by peer Tried again: got 0 bytes Done: 0 files, 0 bytes Got fatal error during xfer (Unable to read 4 bytes) Backup aborted (Unable to read 4 bytes) Not saving this as a partial backup since it has fewer files than the prior one (got 0 and 0 files versus 0)
首先,是的,我設置了 ssh 密鑰,允許我在不需要密碼的情況下通過 ssh 連接到目標伺服器。
在排查過程中,我直接在命令行嘗試了上面的ssh命令,就掛了。查看 SSH 調試消息的結尾,我得到:
debug1: Sending subsystem: /usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /www/ Request for subsystem '/usr/bin/rsync --server --sender --numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive --ignore-times . /www/' failed on channel 0
接下來我開始查看 rsync 標誌。我不認識
--server
和--sender
。查看 rsync 手冊頁,果然,我沒有看到任何關於--server
或--sender
其中的任何內容。裡面的那些是為了什麼?查看 BackupPC 配置我有這個:
RsyncClientPath = /usr/bin/rsync RsyncClientCmd = $sshPath -q -x -l root $host $rsyncPath $argList+
對於論點,我列出了以下內容:
--numeric-ids --perms --owner --group -D --links --hard-links --times --block-size=2048 --recursive
注意沒有
--server
,--sender
或--ignore-times
。為什麼要添加這些東西?這是問題的一部分嗎?
這些
--server --sender
是在管道上執行 rsync 時使用的選項。rsync 伺服器設置在遠端端,因此它可以執行所有校驗和和增量編碼魔術,以便您僅通過線路傳輸更改的位。這可能沒有記錄在手冊頁中,因為它們是自動添加的,通常不需要知道或關心它們。選項 –server 和 –sender 由 rsync 在內部使用,並且在正常情況下不應由使用者鍵入。在某些情況下可能需要了解這些選項,例如在設置只能執行 rsync 命令的登錄時。例如,rsync 發行版的支持目錄有一個名為 rrsync(用於受限 rsync)的範例腳本,可用於受限 ssh 登錄。