トレントに使用するシードボックスアカウントを持っています。 rsync
を使用するcronジョブを設定しました シードボックスから14.04.1ubuntuサーバーにすべてのファイルをダウンロードします。以前はWindowsを使用してコンテンツをフォルダーに整理してから、サーバー上のより永続的な場所に移動したため、ダウンロードフォルダーはsamba共有です。 14.04にアップグレードする前は、12.04を使用しましたが、すべて問題なく動作しました。
問題は、シードボックスから取得したファイルが「544」というユーザーによって所有されており(これはシードボックスによって生成されたユーザー名であり、8進数ではありません)、サーバー上のユーザーが削除できないことです。ダウンロードフォルダの権限を変更した後、削除できます。また、共有時にsambaフォルダーでの読み取り/書き込みのアクセス許可をすべてのユーザーに付与しました。
だから私の質問はこれです:rsync
を作るために実行されるいくつかのエレガントなコマンドを通して可能ですか? ダウンロード時にファイルのユーザー/権限を変更しますか?または、フォルダにコピー/移動したときにすべての新しいファイルが自動的にユーザーを変更するようにフォルダを機能させることは可能ですか? chmod
を置くことができると思います sudo cronでコマンドを実行して、ファイルの所有者を変更しますが、ダウンロードするデータの量がかなり多くなることがあるため、rsync-jobに関連していつトリガーするかを知るのは困難です。すべてのファイルがダウンロードされていることを確認します。
承認された回答:
rsync
のみ -o
を使用して要求した場合、所有者を保持します —それ以外の場合、ファイルはrsync
を実行しているユーザーが所有します 他のファイルが作成されるときと同じように、コマンド。 -a
-o
を含む ただし、一般的なrsync
がたくさんあります コマンドラインにはそれが含まれています。 man rsync
これに関する一節が明示的に含まれています:
For example: if you want to use -a (--archive) but don’t want -o
(--owner), instead of converting -a into -rlptgD, you could
specify -a --no-o (or -a --no-owner).
したがって、rsync -a source dest
の代わりに rsync -a --no-o source dest
を使用できます コマンドを実行しているユーザーがファイルを所有できるようにします。
一方、ファイルの所有者を変更できるのは通常、rootである場合のみであるため、これはあまり発生しません。何らかの理由でこのジョブをrootとして実行する必要があり、ファイルをrootではなく通常のユーザーが所有するようにしたい場合は、--chown
を使用できます。 オプション:
rsync -a --chown=youruser:yourgroup ...
--usermap
もあります 一部のユーザーを維持したい場合は、より複雑なマッピングのオプション。 from:to
のコンマ区切りのリストが必要です ペア。
最後のオプションとして、明らかにrsync
を実行しているため cronジョブから、所有者/権限変更操作を&& chown ...
を使用してcronジョブに追加するだけです。 。