Rsync

不允許 Rsync 操作

  • October 28, 2020

我已經備份了我之前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 的某些情況下可能需要它:

https://pserver.samba.org/rsync/daylight-savings.html

引用自:https://unix.stackexchange.com/questions/558235