Windows 上の scp を使って,簡単にファイルを送る
例えば,ある決まったディレクトリに定期的にファイルを scp する必要がある,
つまりサイトの更新などでファイルを一定のディレクトリに scp する場合に
WinSCP とか使っていちいち GUI でやるのが面倒な人むけ.
- まず,PuTTY のサイトから PSCP を落としてくる
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
適当なディレクトリに,pscp.exe を展開しておく.
- バッチファイル (scp.bat)
@echo off
set pscp=c:\putty\pscp.exe
set user=username
set host=example.com
set dir=/home/username
:target
if ""%1""=="""" goto scp
set args=%args% %1
shift
goto target
:scp
%pscp% -l %user% %args% %host%:%dir%
pscp のパス,ユーザ名,ホスト名,対象となるディレクトリ名を記入して保存する.
- 実行
scp したいファイルをバッチファイルに,ドロップする.
パスフレーズを求めるプロンプトがでるので,パスフレーズを入れると scp 開始.
「送る」に入れておいてもいい.
- コマンドプロンプトが閉じてしまうのがいやだ
このままだと scp が終わったときにコマンドプロンプトが閉じてしまうので,
これがいやな場合は,上記バッチファイルの最終行を以下のように修正する
cmd /K %pscp% -l %user% %args% %host%:%dir%
- パスフレーズをいちいち打ち込むのが面倒
-pw オプションをつけることで解決できますが,危ないので全くお勧めしません.
%pscp% -l %user% -pw passphrase %args% %host%:%dir%
- ちなみに UNIX 上ではというと
csh/tcsh の場合は,以下のように alias を作っておくだけで OK.
alias scpfoo 'scp !\* user@host:/path/to'
bash/zsh の場合は,function とか作れば OK な気がする.