Rsync
無法同步到 /etc 中的目標
從 Debian 10 升級到 11 後,在 /etc 中有某個目標的 rsync 作業不再起作用。
在伺服器(目的地)方面,我有這個:
uid = root gid = root hosts allow = mysender [mymodule] # NOGO path = /etc/tmp # GO # path = /root/tmp comment = Just for testing read only = false
在客戶端(源)我輸入這個命令:
rsync -a /etc/temp/test myserver::mymodule
這使得 rsync 失敗並顯示此消息:
rsync: [generator] recv_generator: mkdir "/test" (in mymodule) failed: Read-only file system (30) *** Skipping any contents from this failed directory *** rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1333) [sender=3.2.3]
將伺服器配置為使用 /etc 之外的路徑(例如 /root/tmp)確實可以按預期工作。
根文件系統(也包含 /etc 目錄)當然不是以只讀方式掛載的,它是乾淨的。那麼為什麼 rsyncd 認為 /etc 是只讀文件系統的一部分呢?
/etc
rsync 版本 3.2.0-1 引入了一個名為“ProtectSystem”的增強功能,除其他外,它可以防止對(參見https://download.samba.org/pub/rsync/NEWS )的寫訪問。這可以通過創建/etc/systemd/system/rsync.service.d/override.conf
具有以下內容的文件來覆蓋:[Service] ProtectSystem=off
希望,在你最初的文章之後這麼久,這會有所幫助。