使用ganymed-ssh2-build.jar来操作linux服务器(上传、下载文件,远程创建目录,远程删除文件等等)

package com.xxx.util;import java.io.BufferedReader;import java.io.InputStream;import java.io.InputStreamReader;import java.io.OutputStream;import java.util.List;import ch.ethz.ssh2.Conne
摘要由CSDN通过智能技术生成
package com.xxx.util;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.util.List;
import ch.ethz.ssh2.Connection;
import ch.ethz.ssh2.SCPClient;
import ch.ethz.ssh2.SFTPv3Client;
import ch.ethz.ssh2.Session;
import ch.ethz.ssh2.StreamGobbler;

/**
 * 远程操作linux服务器,包括连接,删除文件或者目录,创建文件或目录,修改文件等
 * @author Administrator
 *
 */
public class SSH2Util
{
	//远端服务器IP地址
    private String[] serverIp;
    
    //远端服务器登录用户名
    private String[] userName;
    
    //远端服务器登录密码
    private String[] password;
    
    //远端服务器的基准目录
    private String[] baseDir;
    
    //连接对象
    private Connection[] connection;
    
    /**
     * 默认构造函数,初始化服务IP地址,用户名,密码
     * 基准目录等实例变量
     */
    public SSH2Util()
    {
		List<String[]> retList = FileUtils.getNginxConfig();
		this.serverIp = new String[retList.size()];
		this.userName = new String[retList.size()];
		this.password = new String[retList.size()];
		this.baseDir = new String[retList.size()];
		this.connection = new Connection[retList.size()];
		for (int i = 0; i < retList.size(); i++)
		{
			String[] array = retList.get(i);
			this.serverIp[i] = array[2];
			this.userName[i] = array[0];
			this.password[i] = array[1];
			this.baseDir[i] = array[3];
		}
    }
    
    /**
     * 根据传入的参数初始化服务IP地址,用户名,密码基准目录等实例变量
     * @param serverIp
     * @param userName
     * @param password
     * @param baseDir
     */
    public SSH2Util(String[] serverIp,String[] userName,String[] password,String[] baseDir)
    {
		this.serverIp = serverIp;
		this.userName = userName;
		this.password = password;
		this.baseDir = baseDir;
		this.connection = new Connection[serverIp.length];
    }
    
    /**
     * 根据传入的参数初始化服务IP地址,用户名,密码基准目录等实例变量
     * @param serverIp
     * @param userName
     * @param password
     * @param baseDir
     */
    public SSH2Util(String serverIp,String userName,String password,String baseDir)
    {
		this.serverIp = new String[1];
		this.userName = new String[1];
		this.password = new String[1];
		this.baseDir = new String[1];
		this.connection = new Connection[1];
		this.serverIp[0] = serverIp;
		this.userName[0] = userName;
		this.password[0] = password;
		this.baseDir[0] = baseDir;
    }
    
    /**
     * 连接和认证远程Linux主机
     * @return boolean
     */
    public boolean connectAndAuth()
    {
    	boolean isConnAndAuth = false;
    	if (null != serverIp)
    	{
    		for (int i = 0; i < serverIp.length; i++)
    		{
    			connection[i] = new Connection(serverIp[i]);
    			try {
					connection[i].connect();
					isConnAndAuth = connection[i].authenticateWithPassword(userName[i],password[i]);
				} catch (Exception e) {
					System.out.println("无法连接和认证以下主机,IP:" + serverIp[i] + ",用户名:userName[i],请检查IP,用户名或者密码是否正确!");
					e.printStackTrace();
					//如果存在主机连接或者认证失败,那么设置连接是否的标识为false
					isConnAndAuth = false;
				}
			}
    	}
    	return isConnAndAuth;
    }
    
    /**
     * 上传本地文件到远程服务器端,即将本地的文件localFile上传到远程Linux服务器中的remoteTargetDirectory目录下
     * @param localFile
     * @param remoteTargetDirectory
     */
    public void uploadFile(String localFile,String remoteTargetDirectory)
    {
    	if (c
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值