ラベル GanymedSSH2_OrionSSH2 の投稿を表示しています。 すべての投稿を表示
ラベル GanymedSSH2_OrionSSH2 の投稿を表示しています。 すべての投稿を表示

2014年11月24日月曜日

groovyでGanymed SSH-2を使用する方法のまとめ

groovyでGanymed SSH-2を使用する方法のまとめ
○コマンド実行
○ファイルの列挙・アップロード・ダウンロード
○ディレクトリ操作
○その他のファイル操作

groovyとGanymed SSH-2で秘密鍵を使用してログインする

groovyとGanymed SSH-2で秘密鍵を使用してログインするには、以下のコードを実行します。

サンプルコード
@Grab(group='ch.ethz.ganymed', module='ganymed-ssh2', version='262')
import ch.ethz.ssh2.*

host = "your-linux-box"
username = "user"
// puttygenを使用している場合は、Conversions -> Export OpenSSH keyを選択する
privateKey = "openssh_private_key"  

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPublicKey(username, new File(privateKey), null) ){
  throw new Exception("authentication failed.")
}

// コマンド実行
sess = conn.openSession()
sess.execCommand("""ls -alF""")
// 標準出力
stdout = new BufferedReader(new InputStreamReader(
  new StreamGobbler(sess.getStdout()), "UTF-8"))
stdout.withCloseable{
  it.eachLine { line ->
    println line
  }
}
// 標準エラー出力
stderr = new BufferedReader(new InputStreamReader(
  new StreamGobbler(sess.getStderr()), "UTF-8"))
stderr.withCloseable{
  it.eachLine { line ->
    println line
  }
}
sess.close()
conn.close()

○関連項目

groovyとGanymed SSH2でlinuxのディストリビューションとバージョンを取得する

groovyとGanymed SSH2でlinuxのディストリビューションとバージョンを取得するには、以下のコードを実行します。

サンプルコード
@Grab(group='ch.ethz.ganymed', module='ganymed-ssh2', version='262')
import ch.ethz.ssh2.*

host = "your-linux-box"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
  throw new Exception("authentication failed.")
}

sess = conn.openSession()
sess.execCommand("""lsb_release -ir""")
def result = [:]
// 標準出力
stdout = new BufferedReader(new InputStreamReader(
  new StreamGobbler(sess.getStdout()), "UTF-8"))
stdout.withCloseable{
  it.eachLine { line ->
    result.put( line.split(":")[0], line.split(":")[1].trim() )
  }
}
// 標準エラー出力
stderr = new BufferedReader(new InputStreamReader(
  new StreamGobbler(sess.getStderr()), "UTF-8"))
stderr.withCloseable{
  it.eachLine { line ->
    println line
  }
}
println result

sess.close()
conn.close()

○関連項目

2010年6月15日火曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルを移動・リネームする

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルを移動・リネームするには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ファイルを移動・リネーム
sftpc.mv("SF.JPG", "SF2.JPG")

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月14日月曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルのフルパスを表示する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルのフルパスを表示するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ファイルのフルパスを表示
println sftpc.canonicalPath("SF.JPG")

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月13日日曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでシンボリックリンクのターゲットを表示する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでシンボリックリンクのターゲットを表示するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// シンボリックリンクのターゲットを表示
println sftpc.readLink("symlink.jpg")

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月12日土曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでディレクトリを削除する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでディレクトリを削除するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ディレクトリを削除する
sftpc.rmdir("test")

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月11日金曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでディレクトリを作成する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでディレクトリを作成するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ディレクトリを作成する
sftpc.mkdir("test", 0x0777)

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月10日木曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイル情報を取得する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイル情報を取得するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ファイルの情報を取得する
fa = sftpc.lstat("SF.JPG")
println "ATIME:" + new Date(fa.atime * 1000)
println "MTIME:" + new Date(fa.mtime * 1000)
println "GID:" + fa.gid
println "UID:" + fa.uid
println "permissions:" + fa.getOctalPermissions()
println "size:" + fa.size

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月9日水曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでシンボリックリンクを作成する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでシンボリックリンクを作成するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// シンボリックリンクを作成
sftpc.createSymlink("symlink.jpg", "SF.JPG")

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年6月8日火曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルをダウンロードする

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルをダウンロードするには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ファイルをダウンロード
fh = sftpc.openFileRO("SF.JPG")
bos = new BufferedOutputStream(new FileOutputStream("download.JPG"))
buf = new byte[1024]
long fo = 0
while((sz = sftpc.read(fh, fo, buf, 0, 1024)) != -1){
bos.write(buf, 0, sz)
fo += sz
}
sftpc.closeFile(fh)
bos.flush()
bos.close()

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年5月23日日曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルをアップロードする

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルをアップロードするには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ファイルをアップロード
fh = sftpc.createFile("SF.JPG")
bis = new BufferedInputStream(new FileInputStream("SF.JPG"))
buf = new byte[1024]
long fo = 0
while((sz = bis.read(buf, 0, 1024)) != -1){
sftpc.write(fh, fo, buf, 0, sz)
fo += sz
}
sftpc.closeFile(fh)

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年5月13日木曜日

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルを列挙する

groovyとGanymed SSH-2/Orion SSH2を使用してSFTPでファイルを列挙するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// SFTP client作成
sftpc = new SFTPv3Client(conn)
sftpc.setCharset("UTF-8")

// ファイル列挙
for(de in sftpc.ls(".")){
println de.filename
}

sftpc.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目

2010年5月3日月曜日

groovyとGanymed SSH-2/Orion SSH2でコマンドを実行する

groovyとGanymed SSH-2/Orion SSH2でコマンドを実行するには、以下のコードを実行します。

// Ganymed SSH-2の場合
// (http://www.cleondris.ch/opensource/ssh2/)
//import ch.ethz.ssh2.*
// Orion SSH2の場合
// (http://sourceforge.net/apps/mediawiki/orion-ssh2/index.php?title=Main_Page)
import com.trilead.ssh2.*

host = "192.168.1.100"
username = "user"
password = "password"

// サーバに接続
conn = new Connection(host)
conn.connect()
if( !conn.authenticateWithPassword(username, password) ){
throw new Exception("authentication failed.")
}

// コマンド実行
sess = conn.openSession()
sess.execCommand("""ls -alF""")
// 標準出力
stdout = new BufferedReader(new InputStreamReader(
new StreamGobbler(sess.getStdout()), "UTF-8"))
stdout.eachLine { line ->
println line
}
// 標準エラー出力
stderr = new BufferedReader(new InputStreamReader(
new StreamGobbler(sess.getStderr()), "UTF-8"))
stderr.eachLine { line ->
println line
}

sess.close()
conn.close()


動作環境
groovy 1.7.1, JDK6 Update19, ganymed-ssh2-build250, orion-ssh2-214rc1
○関連項目