rsync同出出現(xiàn) IO error encountered導致無法刪除文件的解決方法
今天在同步數(shù)據(jù)的時候,發(fā)現(xiàn)一些刪除的文件沒有刪除,趕緊查看一下發(fā)現(xiàn)IO error encountered導致無法刪除文件的問題,網上搜素了一下并測試確實可以使用,一般情況下都是權限或者可能磁盤有問題。
服務器是采用windows版的cwRsync進行同步,本來同步得好好的把 --delete 參數(shù)帶上以后就出現(xiàn)錯誤
IO error encountered — skipping file deletion
找了很久也沒找到解決方案,查了目錄權限,服務器日志里也沒看到磁盤出錯的日志信息,在網上找到了一篇臨時的解決方案。

仔細查看了一下rsync的參數(shù),發(fā)現(xiàn)有一個選項是:
--ignore-errors 即使出現(xiàn) I/O 錯誤也進行刪除
(即使出現(xiàn) I/O 錯誤也進行刪除)
于是加上了這個參數(shù),再次執(zhí)行同步,問題解決了。
但是至于為什么rsync會誤報這個錯誤,目前我還沒有找到原因,如果有哪一位知道的話,歡迎解惑。
附上rsync的常用參數(shù)選項,方便大家參考:
| 選項 | 說明 |
| -a, –archive | 歸檔模式,表示以遞歸方式傳輸文件,并保持所有文件屬性,等價于 -rlptgoD (不包括 -H) |
| -r, –recursive | 對子目錄以遞歸模式處理 |
| -l, –links | 保持符號鏈接文件 |
| -H, –hard-links | 保持硬鏈接文件 |
| -p, –perms | 保持文件權限 |
| -t, –times | 保持文件時間信息 |
| -g, –group | 保持文件屬組信息 |
| -o, –owner | 保持文件屬主信息 (super-user only) |
| -D | 保持設備文件和特殊文件 (super-user only) |
| -z, –compress | 在傳輸文件時進行壓縮處理 |
| –exclude=PATTERN | 指定排除一個不需要傳輸?shù)奈募ヅ淠J?/td> |
| –exclude-from=FILE | 從 FILE 中讀取排除規(guī)則 |
| –include=PATTERN | 指定需要傳輸?shù)奈募ヅ淠J?/td> |
| –include-from=FILE | 從 FILE 中讀取包含規(guī)則 |
| –copy-unsafe-links | 拷貝指向SRC路徑目錄樹以外的鏈接文件 |
| –safe-links | 忽略指向SRC路徑目錄樹以外的鏈接文件(默認) |
| –existing | 僅僅更新那些已經存在于接收端的文件,而不備份那些新創(chuàng)建的文件 |
| –ignore-existing | 忽略那些已經存在于接收端的文件,僅備份那些新創(chuàng)建的文件 |
| -b, –backup | 當有變化時,對目標目錄中的舊版文件進行備份 |
| –backup-dir=DIR | 與 -b 結合使用,將備份的文件存到 DIR 目錄中 |
| –link-dest=DIR | 當文件未改變時基于 DIR 創(chuàng)建硬鏈接文件 |
| –delete | 刪除那些接收端還有而發(fā)送端已經不存在的文件 |
| –delete-before | 接收者在傳輸之前進行刪除操作 (默認) |
| –delete-during | 接收者在傳輸過程中進行刪除操作 |
| –delete-after | 接收者在傳輸之后進行刪除操作 |
| –delete-excluded | 在接收方同時刪除被排除的文件 |
| -e, –rsh=COMMAND | 指定替代 rsh 的 shell 程序 |
| –ignore-errors | 即使出現(xiàn) I/O 錯誤也進行刪除 |
| –partial | 保留那些因故沒有完全傳輸?shù)奈募?,以是加快隨后的再次傳輸 |
| –progress | 在傳輸時顯示傳輸過程 |
| -P | 等價于 –partial –progress |
| –delay-updates | 將正在更新的文件先保存到一個臨時目錄(默認為 “.~tmp~”),待傳輸完畢再更新目標文件 |
| -v, –verbose | 詳細輸出模式 |
| -q, –quiet | 精簡輸出模式 |
| -h, –human-readable | 輸出文件大小使用易讀的單位(如,K,M等) |
| -n, –dry-run | 顯示哪些文件將被傳輸 |
| –list-only | 僅僅列出文件而不進行復制 |
| –rsyncpath=PROGRAM | 指定遠程服務器上的 rsync 命令所在路徑 |
| –password-file=FILE | 從 FILE 中讀取口令,以避免在終端上輸入口令,通常在 cron 中連接 rsync 服務器時使用 |
| -4, –ipv4 | 使用 IPv4 |
| -6, –ipv6 | 使用 IPv6 |
| –version | 打印版本信息 |
| –help | 顯示幫助信息 |
注意:
若使用普通用戶身份運行 rsync 命令,同步后的文件的屬主將改變?yōu)檫@個普通用戶身份。
若使用超級用戶身份運行 rsync 命令,同步后的文件的屬主將保持原來的用戶身份。
相關文章
Git發(fā)現(xiàn)git push origin master 報錯的解決方法
本篇文章主要介紹了Git發(fā)現(xiàn)git push origin master 報錯的解決方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Nodejs創(chuàng)建TCP服務器 - king0222
這篇文章主要介紹了Nodejs創(chuàng)建TCP服務器 - king0222的相關資料,需要的朋友可以參考下2015-09-09
如何從Steam社區(qū)屏蔽分析繞過方法及ASF安全部署
這篇文章主要介紹了從Steam社區(qū)屏蔽分析繞過方法及ASF安全部署,本文主要記錄在Ubuntu(Linux)服務器上的部署教程,但對于沒有用過ASF并不熟悉Nginx的萌新來說,還是建議在Windows上調試成功后再轉到云服務器上,需要的朋友可以參考下2024-05-05

