ファイルのバックアップ : ららら雑記帳
この記事に書かれているように、robocopyという超便利なコマンドを利用してファイル手動バックアップをしているわけですが、nasneにバックアップする場合には非常に時間がかかる問題がありました。
単純に速度が遅いからだと思っていましたが、大きな問題点がありました。
nasneのすゝめ : ららら雑記帳

nasneをネットワークドライブとして接続するとNTFSとして認識されますが、内部ではFAT32で管理されており、4GB以上のファイルをコピーするとエラーが出ます。しかし、そのエラーは4GBまでコピーされた後に出るためその分時間がかかるという罠があります。この罠は/max:4294967296とオプションを追加し、4GB以上のファイルを除外することで回避できます。

最大の罠はこのオプションがきちんと動いているか確認しているときに気づきました。
なぜかbatを実行するたびに同じはずのファイルを上書きしているのです。つまり450GBほどあるファイルをすべて毎回書き換えていたわけです。(多分)

最悪ですね。なおNTFSのドライブの場合は全く問題なく実行されます。

この問題を解決するためには/fftを使います。ファイルのタイムスタンプの2秒の誤差をスルーするオプションです。

調べたところ、NTFSのドライブからFAT32のドライブにコピーする場合などはタイムスタンプに2秒の誤差が発生する可能性があるみたいです。
つまり、NTFS側のファイルとFAT32側のファイルのタイムスタンプにズレがあるため更新されたファイルだと認識されて上書きされていたわけですね。それに気づかずバックアップを繰り返した結果HDDに負担をかけていたわけです・・・

いや若干おかしいなとは思っていたんですよ?本来はミラーリングすべてスキップされて速攻終わるはずの部分もなかなか終わらなかったのですから。まさかわざわざ書き換えているとは思いもしませんでしたが・・・

一応もう一つ、/copy:dtも追加しておきましょう。このオプションを追加することで、属性情報のコピーを回避できます。nasneはUnixを使っているみたいで、そこらへんで属性情報コピーエラーがでる問題点があるみたいです。詳しくは各自調べてください。

まとめ、nasneでrobocopyしたいならば、
/fft /max:4294967296 /copy:dt
は最低限追加しましょう。

Advertisement