Showing posts with label SSH. Show all posts
Showing posts with label SSH. Show all posts

Wednesday, September 7, 2011

SSH connectivity library

Hello again

this library has been written to help accessing Unix\ Linux servers with private key. it needs  ganymed-ssh2-build210.jar to work


package lib;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.HashMap;

import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

public class SSHLib
{
       static String sshPrivateKey;
static Connection conn = null;
static Session session = null;
       static String sshUsername;
String output ="";


       public SSHLib() throws IOException
{
init();
}
 
       private void init() throws IOException{
char privateKeyChar[] = sshPrivateKey.toCharArray();

conn = new Connection(ftpHostname,22);
conn.connect();

boolean isAuthenticated = conn.authenticateWithPublicKey(sshUsername, privateKeyChar, null);
if (isAuthenticated == false)
throw new IOException("Authentication failed.");

session = conn.openSession();
}
       
        public String excuteCMD(String cmd) throws IOException
{
session = conn.openSession();
session.execCommand(cmd);
InputStream stdout = new StreamGobbler(session.getStdout());
BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

while (true)
{

String line = br.readLine();
if (line == null)
break;
else
output+=line;
}

return output;
}

public Integer getExitStatus()
{
return session.getExitStatus();
}

        public void disconnect()
{
session.close();
conn.close();
}

        public String getSize(String ftpAccount , String path) throws IOException {

return excuteCMD("du -sh " + path + "|" + "awk '{print $1}'" );
}

        public void deleteFolder(String path) throws IOException{

excuteCMD("rm -rf " + path);
}

       public static void main(String[] args) throws IOException {

SSHLib ssh = new SSHLib();
Integer x = ssh.getExitStatus();
//System.out.println("exit status :" + x);
System.out.println(ssh.getSize(null, "/home/"));
ssh.disconnect();
}
       

}