rsync を使用して 2 つの外付けハードディスクを同期すると、権限エラーが引き続き表示されます。

rsync を使用して 2 つの外付けハードディスクを同期すると、権限エラーが引き続き表示されます。

オートメーションを使用してオフィスにいるユーザー用のrsyncスクリプトを設定しようとすると、エラーが発生し続けます。私は最も単純なコード行から始めました。

 rsync -a /Volumes/DiskA/ /Volumes/DiskB

しかし、引き続き次のエラーが発生します。

rsync: opendir "/Volumes/DiskA/.Trashes" failed: Permission denied (13)
rsync error: some files could not be transferred (code 23) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-47/rsync/main.c(992) [sender=2.6.9]

インターネット全体を検索し、さまざまな方法/コードを試しましたが、それでもエラーが発生します。また、新規インストールを試み、ハードドライブをフォーマットしました。この問題を解決したら、別のコマンドを追加する予定です。この問題の解決にご協力いただきありがとうございます。

答え1

これには2つの問題がある可能性があります。

  1. あなたのスクリプトには、diskAごみ箱内のファイルにアクセスするための十分な権限(権限)がありません。これはOSXのように見えるため、rootアクセス権を取得する方法sudosu他のUNIX準拠プラットフォームで使用された方法についてアドバイスすることはできません。

  2. とにかく「ごみ箱」をコピーしたくないでしょう。これを行うには、オプションを追加してください--exclude '/.Trashes'rsync

答え2

私の場合は、特定のファイルのACLルールでした。getfacl /folder/file拡張ルールを表示するには、実行してください(設定されている場合)。

私の場合、一部のファイルには拡張権限ルールがあり、読み取れませんrsyncでした。

答え3

私も同じ問題を抱えており、rsyncオプションをより慎重に選択する必要があると思います。このオプションは-a同じであるため、-rlptgoDあるrsyncディスクから別のディスクにファイルの権限、所有者、およびグループを保存しようとします。たとえば、バックアップの場合は、次のオプションを使用します。

rsync -urtDvx --delete /volume/diskA/ /volume/diskB/

それは私にとってうまくいきます。これらのオプションの意味は次のとおりです。

 -u, --update                skip files that are newer on the receiver
 -r, --recursive             recurse into directories
 -t, --times                 preserve modification times
 -D                          preserve special and device files (super-user only)
 -v, --verbose               increase verbosity
 -x, --one-file-system       don't cross filesystem boundaries
 --delete                    delete extraneous files from dest dirs

rsyncどのオプションがあなたに最も適しているかを知るには、マニュアルを確認することをお勧めします。

関連情報