オートメーションを使用してオフィスにいるユーザー用の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つの問題がある可能性があります。
あなたのスクリプトには、diskAごみ箱内のファイルにアクセスするための十分な権限(権限)がありません。これはOSXのように見えるため、rootアクセス権を取得する方法
sudo
やsu
他のUNIX準拠プラットフォームで使用された方法についてアドバイスすることはできません。とにかく「ごみ箱」をコピーしたくないでしょう。これを行うには、オプションを追加してください
--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
どのオプションがあなたに最も適しているかを知るには、マニュアルを確認することをお勧めします。