Ubuntu

rsync mkstemp 使用 Box.com 雲的 davfs 安裝失敗參數無效 (22)

  • January 30, 2022

我根據這些說明使用 davfs 安裝了 Box.com 雲儲存。我在 /home/me/Cloud/Box 下安裝了我的 Box.com 帳戶

我可以通過 Dolphin 和終端訪問掛載的文件系統。它有點慢,但我可以列出(ls)並導航整個目錄結構而沒有錯誤。

接下來我嘗試按如下方式執行 rsync:

rsync -auvz  --max-size=250M --exclude '.*' /home/me/Music/ /home/me/Cloud/Box/Music

我也試過:

rsync -auv  /home/me/Music/A /home/me/Cloud/Box/Music

以及 rsync 命令的其他變體。該命令通過 davfs 掛載將我的音樂從本地文件系統 (/home/me/Music/) 複製到 Box 雲 (/home/me/Cloud/Box/Music)。

我總是收到很多這種形式的錯誤:

rsync: mkstemp <filename> failed: Invalid argument (22)

一個具體的例子是:

rsync: mkstemp "/home/me/Cloud/Box/Music/VariousArtists/.01_Track_1.mp3.YVmFI9" failed: Invalid argument (22)

這一切都發生在 Kubuntu 12.04 LTS 64 位伺服器級硬體上,具有快速/可靠的電纜調製解調器連接(12 Mb/s 上傳速度)。

出現此問題的原因是rsync使用 box.com 和/或 davfs 無法理解的文件名製作臨時文件。因此,該文件.01_Track_1.mp3.YVmFI9在您的系統上不存在,而是. rsync我的一些猜測:如果您沒有在所有文件上都得到錯誤,那麼您可能只會在已經上傳(和更改)的文件上得到錯誤。

過去不可能關閉此臨時文件生成,但現在您可能會通過添加選項來獲得更多運氣--inplace。但是,如果您不與 rsync-daemon(如果您使用 davfs 則不是)交談,使用 rsync 的優勢對我來說尚不清楚。

因此,作為替代方案,您可以嘗試,它僅在源比目標更新cp --update時復製文件。新文件和任何在 ID3 標記中發生更改的文件都將被複製,其他文件則不會。

或者,如果您需要更多控制使用find

cd /home/me/Music/
find * -size -250M -print0 | cpio -pdmv0 /home/me/Cloud/Box/Music

這保留了層次結構,cpio並且不會覆蓋不舊的現有文件。

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