rsyncコマンドでパーミッションエラーが表示される
rsyncコマンドを利用してコピーすると以下のようにエラーがでます
$ rsync -avz --delete --rsync-path="sudo rsync" 192.168.0.1:/var/www/html/ /backup/html/ receiving incremental file list rsync: failed to set times on "/backup/html/.": Operation not permitted (1)
rsync: failed to set times on “[ディレクトリ]": Operation not permitted (1) とエラーになります。
–rsync-path="sudo rsync" でsudoコマンドでrsyncしているので、パーミッション関係はそのままいきそうですが、エラーとなっています。但し、コピーはできています。
エラーの原因ですが、コピー先の/backup/html/に追加・変更するファイルやディレクトリのオーナー・グループを変更する際に変更できずにエラーとなっているようです。
rsync [-a] のオプションは、[-rlptgoD] のオプションと同じです。-rlptgoD は以下のようなオプションとなります
- -r: ディレクトリを再帰的に同期する。
- -l: シンボリックリンクをコピーする。
- -p: ファイルのパーミッションを保持する。
- -t: ファイルのタイムスタンプを保持する。
- -g: ファイルのグループを保持する。
- -o: ファイルのオーナーを保持する。
- -D: デバイスファイル、特殊ファイル、およびFIFOファイルを保持する。
今回は、オーナー・グループを変更する際にエラーとなっているので、オーナー・グループ関連の「-g, -o」を除いて、「-O」のファイルの最後の更新日時を同期するオプションを追加して、「-a」の代わりに「-rlptDO」としてrsyncすればできると思うので、以下のようにしました
$ rsync -rlptDOvz --delete --rsync-path="sudo rsync" 192.168.0.1:/var/www/html/ /backup/html/
また、ネットの検索上位でよく見かけた解決方法の「-a」のオプションを「-rlOt」の場合のオプションの場合は、以下のようなオプションの意味となります。こちらの場合は、「-p」がないので、ファイルのパーミッションを保持されません
- -r: ディレクトリを再帰的に同期する。
- -l: シンボリックリンクをコピーする。
- -p: ファイルのパーミッションを保持する。
- -O: ファイルの最後の更新日時を同期する。
- -t: ファイルのタイムスタンプを保持する。
rsync -rlOtcv --delete 192.168.0.1:/var/www/html/ /backup/html/
ディスカッション
コメント一覧
まだ、コメントがありません