rsyncは-aを使用してもディレクトリの所有権を保持しません


12

このrsync呼び出しを使用して、ホームディレクトリをバックアップします。

rsync -aARrx --info= --force --delete --info=progress2 -F "$USER_HOME" "$BACKUP_MNTPOINT"

rsyncのマニュアルページでは、-aは-gおよび-o(他のスイッチの中でも)を意味し、所有権を保持する必要があると述べています。ただし、ディレクトリがに存在しない場合$BACKUP_MNTPOINT/$USER_HOME、正しいディレクトリではなくroot:root所有権で作成されることに気付きました。(これは、直下のディレクトリでのみ発生し$BACKUP_MNTPOINT/$USER_HOMEます)。何故ですか?

$BACKUP_MNTPOINTローカルにマウントされたドライブです。$BACKUP_MNTPOINT/$USER_HOME正しい所有権と許可があります。どちら$USER_HOME$BACKUP_MNTPOINTスラッシュで終了。

ソースとターゲットの両方のファイルシステムはXFSであり、実行mkdir $BACKUP_MNTPOINT/$USER_HOMEすると、予想される所有権を持つディレクトリが作成されます。


1
どのファイルシステムで$BACKUP_MNTPOINTあり、どのオプションでマウントされていますか?これは、親($BACKUP_MNTPOINT/$USER_HOME)ディレクトリまたは作成されたすべてのディレクトリに対してのみ発生しますか?やる$BACKUP_MNTPOINT$USER_HOMEで終わりますか/
テルドン

両方/homeとバックアップドライブにXFSを使用します。これまでのところ、親ディレクトリでのみ発生したと思います。どちら$BACKUP_MNTPOINT$USER_HOMEスラッシュで終了。編集:私は今、確認することができ、それが唯一の右下のディレクトリに起こる$BACKUP_MNTPOINT/$USER_HOME
kralyk

だから$BACKUP_MNTPOINT/$USER_HOME、適切なアクセス許可がありますが、サブディレクトリはそうではありませんか?してください編集あなたの質問をし、これらの詳細を追加します。また、mkdir $BACKUP_MNTPOINT/$USER_HOME/foo手動で行う場合は、ユーザーが所有するディレクトリを作成するかどうかを明確にします。
テルドン

はい、mkdir $BACKUP_MNTPOINT/$USER_HOME/fooユーザーの所有権でディレクトリを作成します。
クラリク14年

strace(疑似回答で指定されているように)から関連情報を見ることができれば本当に素晴らしいでしょう。
パベルシメルダ14

回答:


18

rsyncシステムをサーバーにバックアップする際に同様の問題が発生しました。私が使用した:

rsync -aAXSHPr \
-e ssh \
--rsync-path="sudo /usr/bin/rsync/" \
--numeric-ids \
--delete \
--progress \
--exclude-from="/path/to/file/that/lists/excluded/folders.txt" \
--include-from="/path/to/file/that/lists/included/folders.txt" \
/ USER@SERVER:/path/to/folder/where/backup/should/go/

解決策は、実際には問題がないということです。rsync誤ったアクセス許可が設定されたフォルダーを作成するのを確認したら、プロセスを中止したと思われます。重要なのはrsync、親フォルダーのすべてのサブフォルダーとファイルの同期が完了したら、親フォルダーの権限のみを設定することです。


1
うわー、それは私にはまったく起こらなかった、うまく見つけた、ありがとう。
クラリク

0

おそらく、strace / trussを介してrsyncを実行し、chown()syscallからエラーが返されるかどうかを確認し、chown()のパスとUID / GIDが正しいことを確認してください。


良いコメントですが、答えではありません。
パベルシメルダ14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.