rsyncに読み取り専用アーカイブファイルを強制的に上書きさせる方法は?

rsyncに読み取り専用アーカイブファイルを強制的に上書きさせる方法は?

rsync一部のソースコードをコピーしようとしました。コピーされたコードは、コードの編集中に間違いがあるため、ターゲットの場所で変更しないでください。そのため、--chmod=u-wコピーした後にのみ読み取れるようにフラグを設定しました。

 rsync --delete -a --chmod=u-w

最初のものはうまくいくということです。ただし、2番目からターゲットはrsync読み取り専用であるため、コピーはできません。

rsync: delete_file: unlink "/path/file1" failed: Permission denied (13)
rsync: delete_file: unlink "/path/file2" failed: Permission denied (13)
rsync error: some files could not be transferred (code 23) at /SourceCache/rsync/rsync-42/rsync/main.c(992) [sender=2.6.9]

rsync読み取り専用でも書き込み可能でも、すべてのファイルを強制的に上書きする機能があると思います。

どうすればいいですか?

ベストアンサー1

コピーしたコードは目的地で変更しないでください。

エラー:コピーされたファイルは、次にrsyncが実行されたときにターゲットで修正する必要があります。 Unix 権限は、専用ユーザーとして rsync ジョブを実行しない限り、「rsync でのみ変更可能」を表現することはできません。

Rsyncは、そのファイルを含むディレクトリが読み取り専用であるため、そのファイルを削除できません。これを防ぐには、通常のファイルにのみ適用するFプレフィックスを追加してください。--chmod

rsync --delete -a --chmod=Fa-w

ファイル権限を変更しないと、より良いサービスを受けることができます。ファイルへの読み取り専用アクセスを提供する必要がある場合は、rsyncジョブを専用ユーザーとして実行し、他のユーザーにディレクトリツリーへの読み取り専用アクセスを許可します(役に立つ場合があります--chmod=go-w)。または、読み取り専用ビューにディレクトリツリーを公開します。ファイルシステムバインディング(望むよりこの回答さまざまなシナリオの使用例)。

おすすめ記事