亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: Shell備份交換機(jī)配置,文檔! [打印本頁(yè)]

作者: kingsh2012    時(shí)間: 2014-05-10 11:38
標(biāo)題: Shell備份交換機(jī)配置,文檔!
本帖最后由 kingsh2012 于 2014-05-11 18:43 編輯

感謝http://blog.chinaunix.net/uid-20569113-id-2793105.html

感謝shell板塊里面的大神們幫助,有什么問(wèn)題,和好的建議幫忙提出,謝謝。

需求介紹

本人管理校園網(wǎng),當(dāng)學(xué)校大規(guī)模停電在來(lái)電的時(shí)候,有很多交換機(jī)會(huì)掛掉,還得從新配置交換機(jī),特殊的端口,如一卡通,水電管理都是通過(guò)網(wǎng)絡(luò)傳輸數(shù)據(jù),當(dāng)網(wǎng)線和端口插錯(cuò)就很麻煩,所以寫了個(gè)腳本來(lái)備份這些交換機(jī)配置。
400多臺(tái)交換機(jī),多種型號(hào)。

目錄結(jié)構(gòu)

switch/
├─check/
│     cfgfile.sh 讀取成功上傳配置的IP地址
│     source.sh  讀取switch.conf的IP地址
├─errlog/
│  沒有上傳配置的交換機(jī)生成日志
├─log/
│  整個(gè)備份的過(guò)程生成日志

│ info.sh       查看備份狀況程序
│ run.sh        主備份程序
│ switch.conf   存放IP地址,用戶名,密碼,配置文件名稱

run.sh

  1. #!/bin/bash

  2. ################################################################################
  3. ##########

  4. #TFTP Server Size
  5. TFTP_IP=10.110.0.222

  6. #Switch Config File (user,password,ip)
  7. Switch_conf=switch.conf

  8. #Now date
  9. Daliy="$(date +%Y-%m-%d)"

  10. ################################################################################
  11. #########

  12. while read SW_INFO; do

  13.   FACTORY=`echo $SW_INFO | awk -F"," '{print $1}'`

  14.   SW_IP=`echo $SW_INFO | awk -F"," '{print $2}'`

  15.   TELNET_NAME=`echo $SW_INFO | awk -F"," '{print $3}'`

  16.   TELNET_PASSWD=`echo $SW_INFO | awk -F"," '{print $4}'`

  17.   SWITCH_CONF=`echo $SW_INFO | awk -F"," '{print $5}'`

  18.   (
  19.     #銳捷交換機(jī)
  20.     if [ "$FACTORY" = "rj" ];then
  21. expect<<EOF
  22.       spawn telnet $SW_IP

  23.       expect "Username:"
  24.       send "$TELNET_NAME\r"

  25.       expect "Password:"
  26.       send "$TELNET_PASSWD\r"

  27.       send "copy running-config startup-config\r"
  28.       send "copy startup-config tftp:\r"
  29.       send "$TFTP_IP\r"
  30.       send "$SW_IP.txt\r"
  31.       send "! ##############################################################\r"
  32.       send "exit\r"
  33.       expect eof
  34. EOF
  35.     fi

  36.     #6506
  37.     if [ "$FACTORY" = "6506" ];then
  38. expect<<EOF
  39.       spawn telnet $SW_IP

  40.       expect "Password:"
  41.       send "$TELNET_NAME\r"

  42.       expect "*>"
  43.       send "enable\r"

  44.       expect "Password:"
  45.       send "$TELNET_PASSWD\r"

  46.       send "copy running-config startup-config\r"
  47.       send "copy startup-config tftp:\r"
  48.       send "$TFTP_IP\r"
  49.       send "$SW_IP.txt\r"
  50.       send "! ##############################################################\r"
  51.       send "exit\r"
  52.       expect eof
  53. EOF
  54.    fi

  55.     #華為交換機(jī)
  56.     if [ "$FACTORY" = "hw" ];then
  57. expect<<EOF
  58.       spawn telnet $SW_IP
  59.       expect "Password:"
  60.       send "$TELNET_PASSWD\r"
  61.       send "tftp ${TFTP_IP} put ${SWITCH_CONF} ${SW_IP}.zip\n\r"
  62.       exec sleep 1
  63.       send "# ############################################################\n\r"
  64.       send "quit\n\r"
  65.       expect eof
  66. EOF
  67.     fi

  68.     #h3c交換機(jī)
  69.     if [ "$FACTORY" = "h3c" ];then
  70. expect<<EOF
  71.       spawn telnet $SW_IP
  72.       expect "Password:"
  73.       send "$TELNET_PASSWD\r"
  74.       send "tftp ${TFTP_IP} put ${SWITCH_CONF} ${SW_IP}.cfg\r";
  75.       send "! ##############################################################\r"
  76.       send "quit\r"
  77.       expect eof
  78. EOF
  79.     fi

  80.     #華為2126型號(hào)交換機(jī)
  81.     if [ "$FACTORY" = "hw2126" ];then
  82. expect<<EOF
  83.       spawn telnet $SW_IP
  84.       expect "Password:"
  85.       send "$TELNET_PASSWD\r"
  86.       send "sys\r"
  87.       send "tftp put ${SWITCH_CONF} //${TFTP_IP}/${SW_IP}.cfg\r";
  88.       send "! ##############################################################\r"
  89.       send "quit\r"
  90.       send "quit\r"
  91.       expect eof
  92. EOF
  93.     fi

  94.     #凱創(chuàng)交換機(jī)
  95.     if [ "$FACTORY" = "kc" ];then
  96.       echo "ERROR!!!!"
  97. #expect<<EOF
  98. #      spawn telnet $SW_IP
  99. #      expect "Username:"
  100. #      send "$TELNET_NAME\r"
  101. #      expect "Password:"
  102. #      send "$TELNET_PASSWD\r"

  103. #EOF
  104.     fi
  105.   )|tee -a ./log/switch_backup_$Daliy.log
  106. done <  $Switch_conf
  107. exit 0
復(fù)制代碼
  info.sh

  1. #!/bin/bash
  2. #工作目錄
  3. cd /opt/switch/check/

  4. #當(dāng)前時(shí)間
  5. Daliy="$(date +%Y-%m-%d)"

  6. ./source.sh > 1.txt
  7. ./cfgfile.sh > 2.txt

  8. sort -n 1.txt > 3.txt
  9. sort -n 2.txt > 4.txt


  10. #成功備份數(shù)
  11. cd /opt/Switch_config_file
  12. echo "##########################################################"
  13. echo "總共交換機(jī)數(shù)"
  14. awk 'END{print NR}' /opt/switch/switch.conf

  15. echo "成功備份交換機(jī)數(shù)"
  16. #ll  |grep "^-" | wc -l 其實(shí)應(yīng)該用這個(gè)命令查看文件下的文件數(shù)
  17. find ./ -type f | wc -l
  18. echo "##########################################################"

  19. #文件對(duì)比
  20. cd /opt/switch/check
  21. echo "備份失敗的交換機(jī)!"
  22. comm -3 3.txt 4.txt > /opt/switch/errlog/err_$Daliy.log
  23. comm -3 3.txt 4.txt
  24. echo "##########################################################"

  25. #刪除.txt文件
  26. rm -rf *.txt
復(fù)制代碼
cfgfile.sh

  1. #!/bin/bash
  2. #讀取TFTP文件夾內(nèi)的文件
  3. Folder_A="/opt/Switch_config_file"
  4. for file_a in ${Folder_A}/*; do
  5.     temp_file=`basename ${file_a%.*}`
  6.     echo $temp_file
  7. done
復(fù)制代碼
source.sh

  1. #/bin/bash
  2. #工作目錄
  3. #cd /opt/switch/
  4. file="/opt/switch/switch.conf"
  5. #執(zhí)行目錄
  6. while read SW_INFO; do
  7. SW_IP=`echo $SW_INFO | awk -F"," '{print $2}'`
  8. (
  9.   echo $SW_IP
  10. )
  11. done < $file
復(fù)制代碼

作者: rdcwayx    時(shí)間: 2014-05-10 18:46
謝謝分享
作者: blackold    時(shí)間: 2014-05-10 23:07
回復(fù) 1# kingsh2012


    好文!
作者: haokoo    時(shí)間: 2014-05-11 01:30
很不錯(cuò)的貼,mark一下,日常運(yùn)維說(shuō)不定需要用到。

作者: haokoo    時(shí)間: 2014-05-11 01:30
很不錯(cuò)的貼,mark一下,日常運(yùn)維說(shuō)不定需要用到。

作者: blackold    時(shí)間: 2014-05-11 08:46
回復(fù) 1# kingsh2012


    誤寫? 有兩個(gè)"cfgfile.sh", 其中一個(gè)應(yīng)該是 "source.sh" 吧。
作者: kingsh2012    時(shí)間: 2014-05-11 10:20
回復(fù) 6# blackold


    謝謝,馬虎了,已經(jīng)修改了。
作者: yscisco    時(shí)間: 2014-12-16 13:42
不錯(cuò),正好想怎么實(shí)現(xiàn)自動(dòng)備份交換機(jī)配置,有值得借鑒的地方。
作者: 191531837    時(shí)間: 2015-09-21 16:05
學(xué)習(xí)·······················
作者: 聆雨淋夜    時(shí)間: 2015-09-22 14:25
那個(gè)run.sh可以優(yōu)化下,將if判斷改為case語(yǔ)句,將expect部分放到函數(shù)里,然后用位置參數(shù)傳遞變量,愚見。
作者: expert1    時(shí)間: 2015-09-22 16:31
回復(fù) 1# kingsh2012


    問(wèn)下,copy running-config tftp這個(gè)必須要通過(guò)telnet或者console才能做吧?ssh之類的做不了吧? 謝謝!寫的不錯(cuò)。
作者: reb00t    時(shí)間: 2015-09-23 09:25
回復(fù) 11# expert1


    ssh可以,,telnet跟ssh都是遠(yuǎn)程登錄,ssh的數(shù)據(jù)包是加密的,telnet是明文的,可以被抓包獲取你登錄服務(wù)器的ip,跟密碼。~

建議交換機(jī)都采用ssh通信登錄。。
作者: bxj1979hack    時(shí)間: 2018-05-26 00:11
是哪里抄來(lái)的吧,根本無(wú)法正常執(zhí)行
作者: bxj1979hack    時(shí)間: 2018-05-26 00:11
是哪里抄來(lái)的吧,根本無(wú)法正常執(zhí)行
作者: bxj1979hack    時(shí)間: 2018-05-26 00:11
是哪里抄來(lái)的吧,根本無(wú)法正常執(zhí)行




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2