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
使用ganymed-ssh2-build.jar来操作linux服务器(上传、下载文件,远程创建目录,远程删除文件等等)
最新推荐文章于 2024-01-23 19:46:48 发布
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通过智能技术生成