はじめに
以前に購入したTeraStationにWindowsのデータを定期的に自動でバックアップしたいとの要望があったのでrsyncでバックアップするように設定しました。
TeraStationは、「バックアップ」という項目を有効にすると「rsyncd」が起動するので利用します。
また、「バックアップ公開パスワード」を設定しないと誰でもアクセスできるので、パスワードを設定します。
普段、自分のバックアップにはFastCopyを使っていますが、NASの「rsyncd」を有効利用したいのでWindowsで「rsync」をタスクで動かすことにしました。
「cwRsync」には、SSH関連のコマンドも含まれていますので大変便利です。
また、正常に動作していることを確認したかったので、wshを使ってrsyncの結果をメールで通知させています。
その他にTeraStationでrootを有効にしています。
【追記 2013.02.05】
処理が遅くなるけれどチェックサムによる比較を行う「-c」オプションを付けて運用するようにした。
環境
- Buffalo TeraStation TS-XL/R5シリーズ Firmware ver.1.59
- Buffalo TeraStation TS-XL/R5シリーズ Firmware ver.1.55
- Buffalo TeraStation TS-XL/R5シリーズ Firmware ver.1.30
- WindowsXP Pro SP3
- cwRsync ver.4.0.4(rsync ver.3.0.7)
- Windows Script Host ver.5.7
TeraStationの設定
今回は、「共有フォルダー」→「共有フォルダー」タブを辿り、「公開先」を「Win/Mac(SMB)」、「バックアップ」だけにしました。
「隠し共有」、「バックアップ公開パスワード」はお好みで。
スクリプトの準備
「C:\Program Files\cwRsync\cwrsync.cmd」を適当なディレクトリにコピーします。
以下ではコマンドラインで行っていますが、通常はマウスで行います。
mkdir D:\cwrsync copy "C:\Program Files\cwRsync\cwrsync.cmd" D:\cwrsync
「cwrsync.cmd」について
上記でコピーした「D:\cwrsync\cwrsync.cmd」を編集します。
「xxx.xx.xx.xx」はIPアドレス。
「array1_hoge」の「array1」の部分は、TeraStationで表示される「ディスク領域」が「RAIDアレイ1」だったため。
「array1_hoge」の「hoge」の部分は、TeraStationで設定した「共有フォルダー名」。
「rsync」のオプションは、「-a」だけでも良いのですが、メールで内容を通知したいので「-v」も付けておきます。
ディレクトリの指定方法は「cwrsync.cmd」に例が記載されています。
例えば「C:\WORK\」は「/cygdrive/c/work/」とします。(cwrsync.cmdから引用)
「rsync」の「–chmod」オプションでディレクトリを全て「実行可」、ファイルを全て「読み書き可」にしました。
バックアップ先の既存のファイルのパーミッションを変更したくない場合は「–perms」オプションと併用します。
TeraStationの「バックアップ公開パスワード」を設定した場合は「TARGET_HOST」の書式が少し変わります。
「バックアップ公開パスワード」を設定しない場合は、2通りの書き方が出来るようです。
一応、「UTF-8」で保存しておきます。
cwrsync.cmd(バックアップ公開パスワードなし)
REM SET RSYNC_OPT=%RSYNC_OPT% --parms REM SET RSYNC_OPT=%RSYNC_OPT% --checksum # Add checksum SET RSYNC_OPT=%RSYNC_OPT% -avc REM SET RSYNC_OPT=%RSYNC_OPT% -av SET RSYNC_OPT=%RSYNC_OPT% --delete SET RSYNC_OPT=%RSYNC_OPT% --chmod=Da+rwx,Fa+rw SET RSYNC_SRCDIR=/cygdrive/d/home/ SET TARGET_HOST=rsync://xxx.xx.xx.xx/array1_hoge REM SET TARGET_HOST=rsync://array1_hoge@xxx.xx.xx.xx/array1_hoge REM @ECHO ON rsync %RSYNC_OPT% %RSYNC_SRCDIR% %TARGET_HOST% > log.txt cscript mail.vbs
cwrsync.cmd(バックアップ公開パスワードあり)
REM SET RSYNC_OPT=%RSYNC_OPT% --parms REM SET RSYNC_OPT=%RSYNC_OPT% --checksum # Add checksum SET RSYNC_OPT=%RSYNC_OPT% -avc REM SET RSYNC_OPT=%RSYNC_OPT% -av SET RSYNC_OPT=%RSYNC_OPT% --delete SET RSYNC_OPT=%RSYNC_OPT% --chmod=Da+rwx,Fa+rw SET RSYNC_OPT=%RSYNC_OPT% --password-file=/cygdrive/d/cwrsync/passwd-nas.txt SET RSYNC_SRCDIR=/cygdrive/d/home/ SET TARGET_HOST=rsync://array1_hoge@xxx.xx.xx.xx/array1_hoge REM @ECHO ON rsync %RSYNC_OPT% %RSYNC_SRCDIR% %TARGET_HOST% > log.txt cscript mail.vbs
パスワードファイル(バックアップ公開パスワードあり)
テキストエディタでパスワードファイルを作成します。
例えば、TeraStationで「バックアップ公開パスワード」を「hogehoge」にした場合、ファイルにも「hogehoge」を書きます。
また、UNIX系ではパスワードファイルのパーミッションを「600」にしないと「rsync」から警告が出て動作しませんが、Windowsでは確認していません。
私はセキュリティ上、「Everyone」は外しています。
hogehoge
mail.vbs
Windowsのwshを使ってメールを送信します。
「cwrsync.cmd」と同じディレクトリ「D:\cwrsync」に置きます。
一応、「UTF-8」で保存しておきます。
Set msg = CreateObject("CDO.Message") msg.Subject = "[NAS backup]" msg.Sender = "xxx@xx.xx.xx" msg.From = "xxx@xx.xx.xx" msg.To = "xxx@xx.xx.xx" msg.TextBody = "Backup" & vbCRLF & Now msg.AddAttachment "D:\\cwrsync\\log.txt" msg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2 ' Remote SMTP Server msg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = _ "smtp.xxx.xx.xx" ' Server port (typically 25) msg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' Connection Timeout in seconds msg.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60 msg.Configuration.Fields.Update msg.Send
Windowsのタスクスケジューラの設定
修正した「cwrsync.cmd」を指定して、1日1回動作するように設定します。
wshを使ったメール送信
http://slashdot.jp/~rxk14007/journal/224550
http://www.atmarkit.co.jp/fwin2k/win2ktips/428wshmail/wshmail.html
http://www.atmarkit.co.jp/fwin2k/win2ktips/452rejectlogon/rejectlogon.html
Use your Terastation as Rsync Backup Target
TeraStationとrsyncの基本的な使用法。
「バックアップ公開パスワードなし」の場合のみ掲載されています。
http://www.arnebrodowski.de/blog/use-your-terastation-as-rsync-backup-target.html
cwRsync
http: //rsync.net/resources/howto/windows_rsync.html
rsyncの使用方法
rsync
http://rsync.samba.org/
http://www.infoscience.co.jp/technical/rsync/
Comments