web-dev-qa-db-ja.com

rsyncを実行するときにパーミッションを強制的に設定する

現在、rsync/sshの組み合わせスクリプトを使用して、ライブサーバーからバックアップサーバーにギガバイトとギガバイトのデータをバックアップしています。これにより、毎晩cronジョブを自動化できます。

私が抱えている問題は、権限にあります。

-aモードでrsyncを実行すると、user:groupおよびfilemode(現在は54122:gamesおよび-rwx--S ---)がコピーされます。

バックアップサーバーでファイルを実行できるようにするために(雇用主がこれを必要とする理由を聞かないでください)、時間とCPUコストがかかります(大量のデータが転送されるため)。 ()およびchmod()すべてのファイル/フォルダーをwww-data:www-dataに設定し、パーミッションを755にします。

とにかくrsyncをセットアップして各ファイル/フォルダーを強制的にwww-data:www-dataおよび755に設定できますか、またはこの問題を間違った角度から見ていますか?

-a(-rlptgoDと同等)の代わりに-rltDを実行できると思いますが、新しいファイルはどうなりますか?どのような権限とowner:group設定を受け取りますか?

13
bafromca

他の多くのオプションの中で rsync はオプションで実行することでパーミッションを変更できます:

rsync [options] --chmod=CHMOD source destination

オプション--archiveとオプション--no-ownerまたは--no-permsを組み合わせて、所有者の保持を除外することもできます。許可。 CHMODの非常に微妙な設定の詳細オプションについては、 rsyncのマンページ を参照してください。

21
Takkat

コピー元のマシンで既に許可がセットアップされている場合は、-pを試してください。権限を保存します。また、grsyncを試すこともできます。オプションのいくつかをより明確にするrsyncのGUIです。また、-oは所有者を保持します。

お役に立てば幸いです。幸運を。

1
Ctuchik