最近の Windows ではあまりなくなりましたが、以前の Windows では、突然ファイルが破損して、何日もかけて作ってきたファイルが一瞬にしてパア、なんてことがよくありました。また、Windows のせいだけではなく、誤操作や誤判断でファイルを消してしまう、なんてことも時々あります。
人間だからミスはするさ…、フッ………
などと言ってみても、内心は呆然。
という時のために、バックアップを作るようにしてます。
ただ、手動でバックアップをすると、手間でもあるし、つい忘れてしまうので、タスクスケジューラに登録して、勝手にバックアップがされるように設定しておくのがよいかと。
このシリーズでは、バックアップの方法に特化して、いくつかのツールとその使い方をご紹介します。
本日は、その第1回 xcopy を使う方法。
■xcopy
xcopyコマンドは、ファイルやフォルダをツリー状態のままコピーするコマンドで、すべての Windows に標準で装備されています。
このコマンドとWindows OSのタスク・スケジュール機能を組み合わせることにより、簡単なファイルのバックアップ・システムにすることができます。
例えば、以下のようなバッチ・ファイルを作成しておいて、1日に何回か動作するようにしておけばよいだろう。
★――――――――――――――――――――――――――
if not exist z:\. net use z: \\server\usrbackup
set logfile=c:\log\copyall.log
echo %DATE% %TIME% >> %logfile%
xcopy c:\usr z:\usr\ /D /S /E /H /C /Y /R >> %logfile%
――――――――――――――――――――――――――★
最初に、コピー先のドライブを z: ドライブにマップします。
べつに、マップしなくても直接 UNC で指定しても問題ありませんが、複数のフォルダをコピーさせる場合はこの方が便利です。
コピー元(c:\usr)の内容を、すべて \\server\usrbackup というフォルダにコピーさせています。
さらにxcopyコマンドの実行結果をc:\log\copyall.logというファイルに実行時刻とともに記録していますが、これは、後でいつ実行したかが分かるようにするためで、必要なければ省いてしまっても問題ありません。
xcopyにはさまざまなオプションがあるが、ここでは「/D /S /E /H /C /Y /R」を指定している。
・/D 新しいファイルだけをコピーする
・/S /E (空のものも含めて)サブフォルダもコピーする
・/H 隠しファイルもコピーする
・/C エラーを無視してコピーする
・/Y 無条件上書きコピーする
・/R 読み取り専用ファイルもコピーする
というオプションです。
※xcopyのオプションの詳細については、Webで検索すると出てきます
※私は、マイクロソフトの技術サイト
※ https://technet.microsoft.com/
※を愛用しています。xcopy については以下に書いてあります。
※ https://technet.microsoft.com/ja-jp/library/cc771254(v=ws.10).aspx
■コピーしたくないファイル(除外ファイル)を指定する
ところで、こういうバッチファイルで実行していると、(上記の例で言えば、usr の下にある)コピーしたくないファイルが出てきます。
たとえば、テンポラリで作成ている巨大な bmp ファイルとか、MS-Office が作成している中間ファイル($で始まるファイル)など。
こういうのは邪魔だし、あとで参照することもありえないので除外するようにしています。
xcopy では、コピーの対象から除外するファイルの一覧リストを作ることができますので、これを利用します。
★――――――――――――――――――――――――――
if not exist z:\. net use z: \\server\usrbackup
set logfile=c:\log\copyall.log
echo %DATE% %TIME% >> %logfile%
xcopy c:\usr z:\usr\ /EXCLUDE:C:\BAT\xcopy-excludelist.txt /D /S /E /H /C /Y /R >> %logfile%
――――――――――――――――――――――――――★
この "/EXCLUDE:C:\BAT\xcopy-excludelist.txt" というのが除外ファイル。
除外の対称となるのは、拡張しだけを指定したり、ファイル名に含まれる一部の文字を指定することができます。
このファイルは、テキストエディタなどで編集します。
こんなファイル
★C:\BAT\xcopy-excludelist.txt――――――――――――――――――――――――――
$~
.tmp
outlook.pst
.bmp
@work
――――――――――――――――――――――――――★
こちらも詳細はマイクロソフトのサイトで御覧ください。
■ネットワーク上のファイルのバックアップ
私は仕事上、海外にあるサーバのデータをよくアクセスします。
これは社内LANに接続された環境と比べると非常に遅いです(当たり前ですが)。
ですので、こういったファイルは一旦社内のサーバに移動してきて、それを参照するようにすると便利です。
ただ、海外(特にインターネット環境の不安定な国)とやりとりしていると、途中で接続が切れてしまう場合があります。
これを自動的に復旧措置してくれるオプションが xcopy にはあります。
/z 再起動可能モードで、ネットワークを介してコピー
というオプションです。
これを使うと、一時的にネットワークが不通になっても、復旧後続きから実行してくれるので、ネットワークの不安定な環境でもバックアップを気にせずに取ることができるようになります。
無線LANを使っている時も、構内を移動していると切れる時があるので、そういう意味で、常に /z オプションを付けて xcopy を使ってます。
■ファイルは削除しない
ここでご紹介した xcopy によるファイルのバックアップは、同名ファイルだと上書きされてしまいますが、オリジナルのフォルダでファイルを削除してしまってもバックアップフォルダにはファイルが残り続けます。
このおかげで、間違って削除してしまっても、バックアップにはからなず最新ファイルが残っているので、安心して削除ができます。
私はオリジナル(普段仕事で使う)フォルダのファイルは、もうアクセスしなくなったらどんどん削除してしまいます。
もし、「やっぱり必要」になったら、バックアップを探しに行けば残ってますので。
普段使うフォルダは、なるべくファイルを少なくしておけば、探すのに手間取りませんので、作業効率が上がりますよ。