2013-02-06 34 views
3

當存儲同步時,客戶端的SAN存儲和文件「消失」出現問題。我們有一個自定義4D數據庫,它執行一個簡單的腳本,通過rsync將文件從一個位置同步到另一個位置。使用rsync和--log-file選項記錄時出錯

我們正在執行的腳本是:「rsync -rvuE --log-file =/tmp/rsync.log SRC DST」。問題在於rsync報告「rsync警告:某些文件在它們可以傳輸之前消失(代碼23)」。此錯誤僅在終端/ STDOUT和system.log中顯示。它不會顯示在--log文件位置。我想將它發送到rsync.log,因爲我們讀回日誌以獲得完成和錯誤,並將其報告給用戶。

現在這裏是棘手的部分,我們無法將STDOUT或STDERR重定向到日誌,因爲它鎖定了服務器。

+0

正在修改的實時數據集上的'rsync'幾乎可以保證在某些時候遇到這樣的問題。在同步數據存儲之前關閉所有可能修改數據存儲的程序,或者使用某種快照技術(仍然可能需要短暫關機/靜止)。 – twalberg

回答

0

你試過nohup嗎?哪個會捕獲stdout和stderr? 您也可以在錯誤消息的system.log文件中grep,然後將其附加到日誌文件中。

-1

如果內存不足,4D正在生成.tmp文件 - 並再次刪除它們。這發生在4D數據文件夾中。從您的同步中排除它。只需同步4D生成的備份文件即可。無論如何,同步打開的4D數據文件都會失敗......服務器始終在寫入數據文件。

彼得

0

我執行與rsync在一天內多次備份(通過自動工具)。我通過備份日誌做了grep。我的日誌顯示rsync默認情況下會將日誌文件消失到其日誌文件中。我不使用--log-file-format或更改日誌文件格式的任何其他選項。

它看起來像這樣:

2012/08/17 19:00:28 [12861] file has vanished: "foo" 

我能找到登錄其他錯誤那裏,就像不能因爲權限被傳送的文件。上面的日期是最舊的日誌文件中的實際日期,我仍然會顯示該錯誤的類型。我當時使用的rsync的版本是3.0.9,所以rsync從那時起一直在做。