java远程执行linux命令

摘要:
import ch.ethz.ssh2.StreamGobler;ls//打印屏幕上的所有文本InputStream is=new StreamGobler(ssh.getStout());

如何实现JAVA远程操控linux服务器,代码如下:

 

Java代码  收藏代码
  1. package hb.linux;  
  2.   
  3. import java.io.BufferedReader;  
  4. import java.io.IOException;  
  5. import java.io.InputStream;  
  6. import java.io.InputStreamReader;  
  7.   
  8. import ch.ethz.ssh2.Connection;  
  9. import ch.ethz.ssh2.Session;  
  10. import ch.ethz.ssh2.StreamGobbler;  
  11.   
  12. public class TestCtrCommond {  
  13.   
  14.     public static void main(String[] args) {  
  15.           
  16.         String hostname = "129.17.17.20";  
  17.         String username = "weblogic";  
  18.         String password = "weblogic";  
  19.         //指明连接主机的IP地址  
  20.         Connection conn = new Connection(hostname);  
  21.         Session ssh = null;  
  22.         try {  
  23.             //连接到主机  
  24.             conn.connect();  
  25.             //使用用户名和密码校验  
  26.             boolean isconn = conn.authenticateWithPassword(username, password);  
  27.             if(!isconn){  
  28.                 System.out.println("用户名称或者是密码不正确");  
  29.             }else{  
  30.                 System.out.println("已经连接OK");  
  31.                 ssh = conn.openSession();  
  32.                 //使用多个命令用分号隔开  
  33. //              ssh.execCommand("pwd;cd /tmp;mkdir hb;ls;ps -ef|grep weblogic");  
  34.                 ssh.execCommand("cd /app/weblogic/Oracle/Middleware/user_projects/domains/base_domain;./startWebLogic.sh &");  
  35.                 //只允许使用一行命令,即ssh对象只能使用一次execCommand这个方法,多次使用则会出现异常  
  36. //              ssh.execCommand("mkdir hb");  
  37.                 //将屏幕上的文字全部打印出来  
  38.                 InputStream  is = new StreamGobbler(ssh.getStdout());  
  39.                 BufferedReader brs = new BufferedReader(new InputStreamReader(is));  
  40.                 while(true){  
  41.                     String line = brs.readLine();  
  42.                     if(line==null){  
  43.                         break;  
  44.                     }  
  45.                     System.out.println(line);  
  46.                 }  
  47.                   
  48.             }  
  49.             //连接的Session和Connection对象都需要关闭  
  50.             ssh.close();  
  51.             conn.close();  
  52.               
  53.         } catch (IOException e) {  
  54.             // TODO Auto-generated catch block  
  55.             e.printStackTrace();  
  56.         }  
  57.           
  58.     }  
  59.   
  60. }  

 

远程连接的SSH使用的jar包:ganymed-ssh2-build210.jar


免责声明:文章转载自《java远程执行linux命令》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇PHP加密方法-用Zend Encoder加密PHP文件和PHP 优化配置(PHP文件加密)Ubuntu下SVN服务器安装和配置下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

类型信息

一、Class对象 在Object类中定义了以下的方法,此方法将被所有子类继承: public final Class getClass() @Test public void test3() { Person person = new Person(); Class clazz = person.getC...

ubuntu 修改用户名和密码

注意: 如果密码和用户名都要修改的话,请先修改密码,重启后,再修改用户名,重启。如果先修改用户名,再修改密码的话,可能会导致你登陆不了ubuntu。 Ubuntu是一个Linux操作系统,修改密码和用户名是有危险的动作,请谨慎修改。 修改密码步骤: 1. 进入Ubuntu,打开终端,输入sudo su 转为root 用户。注意必须先转为root用户!!!...

Java多线程-Object.wait()

  sleep()和yield()方法,不会释放锁,而wait()方法会释放当前线程的锁,所以,wait()方法必须是在同步代码块中调用。 应用场景   多个线程合作执行某项任务的时候,有线程A和线程B,它们使用同一对象锁,同一时间它们只有其中之一可以运行,另外一个线程处于等待状态。如下事件图表所示   线程A和线程B使用同一个把锁   线程A工作时,...

[原译]AVALONDOCK 2.0入门指南第一部分

AvalonDock 2.0可以用来为WPF创建一个类似Visual Studio的界面,深入理解如何使用AvalonDock进行开发是很重要的。 在这个入门指南里,我将演示如何开始使用AvalonDock,下面的文章都是基于2.0版本的。并且不能用于早期的版本。 AvalonDock是一个组合的布局模型,很多的控件都在视图上显示,一个DockingMan...

C#基础知识——类的继承

  继承是C#的三大特性之一,它实现了多态性和代码复用   我们可能会在一些类中,写一些重复的成员,我们可以将这些重复的成员,单独的封装到一个类中,作为这些类的父类。   Student、Teacher、Driver    子类 派生类  Person                  父类 基类 1.  子类继承了父类,那么子类从父类那里继承过来了什么?...

CString用法总结

  概述:CString是MFC中提供的用于处理字符串的类,是一种很有用的数据类型。   它很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作时方便了很多。   不管怎样,使用CString有很多的特殊技巧,特别对于纯C背景下走出来的程序员来说有点难以学习。 一、前言   CString位于头文件afx.h中,这篇文章就来讨论这些技巧。   参考...