改めて、コマンドプロンプトのrobocopyコマンドでバックアップを行う。

投稿日:

以前、会社では、バックアップ用のソフトを使っていたことがあります。
それも、社内ではなく、お客様用にw

まぁ、それ自体は良いんですが、割とケチ?な会社だったので、使っているのはフリーソフト
確か、商用利用もOKだったはずなので、そういう意味では問題なかったと思うんです。
が、重要なはずのバックアップをフリーソフトに委ねるってのも怖い話なんですよねー。
大体、責任は負いませんよ?って利用許諾とかにかいてあります。

フリーソフトを使って、バックアップに問題があった時に、誰が責任を取るんでしょうね?
だって、フリーソフトの作者に、会社の損害(あったとして)の責任を追及するとか無理な話ですよ。
そういう時のために、お金を払うサポートがあるんだしね。

ということで、フリーソフトだと、開発終了したり、最新OSへの対応がされなかったりすることがあります。
なるべくお金はかけたくない、けど、何かあった時にお客さんに説明できる内容と、責任の所在を会社にしたくないっていう時は多々あると思います。

そんな時のコマンドプロンプト

robocopyというコマンドでバックアップもお手軽に。
Windows7以降なら普通に使えるし、しかも、お客さんへの説明も「OS機能のバグですね・・・」とか言っておけば角が立たないっていうオマケつき。

robocopyって何?

コマンド 内容
C:\A コピー元 Aフォルダの内容をコピーします
D:\B コピー先 Bフォルダにコピー元の内容をコピーします
/R:5 オプション 失敗した時の繰り返し回数(規定は1,000,000)
/W:5 オプション 再試行までの待機時間(規定は30秒)
/MIR オプション ディレクトリのミラー化

こんな感じです。
コピー元コピー先は間違えると、大変なことになるので、テスト用のフォルダを作るなどして、必ず実行前にテストは行ってください
極端な例ですが、コピー先とコピー元を間違えて、コピー元が空フォルダだった場合、本来コピーしたいフォルダの中身が空になります。

次に繰り返し回数の「/R」

これは設定必須です。
エクスプローラ上でコピーとかする時にあるんですが、ファイルが壊れていたりして途中で終了
してしまうことありませんか?
そういった場合や、ファイルが使用中でコピーできない時とかに繰り返しコピーを行う回数です。
規定回数が1,000,000回なので、次に記載する「/W」オプションの規定値30秒と組み合わせると、1個コピーできないファイルがあるだけで、夜のうちにコピーが終わらなくなりますw
5回も試行すれば十分です。

それ以上やっても、駄目なファイルは駄目なので。

待機時間の「/W」

先に書いた「/R」オプションの次の試行までの待機時間です。
好みの問題ですが、5秒程度で問題ないです。

試行回数と合せて、10秒以上コピーできないようなファイルは、コピーできない可能性が高いので。

ミラーリングの「/MIR」

バックアップとしてなら、このオプションでOKです。
同じファイルは上書きしないので、差分バックアップとして使えます。
コピー元で削除したものは、コピー先からも削除されるので、トラブル時のバックアップの戻しとしては有効です。

他にも、ファイルの移動にしたいなら「/MOV」、フォルダごと移動するなら「/MOVE」。
ファイルを消さずにコピーだけしたいなら、「/S /E」。

他にもオプションで細かく設定出来ますが、オプションとしてはこれくらいが使えれば、個人のバックアップとか部署レベルのバックアップなら困らないです。

タスクに登録して自動化

出来上がったコマンドは、「backup.bat」などとして保存。
ショートカットをデスクトップに保存するなり、スタートアップに登録するなり。
タスクに登録すれば、定期的に実行できます。

これ以上の機能が必要なら、システム管理者とかにお願いしましょう。

 







-開発メモ

関連記事

devenvを使って、プロジェクトをコマンドラインからビルドする方法[VisualStudio]

今日も今日とて休日出勤\(^o^)/   現在、C#をメイン言語として使用しています。 で、当然というか、開発の区切りだったり、テストするためにビルドというものをやります。 このビルド、プロ …

[VMWare]仮想マシンの容量を最適化して圧縮する

Vmwareを使っているわけですが、長い間使っているとどうしてもゴミというか仮想マシンのフォルダ自体が肥大化してきます。 かといって、フォルダ内のファイルを適当に削除する訳にもいかないんですよねー。 …

TortiseSVNなんだけど、自分が原因で「already locked」が出てしまった時の対処法。自分がロックを取ってて、ロックが取れずコミットが出来ない事態に遭遇した・・・

SVNを使っていると、たまにありますね。 ロックが既に誰かに取得されていて、コミットしようとした時に、唖然とするやつ。 ただ、今回は状況が違いました。 いつもなら、「ロック取ってるやつ誰だよ~」って感 …

DLLのプロパティのブロック解除をして、ダウンロードしたプログラムを起動出来るようにする。ダウンロードしたプログラムが実行できない時の対処法。

よくありますよね・・・ 予期せぬエラーってなんだよ(`・∀・´) 特にお客さんの目の前で「デンッ!!」っていうエラー音と共に表示された時の微妙な空気感がたまりません (╹◡╹) (^ω^) :(;゙゚ …

[C#]リストをカンマ区切りの文字列で出力する

リストの項目をカンマ区切りで出力したい 卵が先か鶏が先か~って話じゃないんですが、リストで出力した内容をカンマ区切りのデータにする必要が出てきたので、調べました。 List<string> …


カテゴリー