研究開発日誌

CG研究・開発のちょっとしたメモ書き

WinSCPのコマンドライン実行

2018-08-07 Coding

Webサイトのdeploy自動化に向けて,WinSCPのコマンドライン実行について調べたのでまとめます.

概要

WinSCPのコマンドラインオプションに基本的なコマンドラインオプションがまとめられています.

基本的なパラメータ

winscp.exe <保存したセッション名>
winscp.exe [(sftp|ftp|scp)://][ユーザー名[:パスワード]@]ホスト名[:ポート][/開くパス/[ファイル名]]
winscp.exe [mysession] /synchronize [ローカルディレクトリ] [リモートディレクトリ] [/defaults]
winscp.exe [mysession] /keepuptodate [ローカルディレクトリ] [リモートディレクトリ] [/defaults]
winscp.exe [mysession] /upload ファイル1 ファイル2 ファイル3 ... [/defaults]
winscp.exe [mysession] [/privatekey=<秘密鍵ファイル>] [/hostkey=<鍵の指紋>]
winscp.exe [mysession] [/passive] [/implicit|explicitssl|explicittls]
winscp.exe [mysession] [/timeout=<行>]
winscp.exe [/console] [/script=スクリプトファイル] [/command コマンド1 コマンド2 ...] [/parameter パラメータ1 ...]
winscp.exe /ini=<iniファイル> /log=<ログファイル>
winscp.exe /update
winscp.exe /help

この中で実際に利用を検討したのは,以下の2つです.

winscp.exe [mysession] /synchronize [ローカルディレクトリ] [リモートディレクトリ] [/defaults]
winscp.exe [mysession] /keepuptodate [ローカルディレクトリ] [リモートディレクトリ] [/defaults]

GUIによる確認Windowが開きますが,ローカルディレクトリとリモートディレクトリを指定した状態で簡単に同期することが可能です.

実行例

winscp.exe [user]@[host].sakura.ne.jp /synchronize [local_blog] /home/[host]/www/blog

自分の場合,さくらサーバーを利用していたので,セッション名を[user]@[host].sakura.ne.jpのような形で登録しています.

WinSCP側にホスト設定が登録されているので別途設定ファイルを用意しなくてもサーバーとのやり取りが可能になります.

[local_blog]/home/[host]/www/blogの調整をコマンドラインで簡単にできるので,deploy時には便利です.

scpやsftpを設定してdeploy自動化するのが本筋ですが,繰り返し作業は簡易的に自動化できるのでやってみる価値はあるかと思います.

参考文献

[1] WinSCPのコマンドラインオプション: https://ja.osdn.net/projects/winscp/wiki/commandline