java利用shh2 读取远程服务器文件/删除服务器文件

maven引入

<!-- 读取远程服务器文件-->
        <!-- shh2 -->
        <dependency>
            <groupId>ch.ethz.ganymed</groupId>
            <artifactId>ganymed-ssh2</artifactId>
            <version>262</version>
        </dependency>
        <dependency>
        <groupId>com.jcraft</groupId>
        <artifactId>jsch</artifactId>
        <version>0.1.53</version>
        </dependency>
        <dependency>
            <groupId>commons-net</groupId>
            <artifactId>commons-net</artifactId>
            <version>3.4</version>
        </dependency>

工具类代码

@Slf4j
public class SHH2Util {
    //服务器ip地址
    private final static String host="";
    //账户
    private final static String userName="";
    //密码
    private final static String passWord="";


    //指定默认编码
    private static String DEFAULT_CHARSET = "UTF-8";

    /**
     * 建立SSH2连接
     * @param host 主机地址
     * @param username 用户名
     * @param password 密码
     * @return Connection
     */
    public static Connection openConnection(String host, String username, String password) {
        try {
            Connection connection = new Connection(host);
            //建立ssh2连接
            connection.connect();
            //检验用户名
            boolean login = connection.authenticateWithPassword(username,password);
            if (login){
                return connection;
            }else {
                throw new RuntimeException(host + " 用户名密码不正确");
            }
        } catch (Exception e) {
            throw new RuntimeException(host +" "+ e);
        }
    }

    /**
     * 读取服务器文件 
     * @param fileName 路径+文件名+文件后缀
     * @return
     */
    public static String readSipFile(String filePath,String fileName){

        Connection conn = SHH2Util.openConnection(host,userName,passWord);;
        String url = null;
        try {

            //获取文件流
            SCPClient scpClient = conn.createSCPClient();
            BufferedInputStream bufferedInputStream = scpClient.get(filePath);
			
			//这里做其他操作   下载本地 上传OSS存储服务之类的
            //文件上传阿里OSS存储 
            //url = OSSUploadUtils.upload(bufferedInputStream,fileName);

        }catch (Exception e){
            e.printStackTrace();
            log.info(e.getMessage());
            log.info("读取文件失败:" + fileName);
        }finally {

            if (null != conn) {
                conn.close();
            }
        }
        return url;
    }

    /**
     * 删除服务器文件
     * @param fileName 路径+文件名+文件后缀
     * @return
     */
    public static void removeSipFile(String fileName){

        Connection conn = SHH2Util.openConnection(host,userName,passWord);

        Session session = null;
        try {
            //执行命令
            session = conn.openSession();

            //执行删除命令
            session.execCommand("rm -f "+fileName);

        }catch (Exception e){
            e.printStackTrace();
            log.info(e.getMessage());
            log.info("文件删除失败:" + fileName);
        }finally {
            if (null != session){

                session.close();
            }
            if (null != conn) {
                conn.close();
            }
        }
    }


}
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值