ファイルを単にバックアップするなら、Dropbox使えばネットにバックアップして、過去バージョンに戻すこともできますが、小回りがききません。
- 過去バージョン複数を、すばやく見比べたい。
- 大きなデータなので、保存のたびに圧縮したい。
- 社外秘のファイルなので、ネットにアップロードする前に暗号化したい。
こういった用途には、細かな調整のできる、これから説明する方法でバックアップを取ると便利です。
環境
- Windows7 64bit / WindowsXP
- fwatch http://fwatch.sourceforge.jp
仕様
- ファイルを上書き保存するたびに
- ただし1分以内の更新は上書きされる
- タイムスタンプつけたファイル名にする
- 「はに丸.txt」というファイルは、バックアップ先では「はに丸-20130116-1516.txt」になる。ファイル更新時刻を文字列につける。
手順
- fwatchをダウンロード・インストールする。 私は fwatch1.8.0.5_unicode.zip を取得して、 C:\home\bin\fwatchに fwatch.exeなどを配置した。詳しくは http://fwatch.sourceforge.jp 参照。
- fwatch.exeあるのと同じフォルダに copystamp.bat というテキストファイルを置く。中身は
@echo off SET BACKUPDIR=R:\work-backup REM 引数1の存在確認 IF NOT EXIST %1 EXIT /B REM フォルダでないことを確認 echo %~a1|find "d">NUL if %ERRORLEVEL% EQU 0 exit /b REM ファイルサイズ確認 IF "%~z1" == "0" EXIT /B REM ファイル更新日時から時刻文字列を得る SET TSTAMP=%~t1 SET TIMESTR=%TSTAMP:~0,4%%TSTAMP:~5,2%%TSTAMP:~8,2%-%TSTAMP:~11,2%%TSTAMP:~14,2% if not exist %BACKUPDIR% mkdir %BACKUPDIR% REM ファイル名%~n1 ファイル拡張子%~x1 copy %1 %BACKUPDIR%\%~n1-%TIMESTR%%~x1 EXIT /B
最初のほうにある R:\work-backup というのがバックアップ先のフォルダです。好きなフォルダに変えてください。
- fwatchを設定します。[追加]ボタンを押して、 http://fwatch.sourceforge.jp/menu.html の画面で以下を変更します。
- [監視対象 - 監視するフォルダ] Z:\work
- [監視対象 - 監視するファイル] *.txt
- [実行するアプリケーションの設定 - アプリケーションのパス] C:\home\bin\fwatch\copystamp.bat
- [実行するアプリケーションの設定 - ウィンドウのサイズ] 非表示
compstamp.batをファイル選択ダイアログで選択するときは、この画像のようにします。
- これで、Z:\work フォルダにある *.txtの拡張子のついたファイルは、上書き保存のたびに R:\work-backupフォルダにバックアップされます。
- [スタート - すべてのプログラム - スタートアップ]にfwatchのショートカットアイコンを置いておけば、Windows再起動後も自動でfwatch起動してくれます。
ファイルを暗号化して、クラウド(Dropbox)にもバックアップ
ファイルをただコピーするだけではなく、
- 圧縮してファイルサイズを縮める
- 暗号化してDropboxにアップロード
したい場合は、以下のようにします。
- 7-zip http://sevenzip.sourceforge.jp/ をインストールする。Windowsが64bitの場合は64bit版をインストールしましょう。
- fwatch.exeあるのと同じフォルダに encryptstamp.bat というテキストファイルを置く。中身は
@echo off SET BACKUPDIR=C:\Users\USER_NAME\Dropbox\myPaint REM 引数1の存在確認 IF NOT EXIST %1 EXIT /B REM フォルダでないことを確認 echo %~a1|find "d">NUL if %ERRORLEVEL% EQU 0 exit /b REM ファイルサイズ確認 IF "%~z1" == "0" EXIT /B REM ファイル更新日時から時刻文字列を得る SET TSTAMP=%~t1 SET TIMESTR=%TSTAMP:~0,4%%TSTAMP:~5,2%%TSTAMP:~8,2%-%TSTAMP:~11,2%%TSTAMP:~14,2% if not exist %BACKUPDIR% mkdir %BACKUPDIR% REM ファイル名%~n1 ファイル拡張子%~x1 echo P455w07d| "C:\Program Files\7-Zip\7z.exe" a -p %BACKUPDIR%\%~n1-%TIMESTR%%~x1.7z %1 del *7z.tmp* EXIT /B
最初のほうにある C:\Users\USER_NAME\Dropbox\myPaint というのがバックアップ先のフォルダです。あなたの使うDropboxフォルダに変えてください。USER_NAMEのところも修正します。
最後のほうにある P455w07d というのが、ファイルを暗号化するパスワードです。適当なパスワードに変えてください。もう少し長いほうがいいかも。
- fwatchを設定します。[追加]ボタンを押して、 http://fwatch.sourceforge.jp/menu.html の画面で以下を変更します。
- [監視対象 - 監視するフォルダ] Z:\work
- [監視対象 - 監視するファイル] *.*
- [実行するアプリケーションの設定 - アプリケーションのパス] C:\home\bin\fwatch\encryptstamp.bat
- [実行するアプリケーションの設定 - ウィンドウのサイズ] 非表示
- これで、Z:\work フォルダにある どんな拡張子のファイルでも、上書き保存のたびにDropboxのmyPaintフォルダに、暗号化された上でバックアップされて、Dropboxが自動的にネット上にもバックアップしてくれます。
- 「はに丸.bmp」というファイルは、バックアップ先では「はに丸-20130116-1516.bmp.7z」になります。
暗号化したファイルを元に戻すには、以下のBATファイルにドラッグ&ドロップすればいいです(展開したいフォルダを z:\home\privacy とした場合)。
un7z.bat
mkdir z:\home\privacy z: cd \home\privacy "c:\Program Files\7-Zip\7z.exe" x -pP455w07d %*
タイムスタンプをつけない
ちなみに「タイムスタンプつけない」やり方もあります。
txtファイルやExcelファイルを「タイムスタンプつけず」ただ暗号化してDropboxに上書きバックアップするには‥‥
c:\home\secret に保存した MyPlan.txt を、以下のbatファイル使えば MyPlan.txt.7z としてバックアップできますよ。これだと何回上書き保存してもファイルが増えないので使い勝手がよいです。
@echo off SET BACKUPDIR=C:\Users\USER_NAME\Dropbox\secret REM 引数1の存在確認 IF NOT EXIST %1 EXIT /B REM フォルダでないことを確認 echo %~a1|find "d">NUL if %ERRORLEVEL% EQU 0 exit /b REM ファイルサイズ確認 IF "%~z1" == "0" EXIT /B if not exist %BACKUPDIR% mkdir %BACKUPDIR% REM ファイル名%~n1 ファイル拡張子%~x1 echo P455w07dH4rd| "C:\Program Files\7-Zip\7z.exe" a -p %BACKUPDIR%\%~n1%~x1.7z %1 del *7z.tmp* EXIT /B
バックアップはずっと持っていても意味ないので適当なタイミングで消しましょう。
あと書き
fwatchは最近知ったのですが、まさにほしい機能を備えたソフトでした。
以下のページも参考にしました。
- BATファイルのタイムスタンプの扱い http://www.geocities.jp/htmdoc/l2j/tip_logrotate.html
- BATファイルの変数 http://blog.goo.ne.jp/limited_terra/e/3b7d0b570431dc6eba763335491e0fa0