当前位置: 首页 > news >正文

旅游电子商务网站建设的流程/新闻摘抄四年级下册

旅游电子商务网站建设的流程,新闻摘抄四年级下册,手机网站开放,黄页网品种大全2021背景:需要开发一个小工具,实现ssh登录linux服务器采集cpu利用率、内存利用率等等监控功能基于jsch开发,jsch是一个ssh2的纯java实现,client代码参考了jsch的大量examples不多说话,先上code:实现关键的3个接…

背景:需要开发一个小工具,实现ssh登录linux服务器采集cpu利用率、内存利用率等等监控功能

基于jsch开发,jsch是一个ssh2的纯java实现,client代码参考了jsch的大量examples

不多说话,先上code:

实现关键的3个接口:login/logout/sendCmd,分别是登录、登出、下发命令

import com.jcraft.jsch.*;

import org.springframework.stereotype.Component;

import java.io.IOException;

import java.io.InputStream;

/**

* SSHClient based on jsch

* examples: com.wow.remoteutils.SSHClientTest

*

* Created by kisrosen on 17/1/22.

*/

@Component

public class SSHClient {

/**

* Server Host IP Address,default value is localhost

*/

private String host = "localhost";

/**

* Server SSH Port,default value is 22

*/

private Integer port = 22;

/**

* SSH Login Username

*/

private String username = "";

/**

* SSH Login Password

*/

private String password = "";

/**

* JSch

*/

private JSch jsch = null;

/**

* ssh session

*/

private Session session = null;

/**

* ssh channel

*/

private Channel channel = null;

/**

* timeout for session connection

*/

private final Integer SESSION_TIMEOUT = 30000;

/**

* timeout for channel connection

*/

private final Integer CHANNEL_TIMEOUT = 30000;

/**

* the interval for acquiring ret

*/

private final Integer CYCLE_TIME = 100;

public SSHClient() {

// initialize

jsch = new JSch();

}

public SSHClient setHost(String host) {

this.host = host;

return this;

}

public SSHClient setPort(Integer port) {

this.port = port;

return this;

}

public SSHClient setUsername(String username) {

this.username = username;

return this;

}

public SSHClient setPassword(String password) {

this.password = password;

return this;

}

/**

* login to server

*

* @param username

* @param password

*/

public void login(String username, String password) {

this.username = username;

this.password = password;

try {

if (null == session) {

session = jsch.getSession(this.username, this.host, this.port);

session.setPassword(this.password);

session.setUserInfo(new MyUserInfo());

// It must not be recommended, but if you want to skip host-key check,

// invoke following,

session.setConfig("StrictHostKeyChecking", "no");

}

session.connect(SESSION_TIMEOUT);

} catch (JSchException e) {

System.err.println(e);

this.logout();

}

}

/**

* login to server

*/

public void login() {

this.login(this.username, this.password);

}

/**

* logout of server

*/

public void logout() {

this.session.disconnect();

}

/**

* send command through the ssh session,return the ret of the channel

*

* @return

*/

public String sendCmd(String command) {

String ret = "";

// judge whether the session or channel is connected

if (!session.isConnected()) {

this.login();

}

// open channel for sending command

try {

this.channel = session.openChannel("exec");

((ChannelExec) this.channel).setCommand(command);

this.channel.connect(CHANNEL_TIMEOUT);

// no output stream

channel.setInputStream(null);

((ChannelExec) channel).setErrStream(System.err);

InputStream in = channel.getInputStream();

// acquire for ret

byte[] tmp = new byte[1024];

while (true) {

while (in.available() > 0) {

int i = in.read(tmp, 0, 1024);

if (i < 0) break;

ret = new String(tmp, 0, i);

System.out.print(ret);

}

// quit the process of waiting for ret

if (channel.isClosed()) {

if (in.available() > 0) continue;

System.out.println("exit-status: " + channel.getExitStatus());

break;

}

// wait every 100ms

try {

Thread.sleep(CYCLE_TIME);

} catch (Exception ee) {

System.err.println(ee);

}

}

} catch (JSchException e) {

e.printStackTrace();

System.err.println(e);

} catch (IOException e) {

e.printStackTrace();

System.err.println(e);

} finally {

// close channel

this.channel.disconnect();

}

return ret;

}

/**

* customized userinfo

*/

private static class MyUserInfo implements UserInfo {

@Override

public String getPassphrase() {

return null;

}

@Override

public String getPassword() {

return null;

}

@Override

public boolean promptPassword(String s) {

return false;

}

@Override

public boolean promptPassphrase(String s) {

return false;

}

@Override

public boolean promptYesNo(String s) {

return true;

}

@Override

public void showMessage(String s) {

System.out.println("showMessage:" + s);

}

}

}

调用代码:

import org.junit.After;

import org.junit.Assert;

import org.junit.Before;

import org.junit.Test;

import org.junit.runner.RunWith;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.test.context.ContextConfiguration;

import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**

* Created by kisrosen on 17/1/23.

*/

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration(locations = "classpath:CommonUtils.xml")

public class SSHClientTest {

@Autowired

private SSHClient sshClient;

@Before

public void setUp() throws Exception {

sshClient.setHost("localhost").setPort(10022).setUsername("root").setPassword("root");

sshClient.login();

}

@Test

public void sendCmd() throws Exception {

String ret = sshClient.sendCmd("pwd");

System.out.println("******************************");

System.out.println(ret);

System.out.println("******************************");

Assert.assertNotNull(ret);

Assert.assertTrue(ret.length() > 0);

ret = sshClient.sendCmd("vmstat");

System.out.println("******************************");

System.out.println(ret);

System.out.println("******************************");

Assert.assertNotNull(ret);

Assert.assertTrue(ret.length() > 0);

}

@After

public void tearDown() throws Exception {

sshClient.logout();

}

}

执行结果:

b2c928ea7d50

可以使用正则表达式匹配一些关键信息实现采集

http://www.lbrq.cn/news/939187.html

相关文章:

  • 江西省城乡住房建设厅网站/怎么做百度推广的代理
  • 夜狼seo/seo优化在线诊断
  • 网站标题就一个关键词/seo导航
  • 做水印的网站/网站搭建软件
  • 手机网站工具/有没有永久免费crm
  • 时时彩做号工具网站/域名收录提交入口
  • 福田公司企业文化/湖南seo优化服务
  • 盗号网站怎么做/无锡seo网站管理
  • 自己做的网站访问不了/如何制定会员营销方案
  • 网吧设计公司/杭州百度首页优化
  • 传奇私服网站怎么建设/宁波网站建设团队
  • 做网站编程用什么语言好/网站发布与推广怎么写
  • 建立网站的风险/google网址直接打开
  • 重庆网站制作外包公司/网店推广网站
  • 中小企业网站建设服务公司/关键词优化软件哪家好
  • 网站建设标书范本/百度推广怎么操作
  • 黄岛网站建设公司首选/关键词优化怎么优化
  • 兴安盟建设局网站/新闻20字摘抄大全
  • 羊毛网站建设视频/今日山东新闻头条
  • 做视频网站 版权怎么解决/求购买链接
  • 政府网站建设实施方案/艺人百度指数排行榜
  • 如何自己编写一个程序/百中搜优化
  • 专业建站流程/爱网站关键词挖掘工具
  • 医疗器械网站建设策划书/百度公司排名
  • 门户网站cms系统/百度seo策略
  • 做网站服务器要用多大/网络营销与直播电商专业学什么
  • 求做图的网站/广州从化发布
  • 使用docker部署wordpress/seo站长工具是什么
  • 政府网站新媒体建设方案/网络媒体推广报价
  • 家教网站建设模板/软文代写服务
  • redis主从复制、哨兵机制底层原理
  • 商品中心—1.B端建品和C端缓存
  • URL与URI:互联网世界的“门牌号“与“身份证“
  • C++对象模型
  • 零基础 “入坑” Java--- 十四、【练习】图书小系统
  • 详解力扣高频SQL50题之1193. 每月交易 I【简单】