Linuxサーバー上のリモートファイルシステムでsshfs接続を設定しています。ローカルサーバーからftpfsファイルシステムへのRsyncを実行しています。このセットアップの性質上、sshfsファイルシステムでは何もchown
できません。
Rsyncを実行すると、すべてのファイルが転送された後、それがchownしようとします。これにより、ファイルは正常に転送されますが、chownエラーが発生します。
Rsyncで、ファイルを試さないでchownしないように指示する方法はありますか? 1000ファイルのようにrsyncを実行すると、1000 chown: permission denied (error 13)
エラーのログが記録されます。ファイルの所有権はsshfs構成自体によって決定されるため、これらのエラーが発生しても何の問題もありません。しかし、それらを取得しないのはいいことです。
あなたはおそらく次のようにrsyncを実行しています:
rsync -a dir/ remote:/dir/
-a
オプション ドキュメントによる は次と同等です:-rlptgoD
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
おそらく-o
および-g
オプション:
-o, --owner preserve owner (super-user only)
-g, --group preserve group
したがって、代わりにrsyncコマンドは次のようになります。
rsync -rlptD dir/ remote:/dir/
または @ glglgl が指摘するように:
rsync -a --no-o --no-g dir/ remote:/dir/
使用されている残りのオプションは次のとおりです。
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve modification times
-D same as --devices --specials
--devices preserve device files (super-user only)
--specials preserve special files
渡さない-o
またはそれを暗示するその他のオプション。
-a
オプションには、権限を保持する-p
オプションが含まれるため、使用しないでください。この状況では、-r
で十分です。
詳細については、man rsync
を参照してください。
rsync
が所有者を保持していない同様の問題が発生し、ファイルとディレクトリのグループがリモートサーバーから同期されました。修正するために、/etc/shadow
、/etc/group
および/etc/passwd
ファイル。
以下のrsync
コマンドを実行すると、権限、シンボリックリンク、および所有権が保持されるように機能しました。
パスワードなしのsshを使用するようにsshキーを設定しました。
rsync -avpog [email protected]:/usr/local /usr