Last-modified: 2016-05-27 (金) 17:53:51 (1117d)

 本Scriptよりも、FastCopyをコマンドラインで利用した方が良いかもしれない。(2010/08/17)
 また、batファイルのみで実現している方も居た。(2015/02/17)

Syncみたいなスクリプト

 大容量フォルダのミラーリングで差分のみ更新したい場合には「xcopy」コマンドが使えるわけですけど、上書きするだけで、削除したり移動したりしたファイルやフォルダを消したりはしてくれません。そこだけを何とかしたスクリプトです。

  • コピー元フォルダで削除されたファイル・フォルダを、コピー先フォルダから削除した後に、xcopyを実行します。
  • 実は、「削除」ではなくて、「ごみ箱へ移動」します。
  • xcopyは"差分のみ更新"です。「xcopy /D /S /H /R /K /Y /I」
  • 利用法サンプル
    cscript //nologo Sync.js D:\picture E:\picture /EXCLUDE:exclude.txt
    • /EXCLUDEオプションは、xcopyそのままです。
  • 動作ログとして 削除したファイルおよびコピーしたファイルの一覧を標準出力します。

フォルダバックアップスクリプト(圧縮・世代管理)

 「バックアップをファイル個別に取り出す必要がない」「差分のみの処理としたい」「場合によってはシャドウコピーが必要」「圧縮プログラム依存なのは嫌だ」という理由から、以下のスクリプトの利用を停止し、Windowsに含まれるバックアップツールを利用することにしました。(2005/10/04)

 当サイトのWebコンテンツとMySQLデータベースをバックアップするためのプログラムです。当初はWindowsバッチファイルだったのですが、日付処理とか入ってきて複雑になったのでWSH化しました。

  • 特定のフォルダをサブフォルダも含めてアーカイブ圧縮し、保存用フォルダに保存する。
  • 指定した期間よりも以前のバックアップファイルを削除する。(←この機能のためにWSHにしたのよ)
  • コマンドライン圧縮プログラムが必要。(サンプルはJRE付属のjarコマンドですが、jarだと日本語ファイル名が化けます)
    strCommand = """C:\Program Files\LHMELT\LHMELT.EXE"" -a " & targetFolder
                 & " -f" & saveFilePath & " -q -v-"
  • タスクスケジューラでスケジュール実行すると好いかと。
    >cscript //B //Nologo backup.vbs

それでも…

  1. バックアップが効かない「単一障害ポイント」でトラブルが発生
  2. バックアップ側にも問題がコピーされてしまう
  3. バックアップに切り替える判断ができない

が原因で、復旧できないことがあると。


添付ファイル: filebackup.vbs 3028件 [詳細] filebackup.bat 1214件 [詳細]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS