<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    176142998

      BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
      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 {

      // 防火墻中高級的網絡連接設置的本地連接取消選擇
      // 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<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 {

     /**
      * 上傳升級問價到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<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;
     }
     
     /**
      * 下載升級程序和文件
      */
     @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;
     }
     
     /**
      * 服務器開啟和關閉
      */
     @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<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);
      
      // 需要執行的sql語句
      TreeMap<Integer, String> map = new TreeMap<Integer, String>();
      //執行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<Integer, String> map = new TreeMap<Integer, String>();
      //執行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();
     }
    }

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

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 亚洲欧洲精品久久| 亚洲国产成人久久精品软件| 国产亚洲蜜芽精品久久| 羞羞视频免费网站入口| 大陆一级毛片免费视频观看i| 亚洲天堂一区在线| 国内精自视频品线六区免费| 亚洲一区二区三区国产精品无码| 亚洲成人免费网址| 亚洲一区二区久久| 免费无遮挡无码视频网站| 亚洲欧美日韩自偷自拍| 国产大片线上免费看| 粉色视频成年免费人15次| 免费一看一级毛片人| 亚洲免费日韩无码系列| 亚洲VA成无码人在线观看天堂 | 色播精品免费小视频| 亚洲国产一区在线观看| 四虎国产精品免费久久| 亚洲AV一宅男色影视| 777成影片免费观看| 在线a亚洲v天堂网2019无码| 国产在线精品免费aaa片| 亚洲国产精品一区二区第一页免 | 9久热这里只有精品免费| 国产亚洲成AV人片在线观黄桃| 精品国产_亚洲人成在线| 国产成人99久久亚洲综合精品| 最近2019中文免费字幕在线观看| 亚洲啪啪免费视频| 免费一级特黄特色大片在线| 免费成人高清在线视频| 亚洲自国产拍揄拍| 亚洲中文字幕无码爆乳av中文 | 成人爽a毛片免费| 亚洲免费在线观看视频| 亚洲成av人片在线观看天堂无码| 最新国产乱人伦偷精品免费网站 | 激情小说亚洲图片| 亚洲第一福利视频|