<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)  編輯  收藏

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


    網站導航:
     
    主站蜘蛛池模板: 国产精品亚洲色婷婷99久久精品| 一本久久A久久免费精品不卡| 国外亚洲成AV人片在线观看| 亚洲国产美女精品久久| 亚洲国产午夜中文字幕精品黄网站| aa级一级天堂片免费观看| 鲁丝片一区二区三区免费| 新最免费影视大全在线播放| 亚洲最大的成人网| 久久久久久亚洲AV无码专区| 亚洲人成在线播放网站| 免费无码中文字幕A级毛片| 9久热精品免费观看视频| 亚洲成a人片毛片在线| 亚洲一二成人精品区| 亚洲色偷偷偷鲁综合| 国产偷窥女洗浴在线观看亚洲| 国产zzjjzzjj视频全免费| 午夜精品在线免费观看| 成人片黄网站A毛片免费| 国产va免费精品观看精品| 最近2019年免费中文字幕高清| 亚洲精品视频免费| 成年在线网站免费观看无广告| 国产午夜亚洲精品| 亚洲男人的天堂在线| 亚洲色图.com| 亚洲综合男人的天堂色婷婷| 亚洲αv久久久噜噜噜噜噜| 午夜影视日本亚洲欧洲精品一区| 亚洲va无码va在线va天堂| 亚洲产国偷V产偷V自拍色戒| 亚洲AV无码一区东京热| 亚洲国产成人久久精品影视| 久久亚洲AV无码精品色午夜麻| 亚洲狠狠综合久久| 亚洲成在人线电影天堂色| 亚洲香蕉久久一区二区三区四区| 亚洲AV男人的天堂在线观看| 亚洲爆乳精品无码一区二区| 美女被免费视频网站a|