今ウイングアークのSVFをイジくってるんですが、SVFも「SVFX-Designer」っていうGUIの画面デザイナで作成したXMLを、SVFサーバー(帳票サーバー)に配置して動作確認する必要があります。
環境的にはSVFサーバーがLinuxで、Sambaも入れてないしFTPサーバーも立ってない。というわけでWindows上で作った画面定義XMLファイルをLinuxサーバーにコピーするのにWinSCPを使ってGUIの画面でD&Dしてたんですが、これが結構面倒(なんせ開発中なんで頻繁に更新が発生する)。
クライアントPCで所定のフォルダ内に作成したXMLファイルをサーバーの所定のディレクトリに同期させればいいだけなんだけど…
と思ってよくよく調べてみたら、WinSCPのコマンドモードで「keepuptodate」なんていう素晴らしいモードがあることを知りました。
これを使うと、指定したフォルダを監視して、更新があったら同期する、という処理を勝手に行ってくれます。素敵。
WinSCPコマンドモード用スクリプトファイル
例えば、クライアント「C:\Users\user_name\Documents\form」とサーバー「/home/user/form」ディレクトリを同期させたい場合。テキストエディタで以下のようなスクリプトを書いて、任意の名前で保存。
option batch on
open user@192.168.1.2
keepuptodate C:\Users\user_name\Documents\form /home/user/form
※当然ですが、user@192.168.1.2 のところは、ご自身の使う環境に合わせて変更してください。open user@192.168.1.2
keepuptodate C:\Users\user_name\Documents\form /home/user/form
user:OSへのログオンユーザー名
IP:サーバーのIPアドレス
WinSCPコマンドモード起動バッチ
WinSCPをコマンドモードで起動するバッチファイルを作成します。上記のスクリプトを「ドキュメント」フォルダに「winscp_keepuptodate.txt」という名前で保存した場合。
"C:\Program Files (x86)\WinSCP\WinSCP.com" /script="C:\Users\user_name\Documents\winscp_keepuptodate.txt"
※改行されて表示されてると思いますが、改行せず続けて書くこと。当然ですが、WinSCP.comへのパスはご自身の環境に合わせて変更してください。
以上で準備は完了。あとは作成したバッチを叩くと、コマンドプロンプトな画面が表示されて、何かフォルダに変更が発生する度に自動でそれを検知して同期してくれます。
さらに詳しく知っておきたい人は、こちらからどうぞ。
WinSCPスクリプト入門:コマンドやバッチファイルとの連携による自動処理 - SourceForge.JP Magazine : オープンソースの話題満載
こういうのはほんのちょっとしたことだけど、それだけで異様に作業効率が上がるので、同じような環境で微妙にお困りの方にはオススメです。
0 件のコメント:
コメントを投稿