rsync mkstempがBox.com cloud davfsが無効なパラメータをマウントできませんでした。 (22)

rsync mkstempがBox.com cloud davfsが無効なパラメータをマウントできませんでした。 (22)

以下のように、davfsを使用してBox.comクラウドストレージをインストールしました。このガイドライン。 Box.comアカウントを/home/me/Cloud/Boxにインストールしました。

マウントされたファイルシステムは、端末だけでなく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)

これは、高速で信頼性の高いケーブルモデム接続(12 Mb / sのアップロード速度)を備えたKubuntu 12.04 LTS 64ビットサーバークラスのハードウェアで発生します。

ベストアンサー1

1.ファイル名特殊文字の問題

ファイル名に特殊文字がありますか?.たとえば、これらのファイルを作成するファイルシステムによっては、ファイルの前にドット()を付けることができない場合があります。

2. rsync修正時間とwebdav2関連の問題

私はこれに会ったブログ投稿説明されている問題は、rsyncwebdav2インストールのbox.comディレクトリにファイル変更時間を作成/追跡する際に問題があることです。

マウントされたファイルシステムでは、問題は次のように表示されます。

david@sydney:~/Pictures$ ls -l /mnt/box/bwca/08/09/IMG_3084.CR2
-rw-r--r-- 1 david david 12564061 Aug 14 16:08 /mnt/box/bwca/08/09/IMG_3084.CR2
david@sydney:~/Pictures$ ls -l 2012/08/09/IMG_3084.CR2
-rw-rw-r-- 1 david david 12564061 Aug  9 13:00 2012/08/09/IMG_3084.CR2

同じ文書に解決策が記載されています。

$ rsync -avhP --size-only --bwlimit=64 2012/08 /mnt/box/bwca/

これは使いやすい方法rsyncですが、今ではチェックサムではなくサイズに基づいてファイルを比較します。

3. davfs2(WebDAV)に関する問題

私は次のタイトルでこれを見つけました:davfs2を介してrsync?SourceforgeのWebDAV(davfs)フォーラムにあります。誰かがWebDAVを使用してオンラインストレージプロバイダをマウントし、WebDAVを介してマウントされたストレージでrsyncを実行したいのと同じような状況について尋ねました。これはその一つです。WebDAV開発者(Werner Baumann)はこのトピックについて話します。

Wernerの答えから抜粋

  • davfs2は完全なファイルのみをアップロードします。 rsyncが通常行う増分操作を実行できないため、rsyncは非常に効率的です。

  • davfs2 はディスクのローカルキャッシュを使用します。これにより反応性が向上し、アプリケーションが利点を享受できます。ただし、ローカルディスク容量が必要です。 rsyncがローカルキャッシュを使用してほとんどの操作を実行できるように、大きなキャッシュサイズを許可する必要があり、davfs2はrsyncの完了中にバックグラウンドでほとんどのファイルをアップロードします。

Wernerは引き続き次のことを提案しました。

この場合、欠点になる可能性があります。 rsyncがリモートホストからファイルを読み取るときにそのファイルがまだ存在しない場合は、まずdavfs2を介してローカルキャッシュに転送する必要があります。これにより、プロセスが不必要に遅くなる可能性があります。あなたの場合、rsyncは複雑なコピープログラムとしてのみ使用されるため、代わりにcpを使用することをお勧めします。 cpには、davfs2ファイルシステム(=smartdrive)のファイルよりも最新のファイルのみをコピーするオプション(-u)があり、ファイルを読み取る必要はなく、ファイルメタデータ(mtimeなど)のみが必要です。

"cp -pruディレクトリ/to/backup dav/"などのコマンドがこれを実行できます。ファイルをダウンロードしないでください(rsyncのようにダウンロードすることはできますがわかりません)(cpとrsyncのマニュアルを確認してください)。

オプション?

したがって、@Anthonが提案したように、そのcp -u方法を使用してファイルをコピーできます。この方法は比較要素としてファイルサイズのみを使用するため、完全に信頼できません。

ファイルを比較するときに修正時間だけを見ることは使用しないでくださいcp -pruWernerはこの記事でその理由を説明しています。:

モードタイミング問題の抜粋

davfs2ファイルシステムをアンマウントしてから後で再マウントすると、サーバーの時間情報によってファイルの時間が変わる可能性があります。 cp -puやrsyncなどのツールは、この時間に依存してどのファイルが変更されたかを判断できません。

したがって、修正時間に関連するさまざまな問題を考慮すると、純粋なチェックサムアプローチがより適切に見えます。

$ rsync -avvz --omit-dir-times --checksum --human-readable --progress <local dir> <remote dir>

おすすめ記事