ターゲットに対するrsyncおよび書き込み権限

ターゲットに対するrsyncおよび書き込み権限

rsyncファイルがあるリモートの場所にファイルを転送する理由は何ですか?読み取り/実行宛先ディレクトリに対する権限がありますが、権限はありません。書く実際の宛先ファイルを生成するための権限。一般ユーザーにファイルをコピーしようとしたとき/rsyncファイル全体を転送し(大容量ファイルの場合はかなり時間がかかる)、最終的に失敗します。

rsync: mkstemp "/.myTargetFile" failed: Permission denied (13)

したがって、一時ファイルを作成しようとしたとき(指す- ファイル)転送中。書き込み権限なしでファイル全体をコピーしようとするのではなく、それに気付かず、早く中断するのはなぜですか?

一時ファイルを生成できない場合は、ファイルをどこにコピーしますか? rsyncプロセスまたはそのファイルのメモリ増分は表示されません。/tmp。宛先のデータは単に破棄されるように見えますが、転送は続行されます。

答え1

書き込み権限なしでディレクトリにコピーする必要がある場合は、--inplaceコマンドオプションに追加してください。一時コピーを作成せず、更新プロセス中にファイルを一貫性のない状態に保つため、コストが安い場合もあります。

独自の権限を事前に確認しない理由に関する質問に関しては、拡張アクセスACLなどの追加の詳細情報がない可能性があるため、rsyncは標準の3 * 3 + 3スキームを信頼しません。 OTOHこの意図的な方針は結果に実際の影響を与えません。とにかくファイルは更新されません。

答え2

これは現在rsyncプロトコルの欠点のようです。バグトラッカー。 rsync プロトコルは、宛先に対する書き込み権限があるかどうかを事前に確認することはできません。代わりに、後で成功または失敗を送信して確認します。

答え3

/Rsyncはターゲットファイルと同じフォルダに一時ファイルを作成するため、この場合はrootとして起動しなかったため、一部のファイルをコピーする必要があり、通常はroot/としてのみ書き込むことができ、失敗します。

どのファイルがコピーされているかを確認するには、パラメータを渡します。-v

関連情報