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


menu

パソコンのバックアップ方法まとめ [あまおとろぐ]

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

  • このエントリーをはてなブックマークに追加
robocopyコマンドでログファイルを出力する時、
backup.logのようなファイル名になっていると思います。
 
 
ログファイルを上書きする設定の場合、
バックアップしたログの履歴が残りませんので、
少し困りますよね。
 
 
この記事では、robocopyのログファイルを
2012-07-04_backup.logのように
日付毎に作成する方法を紹介します。
 
[10/30追記]
ログファイルを自動的に削除する方法をコメント欄に追記しました。
1週間分だけファイルを残す」も簡単にできて便利です。
いっぱちさん、ありがとうございました!
 

スポンサーリンク

もくじ

 

スポンサーリンク

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

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

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

通常、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コマンドを使います

パソコンのファイルをrobocopyで手堅くバックアップする方法』では、
以下のようなバッチファイルを作成しました。
 
59-10.png
 
 
このバッチファイルを例にして、修正してみましょう。
 
 
以下のように修正すると、
ログファイルが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以降で使えるようです。
      ———————————-

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

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

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

[当ブログについて]

最近のコメント

  • だーしゅ { カッコ部分も表示されていました。 ご丁寧にありがとうございました。 また、使わせて頂きますね。 } – 4月 25, 4:55 PM
  • { 《補足》 コメント文中に不等号の記号を使ったためか 欠落してしまった部分がありました。 今度はうまく表示できますように。 powershell -command (get-content <ファイル名>)[-15..-1] 《説明》 <ファイル名>以外のところは丸括弧、角括弧の記号を含めてそのまま入力します。 <ファイル名>の部分は変数なので不等号の記号は入力しません。 } – 4月 24, 11:25 PM
  • だーしゅ { > powershell -command (get-content )[-15..-1] > > 《説明》 > これは「ファイルの後ろから数えて 15行目から最終行までを表示せよ」というコマンドです。 なるほど。 確かにサマリー部分は固定行数なので、この方法で表示できますね。 PowerShellはあまり使った事がなかったのですが、いろいろと便利な事ができそうです。 情報ありがとうございました。 } – 4月 24, 4:53 PM
  • いっちゅう { 回答ありがとうございます。 役立つサイトまで探してくださったのですね。 活用させてもらいます。 [1]に関して 「バックアップ先にしかないファイル」というのは長いので 「コピー先のみ」を採用させてもらいます。 [3]に関して 現状でもご所望のことは容易にできると思います(何もインストールの必要はありません)。 コマンドラインでコマンドを打つことになりますが、robocopyコマンド自体がそうなので たぶん苦にならないと思います。UNIXコマンドの tail 見たいなことをします。 コマンドラインで以下のように入力します。 powershell -command (get-content )[-15..-1] 《説明》 これは「ファイルの後ろから数えて 15行目から最終行までを表示せよ」というコマンドです。 Windows PowerShell の機能を利用します。 上記は普段使っているコマンドインタープリターが Windows... } – 4月 24, 8:50 AM
  • だーしゅ { いっちゅうさん、コメントありがとうございます。 >ログって見にくくないですか 確かにズレるのは見にくいですね。 仕方ないので、確認する時は、 「"右から2つ目の数"が失敗のカウント」 と読んでましたよ。 >(別の記事によると、だーしゅさんはログファイル削除派だそうですが、 どちらかと言えば、一定期間が過ぎたログファイルは削除する感じですね。 1年分保持して、更に過去は削除することが多いです。 圧縮しても良いですね。 かなりファイルサイズが小さくなりますので。 [1] バックアップ先にしかないファイル」「コピー先のみ」とかでしょうか。 [2] 調べて見ると、@ITで良いページがありました。 http://www.atmarkit.co.jp/ait/articles/1309/27/news116.html 全部で8コあるようですね。 サイズや属性で更に細かく分類されてます。 [3] robocopyの処理結果は「robocopyコマンドを実行した単位」で表示されますが、 ログ内にファイルパスも出力している場合、サマリーを確認するのがちょっと面倒です。 テキストエディタの検索で「ディレクトリ:」を指定して、ジャンプしてます。 「サマリー表示だけを別ファイルに出力」できると良いかも知れませんね。 } – 4月 23, 3:40 PM
  • だーしゅ { sumi3さん、コメントありがとうございます。 3世代分のバックアップデータがあれば、かなり安心ですね。 シャドウコピーを組み合わせると、利便性がアップするのでおすすめですよ。 } – 4月 23, 2:52 PM