WinScpをコマンドラインから使う
サーバへのファイルアップロードやダウンロードに欠かせないセキュア通信のWinSCPですが、いつもは画面からピコピコとやってたが、どうやらコマンドラインからの実行もサポートしている模様。
はうつー
コマンドラインで以下を実行すると対話形式でWinSCPスタート
(WinSCPフォルダまでパスを設定している場合)
>winscp winscp> ←インタラクティブシェル開始
対話式で使えるコマンドは以下〜
コマンド | 実行処理 |
---|---|
call | 任意のリモートコマンドを実行 |
cd | リモートディレクトリの変更 |
chmod | リモートファイルの権限を変更 |
close | セッションを閉じる |
exit | 全てのセッションを閉じプログラムを終了する |
get | リモートからローカルにファイルをダウンロード |
help | ヘルプを表示 |
keepuptodate | ローカルディレクトリの変更をリモートに反映 |
lcd | ローカルディレクトリを変更 |
lls | ローカルディレクトリの内容を表示 |
ln | リモートにシンボリックリンクを作成 |
lpwd | ローカルディレクトリの表示 |
ls | リモートディレクトリの内容を表示 |
mkdir | リモートディレクトリを作成 |
mv | リモートファイルを削除または名前変更 |
open | サーバに接続 |
option | スクリプトオプションの値を設定/表示 |
put | ローカルからリモートにファイルをアップロード |
pwd | リモートディレクトリの表示 |
rm | リモートファイルを削除 |
rmdir | リモートディレクトリを削除 |
session | 接続しているセッションの表示またはアクティブなセッションの選択 |
synchronize | リモートとローカルのディレクトリを同期 |
また、スクリプトファイルを指定することによって、あらかじめ決められたルーチンを実行することも可能。
リモートホストへアップロード
例えば、単純にサーバへ対してファイルをアップロードしたい場合
まずは以下のようなスクリプトを作成
upload.script
open hoge:hogehoge@192.168.0.99 put "C:\hoge.txt" /home/hoge/data/hoge.txt close exit
スクリプトを作ったら以下のようにSCPコマンドを実行
>winscp /script=97Server.script
これで「hoge.txt」が192.168.0.99サーバの「/home/hoge/data/」以下にアップロードされます。
同期を取る
synchronizeを使えばリモートのフォルダ内容をローカルへ同期、ローカルのフォルダ内容をリモートへ同期。なんてこともできます。
リモートのフォルダ内容をローカルへ同期
スクリプトファイル例
open hoge:hogehoge@192.168.0.97 cd /home/hoge/data lcd "C:\data" synchronize remote close exit
ローカルのフォルダ内容をリモートへ同期
スクリプトファイル例
open hoge:hogehoge@192.168.0.97 cd /home/hoge/data lcd "C:\data" synchronize local close exit
その他
Portable executable形式(インストールしなくて実行できるやつ)でやる場合は、どうもコマンドラインから対話形式で実行できないようです。