176142998

            BlogJava :: 首頁(yè) :: 聯(lián)系 :: 聚合  :: 管理
            116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

          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 {

            // 防火墻中高級(jí)的網(wǎng)絡(luò)連接設(shè)置的本地連接取消選擇
            // 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);

            // 執(zhí)行命令
            if (telnetInfo.getMap() != null) {
             int a = 0;
             for (Integer id : telnetInfo.getMap().keySet()) {
              String temp = telnetInfo.getMap().get(id);
              write(temp);
              // 處理ftp登錄,不需要執(zhí)行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)) {
               // 處理編碼,界面顯示亂碼問(wèn)題
               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<Integer, String> map;

           public TreeMap<Integer, String> getMap() {
            return map;
           }

           public void setMap(TreeMap<Integer, String> 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 {

           /**
            * 上傳升級(jí)問(wèn)價(jià)到ftp服務(wù)器
            */
           @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<Integer, String> map = new TreeMap<Integer, String>();
            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;
           }
           
           /**
            * 下載升級(jí)程序和文件
            */
           @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<Integer, String> map = new TreeMap<Integer, String>();
            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;
           }
           
           /**
            * 服務(wù)器開(kāi)啟和關(guān)閉
            */
           @Override
           public boolean windowsTelnetTomcat(String stats) {
            //安裝tomcat7,使用服務(wù)來(lái)進(jìn)行啟動(dòng)和停止
            boolean reslut = false;

            TelnetInfo telnetInfo = new TelnetInfo();
            telnetInfo.setServerIp("127.0.0.1");
            telnetInfo.setServerUser("administrator");
            telnetInfo.setServerPwd("123456");
            telnetInfo.setServerPort(23);

            // 需要執(zhí)行的sql語(yǔ)句
            TreeMap<Integer, String> map = new TreeMap<Integer, String>();
            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);
            
            // 需要執(zhí)行的sql語(yǔ)句
            TreeMap<Integer, String> map = new TreeMap<Integer, String>();
            //執(zhí)行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;
            
           }
           
           
           /**
            * 執(zhí)行sql腳本和升級(jí)程序
            */
           @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);

            // 需要執(zhí)行的sql語(yǔ)句
            TreeMap<Integer, String> map = new TreeMap<Integer, String>();
            //執(zhí)行sql腳本
            map.put(1, "sqlplus appstore/appstore@appstore226");
            map.put(2, "@c:\\test\\T_RANKSWITCHTEMP.sql");
            map.put(3, "exit");
            
            //執(zhí)行升級(jí)程序
            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;
           }

           /**
            * 公共的調(diào)用執(zhí)行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;

           /**
            * 上傳升級(jí)問(wèn)價(jià)到ftp服務(wù)器
            */
           public void windowsTelnetUpLoad() {
            telnetService.windowsTelnetUpLoad();
           }

           /**
            * 下載升級(jí)程序和文件
            */
           public void windowsTelnetDownLoad() {
            telnetService.windowsTelnetDownLoad();
           }

           /**
            * 備份軟件程序
            */
           public void windowsTelnetBackUpSoftware() {
            telnetService.windowsTelnetBackUpSoftware();
           }

           /**
            * 服務(wù)關(guān)閉
            */
           public void windowsTelnetStopTomcat() {
            String stats = "stop";
            telnetService.windowsTelnetTomcat(stats);
           }

           /**
            * 執(zhí)行sql腳本和升級(jí)程序
            */
           public void windowsTelnetUpGrade() {
            telnetService.windowsTelnetUpGrade();
           }

           /**
            * 服務(wù)開(kāi)啟
            */
           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;

           /**
            * 上傳升級(jí)問(wèn)價(jià)到ftp服務(wù)器
            */
           @Test
           public void windowsTelnetUpLoad() {
            telnetController.windowsTelnetUpLoad();
           }

           /**
            * 下載升級(jí)程序和文件
            */
           @Test
           public void windowsTelnetDownLoad() {
            telnetController.windowsTelnetDownLoad();
           }

           /**
            * 備份軟件程序
            */
           @Test
           public void windowsTelnetBackUpSoftware() {
            telnetController.windowsTelnetBackUpSoftware();
           }

           /**
            * 關(guān)閉服務(wù)
            */
           @Test
           public void windowsTelnetStopTomcat() {
            telnetController.windowsTelnetStopTomcat();
           }

           /**
            * 執(zhí)行sql腳本和升級(jí)程序
            */
           @Test
           public void windowsTelnetUpGrade() {
            telnetController.windowsTelnetUpGrade();
           }

           /**
            * 啟動(dòng)服務(wù)
            */
           @Test
           public void windowsTelnetStartTomcat() {
            telnetController.windowsTelnetStartTomcat();
           }
          }

          posted on 2011-04-13 17:34 飛飛 閱讀(2586) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 花莲县| 芒康县| 鄯善县| 邵阳市| 孟津县| 平泉县| 留坝县| 宁城县| 遂溪县| 资阳市| 太保市| 容城县| 鄂伦春自治旗| 蓬溪县| 米林县| 广东省| 谷城县| 宁海县| 湖北省| 嘉定区| 曲麻莱县| 民和| 阳山县| 南汇区| 赤城县| 沙坪坝区| 曲阜市| 永清县| 仁化县| 涿州市| 寿光市| 奇台县| 深圳市| 新竹市| 斗六市| 乌拉特后旗| 淮阳县| 虞城县| 波密县| 石河子市| 海林市|