rsyncのexclude optionの使い方

10.6サーバー環境で、rsyncを使って/dir1_のバックアップを /Volumes/backup_/の下に作る際に、
/dir1_/dsub2/dir2_,/dir1_/dsub3/dir3_を参加させないようにしたいのです。


調べた結果、


rsync -avzrt --progress --delete --exclude "dir2_/" --exclude "dir3_/" /dir1_ /Volumes/backup_


と考え試しましたが、/dir1_/dsub1/dir2_,/dir1_/dsub2/dir3_は除外されません。


どうしたら良いか,教えてくださると助かります。

iMac, Mac OS X (10.6.4)

投稿日 2010/08/30 20:21

返信
返信: 9

2010/08/31 03:49 ysapple への返信

実際にやって見ましたが、excludeされませんでした。残念です。

うーん、クライアント版のMacOSXではうまく行くのですが。

ディレクトリー名は日本語ですか?単なる英数字ですか?

私が試したのは、英数字のディレクトリー名です。


-n というoptionを付けると、(コピーはせずに)、実際にコピーするファイルリストが表示されます。これで見るとどうなりますか?

ここに出てくるパターンを exclude するようにすればいいのではないかと思うのですが。


PS. ディレクトリー名が日本語だとうまく行かないようです。

rsync のコマンドが8ビット文字コードを正しく扱えないように思います(文字コードが壊れてしまう)。それで、回避策として、先頭に半角英数文字の部分を付けて、

--exclude "abc-*" とかしてやると("abc-" は半角英数文字部分、" * " の部分は日本語の部分)、テストでは、うまくexcludeしました。

2010/08/31 17:26 はに への返信

はにさま


これは大変良い情報を有難うございました。おかげで,ワタシが大変間違ったことをして皆様に御迷惑をかけていたことがわかりました。


その結論の説明の前に、ご指摘の点についてお答えします。


ディレクトリー名は英数字です。


-n というoptionをつけて試しましたが、でてくるファイルのリストはexcludeで指定されたものはなく、しかもexcludeで指定されたものも一部なく、変だと思いました。


次に、”クライアント版のMacOSXではうまく行く”ということですから、素のunix command rsyncがサーバーで同じように動かないのは変だと思いました。


変が2個でてくると、これは自分がやっていることが間違いである可能性が高いと思いました。


よーく自分のやったことを考えてみました。rsync --excludeコマンドの間違った実行を何回もしていたので,これらの試行で残ったdir2_やdir3_がいすわり続けてました(--deleteがあるのでこれらは無くなると勝手に思ってましたが、この考えは間違いでした。常に受け側のdir2_やdir3_を消した後rsync --excludeを実行しなければならなかったのです)。正しいrsync --excludeをやっても、こういうことではその効果が見えなかったということになります。


ですから
rsync -avzrt --progress --delete --exclude "dir2_/" --exclude "dir3_/" /dir1_/* /Volumes/backup_


はOKでした。すみませんでした。


お気づきでしょうが、
rsync -avzrt --progress --delete --exclude "dir2_/" --exclude "dir3_/" /dir1_ /Volumes/backup_


も今ではOKです。


本当にお騒がせして申し訳ありませんでした。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

rsyncのexclude optionの使い方

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。