ファイルを確実かつ便利にコピー・バックアップ・ミラーリングしたいのならばRobocopyが最高

この記事のリライト・更新・追加です。

Advertisement

ミラーリングをバックアップと言っていいかわわからないが

私はバックアップをフォルダごと別のドライブにミラーリングするという方法で行っています。

ミラーリングをバックアップとしてするのは元フォルダでなにかあった時にバックアップの意味がなくなるのでどうかとは思いますが、本当に重要なデータはミラーリングではなく日付で別にバックアップとればいいという考えなので、ミラーリングです。
私が完璧にファイル管理する前提です。

Explorerでのコピーはミラーリングが出来ない上に落ちることがある

一般的にWindowsでのファイル管理はExplorerを利用すると思います。
私も普段そうです。

ですが、今回私がやりたいのはバックアップかつミラーリングです。
Explorerでのコピーはミラーリングが出来ませんし、大容量のファイルをコピーすると落ちることもあります。

非常に便利なRobocopy

コマンドプロンプトとか使う必要があるあれです。

なお、コマンドラインに抵抗がある人はFastCopyを使うと良いと思います。コピー速度はExplorerでのコピーとほぼ変わりません。

Windows初期搭載

厳密に言えばXPとかは初期搭載ではありませんが、すでにサポート切れているOSは知りません。

コマンドプロンプトでrobocopyと打てばもう使えます。変なソフトをインストールする必要なし!
逆に言えば最低限はコマンドラインの知識が必要です。まぁググって出てきたコマンドをちょこっと変えるだけで動きますが。

堅牢性が高い

コマンドプロンプトでrobocopyを実行するとわかりますが、Windowsの堅牢性の高いファイルコピーと自称するぐらい堅牢性が高いです。
自称するぐらいですから相当自信があるのでしょうね。実際私が使っていて落ちた事はありません。

batにして一括実行、定期実行、自動実行なども可能

コマンドラインを利用しているこその利便性。最高。

毎回コマンドプロンプトにコマンドを打ち込んで実行してもいいですが、それは面倒でしょう。
batファイルを作ってクリックだけで実行させることが出来ます。

batで動作させることができるということは、定期実行や自動実行もできるわけです。便利ですね。

色々なオプションを使える

まぁこれがrobocopyを使う理由のメインだと思います。

めっちゃある。すごい。便利。

特にミラーリングが便利です。無駄にデータをコピーすることも消去することもなくなるので時間短縮かつドライブの消耗も防げます。最高。

Advertisement

使い方

コマンドプロンプト上で、

robocopy "Hoge:\hoge\hoge"(コピー元) Hoge:\Hoge"(コピー先) /hoge(オプション)

のようにやるだけです。詳しい使い方はググってください。

自分が使うオプションまとめ

非常にオプションが多いので、自分が使うオプションだけまとめておこうかと思います。

/copy:dt

nasneにコピーする時に使っています。

ファイル属性をコピーするかどうかのオプションです。これを付けないとエラーが出ます。nasneだと。

/mir

私の愛してやまないミラーリングオプション。

私は基本的に/mirで同期してしまいます。

/mon:<N>

ファイルの変化を監視し、N回変化があったならば自動で再度実行してくれます。

ミラーリングと相性が良さそうですね。常時同期が出来ます。
ただしバックアップとしての効果は下がります。

/mot:<M>

ファイルの変化を監視し、変化があったらM分後に自動で再度実行してくれます。

定期バックアップに便利なような気がします。
変化がなければ実行されないわけですしね。

/rh:hhmm-hhmm

ここで指定した時間の間だけ実行されます。

上に書いたファイル変化を監視して実行系を使うのならば便利だと思います。

/xa:sh

システムファイル系を除外できます。

基本的には付けておくべきです。システムファイルをコピーしたいのならば別ですが・・・

/xf <FileName>[ …]

ここで指定したファイル名のものを除外できます。

拡張子なども指定できます。便利。

/xd <Directory>[ …]

ここで指定したフォルダを除外できます。便利。

/xx

コピー先にのみあるフォルダを無視します。

このコマンドを使うのならばミラーリングではなく追加をするようにしましょう。
ミラーリングの意味がなくなるので・・・

/max:<N>

Nバイト以上のファイルを除外します。

例えばNTFSに見せかけて内部はFAT32になっていて4GB以上のファイルをコピーするとエラーが出るドライブにコピーする場合に4GB以上のファイルを除外したいときなどに使います。まぁnasneのことなんですけどね。

nasneに使う場合は/max:4294967296です。

/xj

シンボリックリンク等を除外します。

基本的に付けてください。

/fft

タイムスタンプが2秒以内のズレならば同一ファイルとみなすオプションです。

FAT系のドライブを利用している(表面上NTFS内部FAT32も)場合はこれを付けないと痛い目を見ます。
どういう痛みかというと、同じファイルなのに違うファイルと認識してコピーし直します。無駄。

/r:<N>

ファイルのコピーに失敗したらN回再試行するオプションです。

自分で1回とか3回とか再試行するように指定しましょう。
何も記述しない時のデフォルトは100万回再試行です。一生コピー終わりません。

/w:<N>

ファイルのコピーに失敗したらN分後に再試行するオプションです。

自分で1秒とか3秒とか指定しましょう。
何も記述しない時のデフォルトは30秒です。つまりデフォルトのままでエラーが起こったら一つのファイルに3000万秒かかります。

/ns /nc /nfl /ndl

完全にログを残さないオプションです。

部分部分でログを残したいのならば調べて必要なオプションだけ外してください。

自分用コマンドメモ

基本

/ns /nc /nfl /ndl /xj /xa:sh /r:0

基本的にこれは付けます。

Cドライブ内セーブデータ系バックアップ

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /mir

基本にミラーリングを設定した形です。

CドライブからDドライブにミラーリング

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /mir /xd "hoge:\hoge"

基本にミラーリングを設定し、/xdで除外したいフォルダを指定します。

nasneにミラーリング

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /copy:dt /fft /max:4294967296 /mir /xd "hoge:\hoge"

基本にミラーリングを設定し、FAT32対策のオプションを追加し、/xdで除外したいフォルダを指定します。

Androidファイルサーバー

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /fft /mir /xd "hoge:\hoge"

基本にミラーリングを設定し、/xdで除外したいフォルダを指定します。
表面上NTFSかつ4GB以上も書き込めるのに何故か/fftが無いと無駄に書き換えてしまうファイルが結構あります。タイムスタンプ的には1秒の狂いもないように見えるのに謎ですね・・・

外付けHDD(3TB)

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /mir /xd "hoge:\hoge"

基本にミラーリングを設定し、/xdで除外したいフォルダを指定します。

MainSmartphone

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /mir /xd "hoge:\hoge"

基本にミラーリングを設定し、/xdで除外したいフォルダを指定します。

250GBHDD

/ns /nc /nfl /ndl /xj /xa:sh /r:0 /mir

基本にミラーリングを設定した形です。

リムーバブルディスクでのrobocopyはリムーバブルディスク側にbatを作って相対パスで使うと便利

私はリムーバブルディスクのファイルコピーでもrobocopyを使っています。(というか同じようにミラーリングしている)

システムやデータ用、ネットワークドライブなど常時接続しているドライブはドライブレターが変わらないので絶対パスでもいいのですが、リムーバブルディスクは簡単にドライブレターが変わってしまいます。(一気に大量のメディアを接続して一気にデータ整理をするような人の場合)
なので、リムーバブルディスク側にbatを置き、そこから相対パスでファイルコピーを行うと便利です。

なお、/xdでのフォルダ指定は相対パスで出来ないみたいなので、パスではなくフォルダ名を書き込むなどして対処してください。

Advertisement

以上です。robocopyを活用して最強のバックアップ環境を作ろう!