windows マシンの電源は常に入っている状態です。
バックアップ対象のファイルは、ファイル名に日付等が含まれていません
(xxxx.20090101.zip ではなく常に xxxx.zip)。
できればバックアップファイルの世代管理をしたいので、windows 側で xxxx.zip を xxxx.20090101.zip の
ように自動的にリネームしたいです。
この要件を満たすバックアップソフト等をご存知でしたら教えてください。
私が考えたのは Cygwin の Cron で WinSCP のコマンドをたたく、といったものですが、
バックアップするマシンはお客様のものですのでできれば Cygwin 等をインストールしたくはないです。
ダウンロードしたファイルを、WSH でリネームしてはどうでしょう。
下記のスクリプトを拡張子 .vbs でセーブして、コマンドラインからバッチとして実行して下さい。
Dim ff, fs Dim sour, sour_name, sour_ext sour_name = "xxxx" '元のファイル名 sour_ext = ".zip" '元の拡張子 '変更後ファイル名 dest = sour_name & "." & Year(Now()) & Month(Now()) & Day(Now()) & sour_ext set fs = WScript.CreateObject("Scripting.FileSystemObject") sour = fs.BuildPath("./", sour_name & sour_ext) set ff = fs.getFile(sour) ff.name = dest
私も、おそらくバッチファイルで実行するのが良いと思います。
WSHやVBSってセキュリティ云々とかけっこううるさいので、純粋にDOSコマンドシェルが妥当だと思います。
↓
ファイルのタイムスタンプを取得しリネーム(ローテート)する方法
http://typista.xii.jp/dos/304.html#extended
@echo off
if "%1"=="" goto :ERR_PARAM
if exist %1 goto :ROTATE
goto :NOT_EXIST
:ROTATE
SET TARGET=%1
SET T=%~t1
set YYYY=%T:~0,4%
set MM=%T:~5,2%
set DD=%T:~8,2%
echo move %TARGET% %TARGET%.%YYYY%%MM%%DD%
rem move %TARGET% %TARGET%.%YYYY%%MM%%DD%
goto :EOF
:ERR_PARAM
echo パラメータを指定してください。
goto :EOF
:NOT_EXIST
echo 指定されたファイルまたはディレクトリは存在しません。
goto :EOF
:EOF
ありがとうございます。コードそのものまでもらえるのがうれしいです。
rdiff-backup でいいんじゃね? Win32 へのポートもあるようだし。
気まぐれサーバー - rdiff-backup - ローカル/リモートのミラーと差分バックアップ-rdiff-backup-気まぐれ Wiki
Cygwin の Cron
Windows 自身のタスクスケジューラーでやれば良いだけだと思うが。
いいですね!
インストールがうまくできてないのですが引き続きチャレンジします。
回答ではないのですが、Windows側に持ってきてバックアップするよりも、Linux側にHDDを増設するか、予備のLinuxマシンを設けて予備側にバックアップするなどして、Linux側でバックアップした方が、信頼性・バックアップ時間・HDDの使用量の点で有利ではありませんか?
以下は、Linux用バックアップソフトで、初回のみファイルそのものをコピーして、2回目以降は変化が有ればやはりコピー、同じならハードリンクを使用する事によりHDDの使用領域を減らします。当然バックアップ時間も短くなります。その上、日付でディレクトリを作成してくれます。又、次のURLには、一定期間経過したら削除する事で、HDDのパンクを防ぐソフトも有ります。これをcronで毎日夜中に動作させればよいかと。
tach.arege.net: pdumpfs-clean: pdumpfs のバックアップを掃除するツール
最初のURLの方のソフトはWindows用も公開されていますが、Windowsでの使用では、ハードリンクが使用出来ないので、HDDの使用領域やバックアップ時間は減りません。
ありがとうございます。
本来はそうなのですが予算やらの都合もあり・・
ただ、こちらは今後の参考として生かしていきます。
あ、考えてみれば私が考えた方法(WinSCPをたたく)に関してもリネームできないという問題がありましたね。。
ありがとうございます!