2011年2月6日日曜日

Antの「scp」タスク

最近、Antを勉強する機会が多いのでそれ関連のネタでも。

今回は、Antタスク「scp」を試してみました。
SCPとはファイル転送を行うコマンド(Secure CoPy)であり、それが実行できるタスクとなっています。
手順を説明する前に前提を述べておくと、

  • 転送元のマシンはWindows 7、転送先のマシンはUbuntu10.04(vmwareで起動)
  • Eclipse使用(AntスクリプトをEclipse上で作成)
  • Ubuntu上でsshサーバ起動済み(vmwareのUbuntu10.04はデフォルトではsshがインストールされていないので、インストールする場合は「sudo apt-get install ssh」を実行する。

です。

1. jcraft.jar追加
Antでscpタスクを使うためには、クラスパスにjcraft.jarを追加しておく必要があります。
「ウィンドウ」→「設定」→「Ant」→「ランタイム」→「グローバル項目」と辿り、「グローバル項目」を選択した状態で、右側にある「外部 Jar 追加」ボタンを押します。jcraft.jarは以下のパスにありますので、それを選択して「開く」を教えてください。

ECLIPSE_HOME\plugins\com.jcraft.jsch_0.1.41.v200903070017.jar

注意:ECLIPSE_HOMEとはEclipse本体が置かれているフォルダのことです。
注意:ヴァージョンによって、jcraft.jarの名前が異なる可能性あります。

2. 転送するファイル作成
名前はとりあえず、sample.txtとしておきます。中身は適当に。

3. Antスクリプト作成

Antスクリプトを書きます。scpタスクの各属性は以下の通りです。
file:転送するファイル
todir:転送先。「"サーバのユーザ名":"パスワード"@"サーバのURL":"転送先のディレクトリ"」と書きます。
ひとまず転送されることだけを確認したいので、Antスクリプトは転送するファイルと同じフォルダに置きました。
あと、パスワードを直に書かないといけないのなんとかできないかねぇ・・・

3. 実行
スクリプト上で右クリックし、「実行」→「Ant 実行」を選ぶと実行されます。成功すると以下のようなメッセージがコンソールに現れます。
4. 確認
転送先にファイルがあるか確認します。ファイルはsample.txtで、場所はユーザのカレントディレクトリにあるはずです。lsコマンドで見てみると

確かにありました。
以上です。

・scpタスクの他の属性は以下が参考になるかと。
http://www.ne.jp/asahi/hishidama/home/tech/ant/tag/scp.html
・その他、ゲストOSにsshでアクセスできない場合はこちらが参考になるかな。
http://syo.cocolog-nifty.com/freely/2008/08/vmwareosssh_2278.html

0 件のコメント:

コメントを投稿