アキはフリーランスのプログラマーです >> Java >> Ant

このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース

scp task



scpを使いますとsshを使った。安全なファイルのやり取りができます。

標準的なFTPと比べますと、アカウント情報の暗号化および、データーの暗号化されています。

ただしこれを使うには、基本的にサーバー側にsshdが稼動していることが前提です

sshの導入に関してはgoogleにてsshで検索すると有益な情報が多数見つかるでしょう。


scpでWebの更新にも使えなくもないです。


scpタスクはオプショナルタスクですのでJavaによるssh2の実装 別途Jschが必要となります。

Jschはここから入手できます。


使用例


ローカルのファイルをリモートへコピー


<scp todir="${user}:${password}@${server}:${remote_dir}" trust="yes">
    <fileset dir="${local_dir}">
    </fileset>
</scp>

リモートのファイルをローカルへコピー

<scp file="${user}:${password}@${server}:${remote_dir}" todir="${local_dir}" trust="yes"/>


属性について

パスワード等の記述には最新の注意をしてください。

file


コピーするファイルを記入します。

ローカルからリモートへコピーする場合

filesetエレメントで代用できます。

リモートからローカルへの場合は

ここにユーザー名:パスワード@サーバーホスト名:サーバー側ディレクトリー位置

を記入します。

パスワードは省略可能です。

その場合ユーザー名@サーバーホスト名:サーバー側ディレクトリー位置

となります。



todir

ローカルからリモートへコピーする場合

ここにユーザー名:パスワード@サーバーホスト名:サーバー側ディレクトリー位置

を記入します。

リモートからローカルへコピーする場合

ローカルのパスを記入します。



trust


これをyesでない場合known hostsファイルが必要になる。

このファイルパスをknownhosts属性で指定する。



port


ssh接続で使うport番号です。defaultは22番です。



knownhosts


trustをnoにしたときに必要となるファイルのパスを指定します。

デフォルトのパスは${user.home}/.ssh/known_hosts.となっています。

このファイルはssh2形式?です。



failonerror


エラーが出た場合、Taskの実行をここで終了するかどうか

defaultはtrueとなっています。



password

パスワードを記入します。todirやfileに直接記述することも可能です。


keyfile#text


キーを使った認証をする場合PrivateKeyのパスを記入します。


passphrase

キーを使った場合に必要となるパスワードを記入します。


エラーメッセージ例

com.jcraft.jsch.JSchException: reject HostKey

trustをyesにせず、knownhostsも指定しなかった場合

com.jcraft.jsch.JSchException: Auth fail

ユーザー名やパスワードが間違っている場合

neither password nor passphrase for user admin has been given. Can't authenticate.


パスワードがどこにも記入されておらず、keyfileも指定されていない場合


このエントリーを含むはてなブックマーク このエントリーを含むECナビ人気ニュース