關於 rsync 的兩個問題 - 失敗 mid xfer 和日誌記錄

關於 rsync 的兩個問題 - 失敗 mid xfer 和日誌記錄

我正在努力實現日誌備份解決方案,該解決方案將依賴使用 rsync 將資料從本機伺服器移至遠端日誌記錄伺服器。我們有兩個擔憂 - 首先是到目前為止我還沒有實現任何需要完成的日誌記錄。 rsync 的手冊頁很大,我們沒有使用 rsync 伺服器,只是使用 oncall rsync 將資料從客戶端(客戶端啟動)推送到儲存伺服器。

任何人都想知道,是否有任何記錄傳輸過程中失敗的選項,或類似的東西?

此外,由於我們實作方式的性質,shell 腳本首先嘗試 ping 本機備份伺服器。如果 ping 成功,則會上傳檔案。但是,如果 ping 不成功,它將上傳到地理冗餘備份伺服器。如果主伺服器在 rsync 中途當機,就會留下漏洞。有沒有辦法在傳輸過程中發生故障時指定備份目的地?

答案1

我不認為 rsync 有任何內建的故障轉移選項或特殊的錯誤日誌記錄(除了列印到 stderr 的內容)。它確實有--log-file=--log-file-format=選項,但這些選項集中於記錄更新的文件,而不是連接失敗。我建議在客戶端檢查 rsync 的退出狀態,以及是否是指示連線問題的錯誤號碼(看起來 10、12 和 30 是相關的,但測試會給你一個更好的主意)掃描另一個可存取的伺服器並重試。您還可以捕獲 rsync 的 stderr 輸出,並直接記錄該輸出或掃描它以查找已識別的錯誤並將其匯總在日誌中。

如果您也想在伺服器端進行日誌記錄,我會編寫一個正常執行 rsync (rsync "$@"以傳遞參數)的包裝器腳本,然後檢查其退出狀態並記錄它。確保您的腳本本身不會輸出任何內容(到 stdout 或 stderr),否則可能會使遠端 rsync 用戶端感到困惑。

相關內容