windows マシンから linux サーバーにあるファイルを、SCPで定期的に自動バックアップしたいです。

windows マシンの電源は常に入っている状態です。
バックアップ対象のファイルは、ファイル名に日付等が含まれていません
(xxxx.20090101.zip ではなく常に xxxx.zip)。
できればバックアップファイルの世代管理をしたいので、windows 側で xxxx.zip を xxxx.20090101.zip の
ように自動的にリネームしたいです。

この要件を満たすバックアップソフト等をご存知でしたら教えてください。
私が考えたのは Cygwin の Cron で WinSCP のコマンドをたたく、といったものですが、
バックアップするマシンはお客様のものですのでできれば Cygwin 等をインストールしたくはないです。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:2009/08/18 12:20:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:pahoo No.1

回答回数5960ベストアンサー獲得回数633

ポイント50pt

ダウンロードしたファイルを、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

参考サイト

id:snaa1d_1

あ、考えてみれば私が考えた方法(WinSCPをたたく)に関してもリネームできないという問題がありましたね。。

ありがとうございます!

2009/08/14 01:42:08
id:typista No.2

回答回数359ベストアンサー獲得回数7

ポイント50pt

私も、おそらくバッチファイルで実行するのが良いと思います。

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

id:snaa1d_1

ありがとうございます。コードそのものまでもらえるのがうれしいです。

2009/08/18 12:20:38
id:b-wind No.3

回答回数3344ベストアンサー獲得回数440

ポイント50pt

rdiff-backup でいいんじゃね? Win32 へのポートもあるようだし。

気まぐれサーバー - rdiff-backup - ローカル/リモートのミラーと差分バックアップ-rdiff-backup-気まぐれ Wiki

Cygwin の Cron

Windows 自身のタスクスケジューラーでやれば良いだけだと思うが。

id:snaa1d_1

いいですね!

インストールがうまくできてないのですが引き続きチャレンジします。

2009/08/18 12:20:10
id:darkwood No.4

回答回数45ベストアンサー獲得回数6

ポイント50pt

 回答ではないのですが、Windows側に持ってきてバックアップするよりも、Linux側にHDDを増設するか、予備のLinuxマシンを設けて予備側にバックアップするなどして、Linux側でバックアップした方が、信頼性・バックアップ時間・HDDの使用量の点で有利ではありませんか?


 以下は、Linux用バックアップソフトで、初回のみファイルそのものをコピーして、2回目以降は変化が有ればやはりコピー、同じならハードリンクを使用する事によりHDDの使用領域を減らします。当然バックアップ時間も短くなります。その上、日付でディレクトリを作成してくれます。又、次のURLには、一定期間経過したら削除する事で、HDDのパンクを防ぐソフトも有ります。これをcronで毎日夜中に動作させればよいかと。


pdumpfs: Plan9もどきのバックアップシステム

tach.arege.net: pdumpfs-clean: pdumpfs のバックアップを掃除するツール


 最初のURLの方のソフトはWindows用も公開されていますが、Windowsでの使用では、ハードリンクが使用出来ないので、HDDの使用領域やバックアップ時間は減りません。

id:snaa1d_1

ありがとうございます。

本来はそうなのですが予算やらの都合もあり・・

ただ、こちらは今後の参考として生かしていきます。

2009/08/18 12:17:59

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません