我正在使用 rsync(centos 上的版本 3.1.0)來執行一些備份任務。我開發了一個軟體來監視我的 rsync 進程,以使備份配置適合我的業務邏輯。
我的軟體啟動一些 rsync 進程,並解析 rsync 的輸出以發送通知。
我面臨著一些奇怪的事情。
我的目標磁碟已滿。我的軟體使用以下命令在該磁碟上啟動 rsync 備份:
rsync -irlpt --no-perms --stats /src /media/dst/
/media/dst 是安裝在 fusionblck (NTFS) 中的外部 USB3 硬碟。
/src 是一個包含 50 G 位元組的圖片、影片和一些文字檔案的資料夾。
因為該磁碟已滿,所以我希望 rsync 快速退出並返回錯誤。
但是,rsync 過程需要很長時間。 (10小時後我手動停止了它)當我停止它時,我可以讀取很多像這樣的跟踪:
rsync: mkstemp "/media/dst/.20160518-130315-underwaterposition-VI_GAPS.pos.DIksdT" failed: No space left on device (28)
對我來說,此訊息很正常,因為設備上沒有剩餘空間。
所以我的問題是:
為什麼 rsync 在偵測到目標裝置上沒有剩餘空間時不會立即停止?
有沒有辦法強制這種行為?