Windows 8になってからのrobocopyだが、深刻な問題が起きていた。自宅のUbuntu Serverには、sambaを導入して音楽ファイルのバックアップフォルダ 兼 Subsonicの音楽ディレクトリがある。それに対して、一度同期をとったはずのファイルも、更新済みとクラス分けされ、何度もコピーするのだ。
robocopy "E:\My Music\김경호" Z:\Public_Music\test *.* /S /COPY:DT /PURGE /XO /XA:S /XF *.flac *.wave *.mp4 /R:0 /FFT /FP /NS /NDL /NP /UNICODE /UNILOG:logfile.txt
これは、正直困った。NTFS同士だと、そうした問題がおこないので、まずは、ファイルのファイル時間の精度をFAT粒度(2秒)にする/FFT
をつけた。しかし、駄目。ディレクトリ情報をコピーしない/NODCOPY
を付けたり、/COPY:D
だけにしてみたり(しかし、これはログを見ると絶対DTになる)、逆に/SEC
を付けたりしたが、駄目。
アクセス日時が問題かと思ったが、robocopyではオプションによるがコピーしたことでアクセス日時は更新されない。一度全部削除して、同期を取り直してみたが、それも徒労に終わった。
で、昔のバージョンを落としてきてやったみた。すると XP010バージョンだとちゃんとスキップされる。
マイクロソフトから rktools.exeをダウンロードして、解凍、 rktools.msiファイルの展開を繰り返すと XP010が手に入る。インストールは不要、叩けば使える。1
.\XP010\robocopy.exe "E:\My Music\김경호" Z:\Public_Music\test *.* /S /COPY:DT /PURGE /XO /XA:S /XF *.flac *.wave *.mp4 /R:0 /FFT /FP /NS /NDL /NP /LOG:logfile.txt
じゃあ、文字コードをUNICODEで扱える/UNICODE
オプションが付いた XP026でやると、何としたことか、ログ出力までがUNICODEで。まさに私の描く完璧な形でバックアップが取れるようになった。
テクネットマイクロソフトからrobocopyのGUIツール・UtilitySpotlight2006_11.exe
をダウンロードして、同じく解凍2回、setup.msiファイルの展開をすると XP010が手に入る。インストールは不要、叩けば使える。2
.\XP026\robocopy.exe "E:\My Music\김경호" Z:\Public_Music\test *.* /S /COPY:DT /PURGE /XO /XA:S /XF *.flac *.wave *.mp4 /R:0 /FFT /FP /NS /NDL /NP /UNICODE /UNILOG:logfile.txt
robocopyは X026がベストということだ。日本語のサイトは、ほんとに、何故こんなに情報が少ないんだ!、と嘆きたくなるが、英語のサイトだと色々バグの報告が上がっている(robocopy bugsでググる)。Vista以前のシステムだと、セキュリティ属性が正しくコピーされなかったりするらしいので、あまり細かいオプションは付けない(期待しない)ほうが良い気がする。
もしrobocopyの文字化けや、何度も繰り返されるコピーに悩まされたら、あれこれ試す前にとっと XP026バージョンを落としてくることを薦めたい。バージョンが上がるほど、バグが増えるってのも凄いツールだな。ともあれ、めでたし、めでたしだ。
-
http://www.microsoft.com/en-us/download/details.aspx?id=17657
msi展開はrktools.msiのあるファイルまで移動して、msiexec /a rktools.msi targetdir="[展開先のフォルダ]" /qn
を実行。exeファイルの解凍は Explzh for Windows (x64) Version7.10を使った。 ↩︎ -
http://technet.microsoft.com/en-us/magazine/2006.11.utilityspotlight.aspx
msi展開はsetup.msi
のあるファイルまで移動してmsiexec /a setup.msi targetdir="[展開先のフォルダ]" /qn
↩︎