パソコンのバックアップ方法を紹介します。

robocopyでバックアップした時のログファイルを日付毎に作成する方法(+過去の古いファイルの削除方法も)

robocopyコマンドでログファイルを出力する時、backup.logのようなファイル名になっていると思います。ログファイルを上書きする設定の場合、バックアップしたログの履歴が残りませんので、少し困りますよね。
 
この記事では、robocopyのログファイルを2012-07-04_backup.logのように日付毎に作成する方法を紹介します。

[10/30追記]

ログファイルを自動的に削除する方法をコメント欄に追記しました。
1週間分だけファイルを残す」も簡単にできて便利です。
いっぱちさん、ありがとうございました!


こんなログファイルが出力できます

バックアップを行った日付毎にファイルが並んでいますね。
 
ログファイル
 
エクスプローラでログファイルの一覧を眺めるだけで、
 
  • バックアップが実行された日付
  • バックアップが終了した時刻
  • ファイルの追加・変更・削除があった量
がわかりますので、便利ですよ。
 
 

バックアップログは日付毎に残した方が良い

通常、robocopyでログファイルを出力する時は、
/LOG:"c:\work\backup.log"
のようなパラメータを指定します。
 
このパラメータでは、バックアップする度に同じファイルが上書きされてしまいます。
 
 
ログファイルにはもう一つのパラメータがあります。
/LOG+:"c:\work\backup.log"
のように、「+」を付けることで追記モードになります。
 
しかし、常に同じファイルに追記しますので、ファイルサイズがどんどん大きくなってしまいます。
 
 
「ログファイルはその都度確認できれば良い!」という場合は上書きモードで問題ないですが、ファイルサーバのバックアップなどの場合には、やはり、バックアップの実績として日付毎のログを残しておきたいところです。
 
 


Windows 7とWindows Server 2003で実際に使ってます

以下で説明する方法は私が、
  • Windows 7
  • Windows Server 2003
のバックアップで実際に使っている方法です。
 
 
7 と 2003で実行できていますので、
  • Windows Vista
  • Windows XP
  • Windows Server 2008
でも同じ方法が使えると思います。
 
試してみてくださいね。
 
 

コマンドプロンプトのdateコマンドを使います

この記事では、以下のようなバッチファイルを作成しました。
 
バッチファイル
 
このバッチファイルを例にして、修正してみましょう。
 
 
以下のように修正すると、ログファイルが2012-07-04_backup.logのようになります。
set logfile="c:\work\%date:~0,4%-%date:~5,2%-%date:~8,2%_backup.log"
robocopy "C:\ライブラリ" "J:\バックアップ\ライブラリ" /MIR /R:0 /W:0 /LOG+:"%logfile%" /NP /NDL /TEE /XJD /XJF
ここで、年月日の数字を設定しています。
 
例えば、%date:~0,4%を簡単に説明すると、
  1. バッチファイル内なので、コマンドの両側に「%」を付けている。
  2. dateコマンドを実行する。
    (たいていのOSでは2012/07/04が取得できる)
  3. 取得した文字の先頭(0文字目)から4文字を抜き出す。
    (ここでは2012となる)
となります。
 
要は「年月日の日付から数字だけを抜き出している」だけですね。
 
 
「2012/07/04」という文字をそのまま使わないのでは、「/」がファイル名として使えないからです。
 
 


バッチファイルを実行してみる

修正したバッチファイルを実行してみると、「2012-07-04_backup.log」のようなログファイルが作成されます!
 
ファイル名がおかしい場合は、日付の数字がうまく取得できていませんので、「文字を抜き出す数字(開始位置と抜き出す文字数)」を調整してくださいね。
 
 

まとめ

ログファイルを日付毎に作成しておくと、バックアップが正常に行われているかを確認する時に便利です。
 
ログファイルが必要なくなったら、
  • 削除する。
  • 圧縮しておく。
などをしておくと増えすぎなく良い感じですよ。
私は削除派です。
 
一度、お試しくださいね。
 
スポンサーリンク


コメント

  • トラックバックは利用できません。

  • コメント (2)

    • いっぱち
    • 2015年 10月 28日

    ログファイルが必要なくなったら、削除したいのですが、
    例えば、古いものは自動削除して1週間分だけ残していく方法はありますか?

      • だーしゅ
      • 2015年 10月 29日

      いっぱちさん、コメントありがとうございます。
      過去のファイル削除は、forfilesコマンドで出来ますよ。

      ★実行前の注意!
      ファイルを削除するdelコマンドを実行しますので、
      「フォルダパス」や「対象となるファイル」の指定には注意してくださいね。

      ———————————-
      ■コマンド例
      ログファイルを1週間分だけ残し、それより以前は削除する。
      forfiles /P "c:\work" /M "*.log" /D -7 /C "cmd /c del @file"

      ■パラメータ説明
      /P :処理対象のフォルダパス
      /M :処理対象のファイル(”*.log”の場合、「拡張子がlogのファイル全て」になります)
      /D :最終更新日の日付指定(-7の場合、7日より前になります)
      /C :実行したいコマンド

      ※delコマンドは”内部コマンド”なので cmd /c を付ける必要があります。

      ■備考
      Windows Vista以降、Windows Server 2003以降で使えるようです。
      ———————————-

      バックアップ用のバッチファイル内にコマンドを追加しておけば、
      バックアップのたびに自動的に削除してくれます。

      私も使ってみましたが、なかなか便利でした。
      一度お試しくださいね。

バックアップが2つあるとファイルサーバが壊れた時、更に安心です


最近のコメント

  • だーしゅ 2020年3月9日 at 12:50 PM on robocopyのバックアップを一時的に止める2つの方法コメントありがとうございます。 早速試してみたところ、なぜか私の環境では止まりませんでした。。。 コマンドプロンプトの設定をいろいろ変更してみましたが現象は変わらず。 その他のキーで試したところ、Pa...
  • 匿名 2020年3月7日 at 7:41 PM on robocopyのバックアップを一時的に止める2つの方法もう「DOS窓」時代の話は、かなり過去に流れてしまっているんですね。 出力をとめたい場合、ctrl+sで中断、ctrl+qで再開、というのが常道でした。robocopyももちろんこれで止まります。
  • だーしゅ 2019年12月1日 at 11:39 AM on パソコンのファイルをrobocopyで手堅くバックアップする方法初心者さん、コメントありがとうございます。 1回目も2回目以降も「ミラーリング」したいのであれば、同じバッチファイルで良いですよ。 ただし、バッチファイルの内容は、本当に良く確認してくださいね。 設定...
  • 初心者 2019年11月28日 at 1:48 AM on パソコンのファイルをrobocopyで手堅くバックアップする方法 PCに関しては初心レベルです。robocopyに関して分かり易く解説して頂き参考になります。 NASにある350GBデーターのフォルダーが2つあり、ミラーリングを考えております。 だーしゅさんのバッ...
  • 悪戦苦闘中 2019年10月13日 at 4:47 AM on パソコンのファイルをrobocopyで手堅くバックアップする方法わざわざ調べて頂いたのでしょうか? 痛み入ります。 > 一般的なWebDAVへバックアップすることは可能なようですね。 暗号化された一般的ではない(かなり特殊?)WebDAVなので、やっぱり無理...

だーしゅ
IT関係のお仕事してます。
バックアップが趣味。

 

[当ブログについて]