不允許 Rsync 操作
我已經備份了我之前
rsync -avz
在後期安裝 Linux Mint 時使用的數據。現在,當我嘗試在 Windows 10 Ubuntu 子系統上使用相同的命令備份數據時,rsync 只會忽略我的目標文件並嘗試將所有文件從源複製到目標。我還在多個文件上收到 2 條不同的錯誤消息:
rsync: chgrp "/mnt/p/file" failed: Operation not permitted (1)
和
rsync: mkstemp "/mnt/p/file" failed: Operation not permitted (1)
我並不關心權限,我想做的就是將我的數據備份到外部硬碟驅動器。
我試圖用Google搜尋一個解決方案,但這些都沒有幫助:
sudo chown -R user:user /mnt/p
# 沒有效果
rsync -rlptgoD --chmod=ugo=rwX
# 拋出相同的錯誤並且根本不複製任何文件
rsync -avz --no-o --no-g --no-perms
# 拋出錯誤“未能設置時間”編輯:
我嘗試了另外一個提供的選項:
rsync -rtDvz
,它會拋出rsync: failed to set times on "/mnt/p/file": Operation not permitted (1)
每個文件。傳輸也需要超長的時間,因為即使無法修改,它也會嘗試修改所有文件。我還注意到一件新事情,當我執行命令
sudo chown -R user /mnt/p
並檢查文件權限時ls -l p
,它顯示所有文件權限都是root root
. 出於某種原因,我無法更改外部硬碟驅動器文件的文件權限。哦,是的,我應該告訴你我正在嘗試將數據備份到外部 USB 記憶棒,它是 Fat32 文件系統……對不起!在提問時,我並不總是意識到什麼是重要的,什麼是不重要的。
rsync
手冊頁說這-a
與-rlptgoD
. 我建議在您的 rsync 命令中進行此替換,即rsync -rlptgoDvz
,然後刪除在 NTFS 下中斷的單個選項。我希望您至少需要刪除-p
(權限)、-g
(組)、-o
(所有者),也許還需要刪除-l
(符號連結)。刪除所有這些會給你留下:rsync -rtDvz
在 WSL Ubuntu(Windows 10)中使用 rsync 與網路附加卷同步時,我一直在尋找解決這個問題的方法,我認為這個解決方案也可能適用於你的 USB 記憶棒。對我有用的是在安裝驅動器時設置使用者和組。例如:
sudo mount -t drvfs -o rw,noatime,uid=1000,gid=1000 'P:\' /mnt/p
使用該
--update/-u
參數是一個巧妙的技巧,可以通過跳過在目標上具有較新日期/時間的文件來使其工作,但是如果您想更準確地匹配文件上的日期/時間(就像我所做的那樣),那麼它是一個不太理想的解決方案。當然,您系統上 uid 和 gid 的值可能會有所不同,因此請檢查/proc/mounts
其他掛載可能已在使用的內容:cat /proc/mounts
解決日期/時間的權限後,您可以刪除
--update
並將命令縮短為:rsync -rt --progress --modify-window=1 "$SOURCE" "$DEST"
我認為這
--modify-window=1
可能仍然有用,因為在我所做的其他研究中似乎在 Windows 的某些情況下可能需要它: