java telnet windows_java实现telnet功能,待实现windows下远程多机自动化发布软件后台代码...

package com.org.softwore.util;

import java.io.IOException;

import java.io.InputStream;

import java.io.PrintStream;

import java.net.SocketException;

import org.apache.commons.net.telnet.TelnetClient;

import com.org.softwore.domain.TelnetInfo;

public class TelnetUtil {

private TelnetClient telnet = new TelnetClient("VT220");

private InputStream in;

private PrintStream out;

private String prompt = ">";

String s;

public void TelnetCmd(TelnetInfo telnetInfo) throws SocketException,

IOException, InterruptedException {

// 防火墙中高级的网络连接设置的本地连接取消选择

// Connect to the specified server

telnet.connect(telnetInfo.getServerIp(), telnetInfo.getServerPort());

// Get input and output stream references

in = telnet.getInputStream();

out = new PrintStream(telnet.getOutputStream());

// Login telnet

readUntil("login: ");

write(telnetInfo.getServerUser());

readUntil("password: ");

write(telnetInfo.getServerPwd());

readUntil(prompt);

// 执行命令

if (telnetInfo.getMap() != null) {

int a = 0;

for (Integer id : telnetInfo.getMap().keySet()) {

String temp = telnetInfo.getMap().get(id);

write(temp);

// 处理ftp登录,不需要执行readUntil(prompt)

if (temp.startsWith("ftp")) {

a = 2;

}

if (a > 0) {

a = a - 1;

continue;

} else {

readUntil(prompt);

}

}

}

System.out.println("\n");

}

public String readUntil(String pattern) throws IOException {

char lastChar = pattern.charAt(pattern.length() - 1);

StringBuffer sb = new StringBuffer();

// boolean found = false;

char ch = (char) in.read();

while (true) {

sb.append(ch);

if (ch == lastChar) {

if (sb.toString().endsWith(pattern)) {

// 处理编码,界面显示乱码问题

byte[] temp = sb.toString().getBytes("iso8859-1");

System.out.print(new String(temp, "GBK"));

return new String(temp, "GBK");

}

}

ch = (char) in.read();

}

}

public void write(String value) throws InterruptedException {

out.println(value);

out.flush();

Thread.sleep(1000);

}

public void disconnect() throws IOException {

telnet.disconnect();

}

}

package com.org.softwore.domain;

import java.io.Serializable;

import java.util.TreeMap;

public class TelnetInfo implements Serializable {

/**

*

*/

private static final long serialVersionUID = -6592407260449335815L;

private String serverIp;

private String serverUser;

private String serverPwd;

private int serverPort;

private String ftpIp;

private String ftpUser;

private String ftpPwd;

private String ftpPort;

private TreeMap map;

public TreeMap getMap() {

return map;

}

public void setMap(TreeMap map) {

this.map = map;

}

public String getServerIp() {

return serverIp;

}

public void setServerIp(String serverIp) {

this.serverIp = serverIp;

}

public String getServerUser() {

return serverUser;

}

public void setServerUser(String serverUser) {

this.serverUser = serverUser;

}

public String getServerPwd() {

return serverPwd;

}

public void setServerPwd(String serverPwd) {

this.serverPwd = serverPwd;

}

public int getServerPort() {

return serverPort;

}

public void setServerPort(int serverPort) {

this.serverPort = serverPort;

}

public String getFtpIp() {

return ftpIp;

}

public void setFtpIp(String ftpIp) {

this.ftpIp = "ftp " + ftpIp;

}

public String getFtpUser() {

return ftpUser;

}

public void setFtpUser(String ftpUser) {

this.ftpUser = ftpUser;

}

public String getFtpPwd() {

return ftpPwd;

}

public void setFtpPwd(String ftpPwd) {

this.ftpPwd = ftpPwd;

}

public String getFtpPort() {

return ftpPort;

}

public void setFtpPort(String ftpPort) {

this.ftpPort = ftpPort;

}

}

package com.org.softwore.service;

public interface TelnetService {

public boolean windowsTelnetDownLoad();

public boolean windowsTelnetUpLoad();

public boolean windowsTelnetUpGrade();

public boolean windowsTelnetTomcat(String stats);

public boolean windowsTelnetBackUpSoftware();

}

package com.org.softwore.service.impl;

import java.io.IOException;

import java.net.SocketException;

import java.util.TreeMap;

import org.springframework.stereotype.Service;

import org.springframework.transaction.annotation.Transactional;

import com.org.softwore.domain.TelnetInfo;

import com.org.softwore.service.TelnetService;

import com.org.softwore.util.TelnetUtil;

@Transactional

@Service("telnetService")

public class TelnetServiceImpl implements TelnetService {

/**

* 上传升级问价到ftp服务器

*/

@Override

public boolean windowsTelnetUpLoad() {

boolean reslut = false;

TelnetInfo telnetInfo = new TelnetInfo();

telnetInfo.setServerIp("127.0.0.1");

telnetInfo.setServerUser("administrator");

telnetInfo.setServerPwd("123456");

telnetInfo.setServerPort(23);

TreeMap map = new TreeMap();

map.put(1, "ftp 10.39.62.45");

map.put(2, "admin");

map.put(3, "admintianyi");

map.put(4, "bin");

map.put(5, "mkdir test1");

map.put(6, "cd /test1");

map.put(7, "put c:\\upgrade\\appMarketWebApi.zip");

map.put(8, "put c:\\upgrade\\T_RANKSWITCHTEMP.sql");

map.put(9, "bye");

telnetInfo.setMap(map);

TelnetCmd(telnetInfo);

return reslut;

}

/**

* 下载升级程序和文件

*/

@Override

public boolean windowsTelnetDownLoad() {

boolean reslut = false;

TelnetInfo telnetInfo = new TelnetInfo();

//telnet

telnetInfo.setServerIp("127.0.0.1");

telnetInfo.setServerUser("administrator");

telnetInfo.setServerPwd("123456");

telnetInfo.setServerPort(23);

TreeMap map = new TreeMap();

map.put(1, "cd c:\\");

map.put(2, "rd test /s /q");

map.put(3, "mkdir test");

map.put(4, "ftp 10.39.62.45");

map.put(5, "admin");

map.put(6, "admintianyi");

map.put(7, "bin");

map.put(8, "lcd c:\\test");

map.put(9, "cd test1");

map.put(10, "get appMarketWebApi.zip");

map.put(11, "get T_RANKSWITCHTEMP.sql");

map.put(12, "bye");

telnetInfo.setMap(map);

TelnetCmd(telnetInfo);

return reslut;

}

/**

* 服务器开启和关闭

*/

@Override

public boolean windowsTelnetTomcat(String stats) {

//安装tomcat7,使用服务来进行启动和停止

boolean reslut = false;

TelnetInfo telnetInfo = new TelnetInfo();

telnetInfo.setServerIp("127.0.0.1");

telnetInfo.setServerUser("administrator");

telnetInfo.setServerPwd("123456");

telnetInfo.setServerPort(23);

// 需要执行的sql语句

TreeMap map = new TreeMap();

if(stats.equals("start")){

map.put(1, "net start Tomcat7");

}

if(stats.equals("stop")){

map.put(1, "net stop Tomcat7");

}

telnetInfo.setMap(map);

TelnetCmd(telnetInfo);

return reslut;

}

/**

* 备份软件程序

*/

@Override

public boolean windowsTelnetBackUpSoftware(){

boolean reslut = false;

TelnetInfo telnetInfo = new TelnetInfo();

telnetInfo.setServerIp("127.0.0.1");

telnetInfo.setServerUser("administrator");

telnetInfo.setServerPwd("123456");

telnetInfo.setServerPort(23);

// 需要执行的sql语句

TreeMap map = new TreeMap();

//执行sql脚本

map.put(1, "cd c:\\");

map.put(2, "rd testback /s /q");

map.put(3, "mkdir testback");

map.put(4, "cd c:\\testback");

map.put(5, "mkdir appMarketWebApi");

map.put(6, "xcopy \"c:\\Tomcat 7.0\\webapps\\appMarketWebApi\"  appMarketWebApi /s /y");

telnetInfo.setMap(map);

TelnetCmd(telnetInfo);

return reslut;

}

/**

* 执行sql脚本和升级程序

*/

@Override

public boolean windowsTelnetUpGrade() {

boolean reslut = false;

TelnetInfo telnetInfo = new TelnetInfo();

telnetInfo.setServerIp("127.0.0.1");

telnetInfo.setServerUser("administrator");

telnetInfo.setServerPwd("123456");

telnetInfo.setServerPort(23);

// 需要执行的sql语句

TreeMap map = new TreeMap();

//执行sql脚本

map.put(1, "sqlplus appstore/appstore@appstore226");

map.put(2, "@c:\\test\\T_RANKSWITCHTEMP.sql");

map.put(3, "exit");

//执行升级程序

map.put(5, "cd c:\\test");

map.put(6, "unzip appMarketWebApi.zip");

map.put(7, "xcopy appMarketWebApi \"c:\\Tomcat 7.0\\webapps\\appMarketWebApi\" /s /y");

telnetInfo.setMap(map);

TelnetCmd(telnetInfo);

return reslut;

}

/**

* 公共的调用执行telnet命令

* @param telnetInfo

* @return

*/

public boolean TelnetCmd(TelnetInfo telnetInfo) {

boolean reslut = false;

if (telnetInfo != null) {

TelnetUtil telnet = new TelnetUtil();

try {

telnet.TelnetCmd(telnetInfo);

telnet.disconnect();

reslut = true;

} catch (SocketException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

} catch (InterruptedException e) {

e.printStackTrace();

}

}

return reslut;

}

}

package com.org.softwore.controller;

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

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

import org.springframework.stereotype.Controller;

import com.org.softwore.service.TelnetService;

@Controller("telnetController")

public class TelnetController {

@Autowired

@Qualifier("telnetService")

private TelnetService telnetService;

/**

* 上传升级问价到ftp服务器

*/

public void windowsTelnetUpLoad() {

telnetService.windowsTelnetUpLoad();

}

/**

* 下载升级程序和文件

*/

public void windowsTelnetDownLoad() {

telnetService.windowsTelnetDownLoad();

}

/**

* 备份软件程序

*/

public void windowsTelnetBackUpSoftware() {

telnetService.windowsTelnetBackUpSoftware();

}

/**

* 服务关闭

*/

public void windowsTelnetStopTomcat() {

String stats = "stop";

telnetService.windowsTelnetTomcat(stats);

}

/**

* 执行sql脚本和升级程序

*/

public void windowsTelnetUpGrade() {

telnetService.windowsTelnetUpGrade();

}

/**

* 服务开启

*/

public void windowsTelnetStartTomcat() {

String stats = "start";

telnetService.windowsTelnetTomcat(stats);

}

}

package com.org.softwore.service;

import org.junit.Test;

import org.junit.runner.RunWith;

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

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

import org.springframework.test.context.ContextConfiguration;

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

import com.org.softwore.controller.TelnetController;

@RunWith(SpringJUnit4ClassRunner.class)

@ContextConfiguration( { "/applicationContext.xml" })

public class TelnetUtilTest {

@Autowired

@Qualifier("telnetController")

private TelnetController telnetController;

/**

* 上传升级问价到ftp服务器

*/

@Test

public void windowsTelnetUpLoad() {

telnetController.windowsTelnetUpLoad();

}

/**

* 下载升级程序和文件

*/

@Test

public void windowsTelnetDownLoad() {

telnetController.windowsTelnetDownLoad();

}

/**

* 备份软件程序

*/

@Test

public void windowsTelnetBackUpSoftware() {

telnetController.windowsTelnetBackUpSoftware();

}

/**

* 关闭服务

*/

@Test

public void windowsTelnetStopTomcat() {

telnetController.windowsTelnetStopTomcat();

}

/**

* 执行sql脚本和升级程序

*/

@Test

public void windowsTelnetUpGrade() {

telnetController.windowsTelnetUpGrade();

}

/**

* 启动服务

*/

@Test

public void windowsTelnetStartTomcat() {

telnetController.windowsTelnetStartTomcat();

}

}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值