Server

WindowsServerから別サーバーにWinSCPにてFTPバックアップでミラーリング

サーバー ミラーリング

注意ポイント

WindowsServerからのバックアップするバッチファイルをタスクスケジュールして使っていますが、バックアップされません!

 

手動ではバックアップできるのに?

FFFTPをバッチファイルで自動ミラーリングしていたら突然フリーズするようになったので別(WinSCP)の方法を模索

 

WinSCPを使ってコマンドラインからの実行をバッチファイルを作成して、Windowsのタスクスケジューラーで定期的に実行させてバックアップを別のサーバーに蓄積していました。

手動で実行させれば思惑どうりの動きをしてバックアップを取ることができました。

しかし、タスクスケジューラーで動かすと、バックアップが取れないのです。

ココが不思議!?

履歴をみるとエラー無く実行されているという謎です!

 

ミラーリングさせてバックアップ

C:¥Backupのファイルを、外部のレンタルサーバーへコピーしてバックアップしていましたが、挙動がおかしいので、ミラーリングに変更しました。

 

バッチファイル(mirror.bat)

rem 日付の取得
set TODAY=%date:~-10,4%%date:~-5,2%%date:~-2,2%

rem 開始時刻を記録する
echo start > mirror.log
date /t >> mirror.log
time /t >> mirror.log

echo ■□■ FTP実行中 ■□■


"C:\Program Files (x86)\WinSCP\WinSCP.com" /console /script="c:\tools\mirror.txt"


echo end >> mirror.log
date /t >> mirror.log
time /t >> mirror.log

 

スクリプトファイル(mirror.txt)

option batch on
option confirm off
open WinSCP接続名
synchronize remote -delete
exit

※WinSCPには、FTPでの接続設定をしておき、「WinSCP接続名」の場所に入力することでコマンドラインから接続させることが可能になる。

 

手動でバッチファイルを実行させましたが、C:¥Backupのファイル(フォルダも含む)が、外部のレンタルサーバーに完全一致しました。

ココがポイント

ポイントは、synchronize remote -delete ですね

 

このバッチファイルを同期させたい時間帯にタスクスケジュールしたところ問題なく外部のレンタルサーバーにバックアップが取れるようになりました。

 

synchronize の使い方

使い方

リモートディレクトリ側を更新する場合
synchronize remote <ローカルディレクトリ> <リモートディレクトリ>
ローカルディレクトリ側を更新する場合
synchronize local <ローカルディレクトリ> <リモートディレクトリ>

今回は、外部のレンタルサーバー側にミラーリングさせてフォルダを同期しましたので、

synchronize remote -delete

となった訳ですが、-deleteオプションを付けない場合は、リモート先(外部のレンタルサーバー側)には、元フォルダからファイルを消しても消されずに蓄積していくようです。

他のオプションは、下記参考

オプション説明
-delete同期元にないファイルを同期先から削除します。「both」モードでは無視されます
-mirrorミラーモード(古いファイルについても同期される)で実行します。「both」モードでは無視されます。
-criteria=<基準>同期のための比較基準を指定します。「time」「size」「either」(以前のバージョンでは「both」でした。「both」モードは無視されます)「none」が選択できます。
-permissions=<モード>ファイル保存時のパーミッションを指定します
-nopermissionsデフォルトのパーミッションでファイルを保存します
-speed=<kibps>転送速度を制限します

-Server
-, , , , ,

Translate »

© 2022 PCTips