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


13

現在、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設定を受け取りますか?

回答:


21

他の多くのオプションの中で、rsyncはオプションを指定して実行することで許可を変更できます。

rsync [options] --chmod=CHMOD source destination

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


--perms上記のコマンドを機能させるにはフラグが必要であることに注意してください。また、試したことはありませんが、--no-permsフラグは機能しないと思われ--chmodます。おそらくフラグは無効になります。
ローラン

6
例:rsync --chmod=ugo=rX source/ destination/
Flimm

1

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.