java使用ganymed-ssh2执行linux命令

ganymed-ssh2简介

Ganymed SSH-2 for Java是用纯Java实现SSH-2协议的一个包。可以利用它直接在Java程序中连接SSH服务器。

下载地址

使用方法

将 ganymed-ssh2-build210.jar 加入到项目的lib中即可

举例说明

获取linux服务器上某个目录的占用空间大小

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

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

public class SShUtil {

    public static String getDirSize(String path){
        String hostname = "linux服务器ip地址";
        String username = "linux用户";
        String password = "linux密码";
        String size = "";
        try {
            /* Create a connection instance */
            Connection conn = new Connection(hostname);
            /* Now connect */
            conn.connect();
            /*
             * Authenticate. If you get an IOException saying something like
             * "Authentication method password not supported by the server at this stage."
             * then please check the FAQ.
             */

            boolean isAuthenticated = conn.authenticateWithPassword(username,
                    password);

            if (isAuthenticated == false)
                throw new IOException("Authentication failed.");

            /* Create a session */

            Session sess = conn.openSession();
            sess.execCommand("du -m --max-depth=0 "+path);
            /*
             * This basic example does not handle stderr, which is sometimes
             * dangerous (please read the FAQ).
             */

            InputStream stdout = new StreamGobbler(sess.getStdout());

            BufferedReader br = new BufferedReader(new InputStreamReader(stdout));

            String line = br.readLine();

            String ss[] = line.split("\\s+");
            size = ss[0];
            /* Show exit status, if available (otherwise "null") */
            // System.out.println("ExitCode: " + sess.getExitStatus());
            /* Close this session */
            sess.close();
            /* Close the connection */
            conn.close();
        } catch (IOException e) {
            e.printStackTrace(System.err);
            System.exit(2);
        }
        return size;
    }
    public static void main(String[] args) {
        System.out.println(getDirSize("/mnt/online/resource/media"));
    }

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-10 09:37:10

java使用ganymed-ssh2执行linux命令的相关文章

Java使用ganymed工具包执行LINUX命令教程

了解更多开发技巧,请访问,架构师小跟班官网:https://www.jiagou1216.com package com.jiagou; import ch.ethz.ssh2.Connection;import ch.ethz.ssh2.Session;import ch.ethz.ssh2.StreamGobbler; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream;imp

jsch通过SSH2执行linux命令

public class SSHUtils { private Channel channel; private Session session = null; private int timeout = 60000; public SSHUtils(final String ipAddress, final String username, final String password) throws Exception { JSch jsch = new JSch(); this.sessio

Java程序执行Linux命令(JSP运行其他程序)

java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例,该实例可用来控制进程并获得相关信息.Process 类提供了执行从进程输入.执行输出到进程.等待进程完成. 检查进程的退出状态以及销毁(杀掉)进程的方法. 创建进程的方法可能无法针对某些本机平台上的特定进程很好地工作,比如,本机窗口进程,守护进程,M

Java 执行linux命令(转)

转自 http://blog.csdn.net/a19881029/article/details/8063758 java程序中要执行linux命令主要依赖2个类:Process和Runtime 首先看一下Process类: ProcessBuilder.start() 和 Runtime.exec 方法创建一个本机进程,并返回 Process 子类的一个实例, 该实例可用来控制进程并获得相关信息.Process 类提供了执行从进程输入.执行输出到进程.等待进程完成. 检查进程的退出状态以及销

Java程序执行Linux命令

java程序中要执行linux命令主要依赖2个类:Process和Runtime http://blog.csdn.net/a19881029/article/details/8063758 java连接centos服务器,并执行命令 java连接需要用到ganymed-ssh2. 将 ganymed-ssh2-build210.jar 加入到项目的lib中

java通过ssh2远程连接计算机并执行linux命令的方法(转)

java通过ch.ethz.ssh2远程连接计算机并执行linux命令的方法实现 API详情:  http://www.ganymed.ethz.ch/ssh2/javadoc/ch/ethz/ssh2/package-summary.html jar包:  ganymed-ssh2-build210.jar    下载地址: http://www.ganymed.ethz.ch/ssh2/ 代码实现: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 1

Java中通过jsch来连接远程服务器执行linux命令

有时候你可能需要通过代码来控制执行linux命令实现某些功能. 针对这类问题可以使用JSCH来实现,具体代码如下: public class CogradientImgFileManager{ private static final Logger log = LoggerFactory.getLogger(CogradientImgFileManager.class); private static ChannelExec channelExec; private static Session

java执行linux命令

public class LinuxUtils { static Logger logger = Logger.getLogger(LinuxUtils.class); public static String exeCmd(String cmd) { logger.info(cmd); String returnString = ""; Runtime runTime = Runtime.getRuntime(); Process pro = null; StringBuffer s

用python执行Linux命令

例1:在python中包装ls命令 #!/usr/bin/env python#python wapper for the ls commandimport subprocesssubprocess.call(["ls","-l"]) 在Linux中执行该命令 [[email protected] python]# python ls.pytotal 8-rwxrwxrwx 1 root root 415 Mar 18 11:40 a.py-rw-r--r-- 1 

PHP执行Linux命令行小例——文件压缩

前几天工作中,需要将3个txt文件,打包成*.zip down到本地…… 一开始,我和普通青年一样,想到用PHP内置的 ZipArchive,代码看起来应该是这样的: /*拆分成3个txt文件 分别是wow_1.txt wow_2.txt 和 wow_3.txt*/ $zip=new ZipArchive(); $zipfile='./Exl_file/wow.zip'; if($zip->open($zipfile,ZIPARCHIVE::CREATE)===TRUE){ $zip->add