scp(Secure Copy)は、昔Unixで使われていたrcp(Remote Copy)の代替で、ファイルを安全に送受信するためのプロトコルです。
Tera Termマクロでscpを使うことにより、簡単で安全にファイルの送受信を行うことができるようになります。
scpでファイルを送信する
scpでローカルファイルをリモートホストへ送信するためには、まず最初にsshでログインする必要があります。ログイン後、scpsendコマンドでローカルファイルをリモートホストへ送信します。
ローカルファイル名
リモートホストへ送信するローカルファイル名を相対パスで指定すると、Tera Termがインストールされているディレクトリからの相対パスになります。
scpsendを使う時は、絶対パスで指定した方が良いかも知れません。
※後述するchangedirは使えません。
リモートファイル名
リモートホストで保存されるファイル名は省略することができます。また、ファイル名でなくフォルダ名でも指定できます。
リモートファイル名を省略した場合は、ログインしたユーザーのホームディレクトリにファイルが送信されます。
以下の例では、hoge.ttlがリモートホストの/tmp/hoge.ttlに保存されます。
connect '192.168.2.9:22 /ssh /2 /auth=password /user=taro /passwd=mypasswd' wait '$' scpsend 'C:¥hoge.ttl' '/tmp/'
scpでファイルを受信する
scpでファイルを受信する場合も、まず最初にsshでログインする必要があります。ログイン後、scprecvコマンドでファイルを受信します。
ローカルファイル名
リモートホストから受信してローカルで保存するファイル名は省略できます。その場合、Tera Termがインストールされているディレクトリに保存されます。
また、ローカルファイル名を相対パスで指定する場合、Tera Termがインストールされているディレクトリからの相対パスとなります。別のディレクトリからの相対パスへ変更したい場合は、changedirで変更します。
詳しくは以下の記事を参照してください。
ローカルファイル名は省略することができます。ローカルファイル名を省略した場合はTera Termがインストールされているディレクトリに保存されます。
changedireを使えば、保存されるディレクトを変更する事がができます。
注意点として、ファイル名を指定せず受信フォルダ名のみ指定するとエラーとなりますので、受信先を省略しない場合はファイル名までしっかりと指定してください。
connect '192.168.2.9:22 /ssh /2 /auth=password /user=taro /passwd=mypasswd' ;ファイル名を指定せず c:¥ に保存したければ changedir を使う changedir 'c:¥' wait '$' scprecv '/tmp/test.ttl'