太和桥统计

机器数量统计

  cd /mnt/play/systec/Projects/Vivo_2.4X/IDC机房文档
awk -F"," '{ print $8 }' *.csv  | sort | sed '/^$/d;/^设备/d' | wc -l

6130

机柜数量统计

$ ls -tp *.csv
3-401.csv  3-403.csv  3-402.csv  1-501-app.csv  1-501.csv  1-502.csv
$ awk -F"," '{ print $9 }' *.csv |awk -F"-" '{ print $1 }' | sed -e '/^$/d;/^设备/d' | uniq | wc -l
459

机柜数量共 459 个

光纤线+RJ45网线数量

echo `cat 1-501.csv | awk -F"," '{ print $10 }' | sed '/^$/d;/^光/d' | wc -l`*2+`cat 1-501-app.csv | awk -F"," '{ print $10 }' | sed '/^$/d;/^光/d' | wc -l`*2+`cat 1-502.csv | awk -F"," '{ print $10 }' | sed '/^$/d;/^光/d' | wc -l`*2+`cat 3-401.csv | awk -F"," '{ print $10 }' | sed '/^$/d;/^光/d' | wc -l`*2+`cat 3-402.csv | awk -F"," '{ print $10 }' | sed '/^$/d;/^光/d' | wc -l`*2+`cat 3-403.csv | awk -F"," '{ print $10 }' | sed '/^$/d;/^光/d' | wc -l`*2|bc

12260

$ echo "(275*2+382*2+272*2+466*2+2145*2+2590*2)/2" | bc
6130

定位网络交换机机柜的位置

$ awk -F"," '{ print $6 }' < 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"-|_" '{ print $4,$5 }' | sort  | uniq -c  > 3-402-Vivo第一批服务器机柜-网络交换机机柜.txt

第一批1375台

计算线缆长度/数量

光纤线

 awk -F"-|_" '{if ($1==$5) {print $0,"光纤4M"} else { print $0 }}' < test2.csv

$ cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $4 }' | awk -F"-|_" '{if ($1==$5) {print $0,"光纤线4M"} else { print $0,"光纤线6M" }}'

# cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $4 }' | awk -F"-|_" '{if ($1==$5) {print $0,"光纤线4M"} else { print $0,"光纤线6M" }}' | awk -F"_| " '{ print $1,$6 }' | sort | uniq -c| awk '{ print $2,$3,$1 }' > 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt

# cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $5 }' | awk -F"-|_" '{if ($1==$5) {print $0,"光纤线4M"} else { print $0,"光纤线6M" }}' | awk -F"_| " '{ print $1,$6 }' | sort | uniq -c| awk '{ print $2,$3,$1 }' > 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt
H09 光纤线6M 16 光纤线6M 16
H10 光纤线4M 16 光纤线6M 16
H11 光纤线6M 16 光纤线4M 16
H23 光纤线6M 16 光纤线4M 16

RJ45网线

$ cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"以太网线3M"} else { print $1,"以太网线7M" }}' | uniq -c | awk '{ print $2,$3,$1 }'

H09 以太网线3M 16
H10 以太网线7M 16
H11 以太网线7M 16
H23 以太网线7M 16

汇总每一批次1375台线缆数量

   1 光纤线6M  320 + 1592 = 1912
   2 光纤线4M  160 + 678 = 838
   3 
   4 RJ45网线7M 782+160 = 942
   5 RJ45网线3M 80+353 = 433

1号楼502

以下表格打印给弱电工程师以方便布线时查阅

   1 H09   idrac网线_3M-16   光1口_6M-16   光2口_6M -16
   2 H10   idrac网线_7M-16   光1口_4M-16   光2口_6M -16
   3 H11   idrac网线_7M-16   光1口_6M-16   光2口_4M -16
   4 H12   idrac网线_3M-16   光1口_6M-16   光2口_6M -16

该机房线缆总数

echo `grep 6M 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt | awk '{a+=$3}END { print a }'`+`grep 6M 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt | awk '{a+=$3}END { print a }'` | bc -l
echo `grep 4M 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt | awk '{a+=$3}END { print a }'`+`grep 4M 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt | awk '{a+=$3}END { print a }'` | bc -l

cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"以太网线3M"} else { print $1,"以太网线7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | grep 3M | awk '{a+=$3}END { print a"根3M以太网线" }'
cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"以太网线3M"} else { print $1,"以太网线7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | grep 7M | awk '{a+=$3}END { print a"根7M以太网线" }'

3号楼402

以下表格打印给弱电工程师以方便布线时查阅

sed '0~10 s/$/ \n/g'

   1 B01  idrac网线_3M-12  光1口_6M-12  光2口_6M-12
   2 B02  idrac网线_7M-12  光1口_4M-12  光2口_6M-12
   3 B03  idrac网线_7M-12  光1口_6M-12  光2口_4M-12
   4 B04  idrac网线_7M-12  光1口_6M-12  光2口_6M-12
   5 B05  idrac网线_3M-13  光1口_6M-13  光2口_6M-13
   6 B06  idrac网线_7M-13  光1口_4M-13  光2口_6M-13
   7 
   8 F01  idrac网线_3M-16  光1口_6M-16  光2口_6M-16
   9 F02  idrac网线_7M-1  光1口_4M-1  光2口_6M-1
  10 A01  idrac网线_3M-16  光1口_6M-16  光2口_6M-16
  11 A02  idrac网线_7M-13  光1口_4M-13  光2口_6M-13

该机房线缆总数

$ join 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber*.txt | tee 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fibers.txt

echo `grep 4M 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt | awk '{a+=$3}END { print a }'`+`grep 4M 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt | awk '{a+=$3}END { print a }'` | bc -l
echo `grep 6M 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt | awk '{a+=$3}END { print a }'`+`grep 6M 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt | awk '{a+=$3}END { print a }'` | bc -l

cat 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"以太网线3M"} else { print $1,"以太网线7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | grep 7M | awk '{a+=$3}END { print a"根7M以太网线" }'
cat 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"以太网线3M"} else { print $1,"以太网线7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | grep 3M | awk '{a+=$3}END { print a"根3M以太网线" }'

678 根4M光纤线
1592根6M光纤线

782 根7M以太网线
353 根3M以太网线

定位HPSO所在的物流发货清单

查找包含502机房HPSO

for x in $(grep 502 *.csv | awk -F"," '{ print $2 }' ) ; do grep $x VIVO*.csv;done

生成机柜位置+SN+iLO信息文档

step 1

convert xlsx to csv

  egrep "7700554959|7700554723|7700554494" VIVO_-GOODS-物流总表-第一批.csv  | awk -F"," '{ print $1,$3 }'

find . -type f -name "VIVO*.xlsx" | while read f; do xlsx2csv $f $f.csv;done

$ for x in $(awk '{ print $1 }' < vivo-daily-list ) ; do grep $x VIVO*-GOODS*.csv;done |  awk -F"," '{ print $1,$3 }' | tee `date +%F`
H3CT64938961 7700554154
H3CT64938962 7700554155
H3CT64938966 7700554493

$ for i in $(awk '{ print $2 }' vivo-daily-list); do echo VIVO_*$i*.xlsx.csv; done
VIVO_7700554154(50套).xlsx.csv
VIVO_7700554155(50套).xlsx.csv
VIVO_7700554493(50套).xlsx.csv

step 2 根据物流配送表生成对应的lists

for i in $(awk '{ print $2 }' vivo-daily-list); do awk -F"," '{ print $1,$5 }' VIVO*$i*.csv | tee iLO-402_SN-"$i"_`date +%F`.txt; done

awk -F"," '{ print $1,$5 }' < VIVO_7700555611(35套).xlsx.csv > ../Ext外包文档/iLO-502_SN-lists_date +%F.txt awk -F"," '{ print $1,$5 }' < VIVO_7700555610(50套).xlsx.csv >> ../Ext外包文档/iLO-502_SN-lists_date +%F.txt

step 3 join SN+iLO+Latitude & convert txt to csv

for i in $(awk '{ print $2 }' vivo-daily-list); do awk 'NR==FNR {a[$2] = $1; next} {print $1,$2,$3,a[$2]}' iLO-402_SN-"$i"_`date +%F`.txt iLO-402-Latitudes.txt | sort -r -k3  | head -50 | sed 's/ \+/,/g' | tee iLO-402_SN-"$i"_`date +%F`.csv; done

sed -i -e '1iPosition,iLO,SN\'  iLO-402_SN-*.csv
for i in $( ls -tp *.csv | awk -F"-|_" '{ print $4 }'); do grep "$i" ../../VIVO_-GOODS-物流总表-第一批.csv | awk -F"," '{ print $1","$3","$4 }'; done

awk 'NR==FNR {a[$2] = $1; next} {print $1,$2,$3,a[$2]}' iLO-402_SN-H3CT64938962.txt iLO-402-Latitudes.txt | sort -r -k3 | head -50 | sed 's/ \+/,/g' | tee iLO-402_SN-Latitude_H3CT64938962.csv

awk 'NR==FNR {a[$2] = $1; next} {print $1,$2,$3,a[$2]}' iLO-502_SN-lists_date +%F.txt iLO-502-Latitudes.txt | sort -k3 | tee iLO-502-SN-Latitude.txt awk 'NR==FNR {a[$2] = $1; next} {print $1,$2,$3,a[$2]}' iLO-402_SN-H3CT64938961.txt iLO-402-Latitudes.txt | sort -r -k3 | head -50 | tee iLO-402_SN-Latitude_H3CT64938961.txt

合并总表

awk 'NR==FNR {a[$2] = $1; next} {print $1,$2,a[$2],$3,$4,$5,$6,$7,$8,$9,$10,$11}' iLO-502-Latitudes.txt 1-502_EMCN-FE2-Vivo_ALL-WI-V1.csv | sed 's/\x0D//g' | tee 1-502_EMCN-FE2-Vivo_ALL-WI-V1.csv.new

计算已完成上架的设备并包含序列号

 awk 'NR==FNR {a[$2] = $1; next} {print $0a[$2]}' Loaded_Servers.txt total.txt  | tee  1375第一批_total_with_SN.txt
 sed 's/\x0D//;s/ \+/,/g' < 1375第一批_total_with_SN.txt > 1375第一批_total_with_SN.csv

sort it with SN

  sort --field-separator="," -k22 1375第一批_total_with_SN.csv

第二批5603台

服务器数量统计

   1 $ wc -l csv/*.csv
   2     382 csv/JXQ酒仙桥_APP.csv
   3     281 csv/JXQ酒仙桥_服务器.csv
   4     185 csv/SZ深圳蛇口花园城机房测试项目上架规划_20170819_已校对.csv
   5     382 csv/THQ太和桥_1-501-APP.csv
   6     276 csv/THQ太和桥_1-501-服务器.csv
   7      32 csv/THQ太和桥_1-502.csv
   8     466 csv/THQ太和桥_3-401.csv
   9    1010 csv/THQ太和桥_3-402.csv
  10    2590 csv/THQ太和桥_3-403-重新校对.csv

机柜数量统计

$ wc -l ../vivo-second-labels_print/csv/*
   25 ../vivo-second-labels_print/csv/JXQ酒仙桥_APP_label.csv
   25 ../vivo-second-labels_print/csv/JXQ酒仙桥_服务器_label.csv
   15 ../vivo-second-labels_print/csv/SZ深圳蛇口花园城机房测试项目上架规划_20170819_已校对_label.csv
   25 ../vivo-second-labels_print/csv/THQ太和桥_1-501-APP_label.csv
   23 ../vivo-second-labels_print/csv/THQ太和桥_1-501-服务器_label.csv
    6 ../vivo-second-labels_print/csv/THQ太和桥_1-502_label.csv
   39 ../vivo-second-labels_print/csv/THQ太和桥_3-401_label.csv
   71 ../vivo-second-labels_print/csv/THQ太和桥_3-402_label.csv
  208 ../vivo-second-labels_print/csv/THQ太和桥_3-403_label.csv
  437 total

$ wc -l ../vivo-second-labels_print/*.csv
   24 ../vivo-second-labels_print/JXQ酒仙桥_APP_label.csv
   24 ../vivo-second-labels_print/JXQ酒仙桥_服务器_label.csv
   24 ../vivo-second-labels_print/THQ太和桥_1-501-APP_label.csv
   22 ../vivo-second-labels_print/THQ太和桥_1-501-服务器_label.csv
    5 ../vivo-second-labels_print/THQ太和桥_1-502_label.csv
   38 ../vivo-second-labels_print/THQ太和桥_3-401_label.csv
   70 ../vivo-second-labels_print/THQ太和桥_3-402_label.csv
  207 ../vivo-second-labels_print/THQ太和桥_3-403_label.csv
  414 total
$ awk -F"," '{ print $5 }' 第二批次服务器规划-深圳_VIVO20170819.csv | awk -F"-" '{ print $1 }' | sed -e '/^$/d;/^设备/d' | uniq  | wc -l
14

3号楼402

FC 数量

$ echo `grep 6M THQ太和桥_3-402-LYP.csv.Fiber1.txt | awk '{a+=$3}END { print a }'`+`grep 6M THQ太和桥_3-402-LYP.csv.Fiber2.txt | awk '{a+=$3}END { print a }'` | bc
1361
$ echo `grep 4M THQ太和桥_3-402-LYP.csv.Fiber1.txt | awk '{a+=$3}END { print a }'`+`grep 4M THQ太和桥_3-402-LYP.csv.Fiber2.txt | awk '{a+=$3}END { print a }'` | bc
659

以太网线数量

$ cat THQ太和桥_3-402-LYP.csv | awk -F"," '{ print $10"-"$15 }' | awk -F"-" '{ if($1==$3) { print $1,"iLO网线_3M" } else { print $1,"iLO网线_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d;/^iLO网线/d' |grep 7M | awk '{a+=$3}END { print a"根7M以太网线" }'
708根7M以太网线
$ cat THQ太和桥_3-402-LYP.csv | awk -F"," '{ print $10"-"$15 }' | awk -F"-" '{ if($1==$3) { print $1,"iLO网线_3M" } else { print $1,"iLO网线_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d;/^iLO网线/d' |grep 3M | awk '{a+=$3}END { print a"根3M以太网线" }'
302根3M以太网线

弱电布线参考表格

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv

光1口

cat THQ太和桥_3-402-LYP.csv | awk -F"," '{ print $10"-"$11 }' | awk -F"-" '{ if($1==$3) { print $1,"光1口_4M" } else { print $1,"光1口_6M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d' | tee THQ太和桥_3-402-LYP.csv.Fiber1.txt

光2口

cat THQ太和桥_3-402-LYP.csv | awk -F"," '{ print $10"-"$12 }' | awk -F"-" '{ if($1==$3) { print $1,"光2口_4M" } else { print $1,"光2口_6M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d' | tee THQ太和桥_3-402-LYP.csv.Fiber2.txt

app-eth3_ForAPP

cat JXQ酒仙桥_APP.csv | awk -F"," '{ print $10"-"$16 }' | awk -F"-" '{ if($1==$3) { print $1,"网3口_3M" } else { print $1,"网3口_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d;/^网/d' | tee JXQ酒仙桥_APP.csv.eth3

app-eth4_ForAPP

cat JXQ酒仙桥_APP.csv | awk -F"," '{ print $10"-"$17 }' | awk -F"-" '{ if($1==$3) { print $1,"网4口_3M" } else { print $1,"网4口_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d;/^网/d' | tee JXQ酒仙桥_APP.csv.eth4

合并光1&光2口

join THQ太和桥_3-402-LYP.csv.Fiber1.txt THQ太和桥_3-402-LYP.csv.Fiber2.txt | tee THQ太和桥_3-402-LYP.csv.Fibers.txt

合并eth3&eth4口_ForAPP

   join JXQ酒仙桥_APP.csv.eth3 JXQ酒仙桥_APP.csv.eth4 | tee JXQ酒仙桥_APP.csv.Ethers

合并FC+Eths_ForAPP

  $ join THQ太和桥_1-501-APP.csv.Ethers THQ太和桥_1-501-APP.csv.Fibers | tee THQ太和桥_1-501-APP.csv.FC-ETHs

合并网口和光口

cat THQ太和桥_3-402-LYP.csv | awk -F"," '{ print $10"-"$15 }' | awk -F"-" '{ if($1==$3) { print $1,"iLO网线_3M" } else { print $1,"iLO网线_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d;/^iLO网线/d'  | join - THQ太和桥_3-402-LYP.csv.Fibers.txt | awk '{ print $1" ",$2"-"$3"根 ",$4"-"$5"根 ",$6"-"$7"根" }' | sed '0~3 s/$/\n/'

合并网口和光口v2-ForAPP

  $ cat JXQ酒仙桥_APP.csv | awk -F"," '{ print $10"-"$15 }' | awk -F"-" '{ if($1==$3) { print $1,"iLO网线_3M" } else { print $1,"iLO网线_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d;/^光/d;/^iLO网线/d'  | join - JXQ酒仙桥_APP.csv.FC+ETHs | awk '{ print $1" ",$2"-"$3"根 ",$4"-"$5"根 ",$6"-"$7"根",$8"-"$9"根 ",$10"-"$11"根" }' | sed '0~3 s/$/\n/' | tee JXQ酒仙桥_APP_For弱电.txt

标签打印

封装标签生成

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
  $ cat JXQ酒仙桥_APP.csv | awk -F"," '{ print $19,$20,$21,$22,$523,$26,$27 }' | awk -F"_|-" '{ print "酒仙桥:",$1"-光1口"",""酒仙桥:",$1"-光2口"",""酒仙桥:",$1"-iLO网口"",""酒仙桥:",$1"-网3口"",""酒仙桥:",$1"-网4口"",""酒仙桥:",$1"-电源A左"",""酒仙桥:",$1"-电源B右" }' | uniq > JXQ酒仙桥_APP_label.csv

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
  $ cat JXQ酒仙桥_服务器.csv | awk -F"," '{ print $11 }' | awk -F"_|-" '{ print "酒仙桥:",$1"-光1口"",""酒仙桥:",$1"-光2口"",""酒仙桥:",$1"-iLO网口"",""酒仙桥:",$1"-电源A左"",""酒仙桥:",$1"-电源B右" }' | uniq > JXQ酒仙桥_服务器_label.csv

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
cat THQ太和桥_3-401.csv | awk -F"," '{ print $10 }' | awk -F"_|-" '{ print "太和桥3-401:",$1"-光1口"",""太和桥3-401:",$1"-光2口"",""太和桥3-401:",$1"-iLO网口"",""太和桥3-401:",$1"-电源A左"",""太和桥3-401:",$1"-电源B右" }' | uniq

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
cat THQ太和桥_3-402.csv | awk -F"," '{ print $10 }' | awk -F"_|-" '{ print "太和桥3-402:",$1"-光1口"",""太和桥3-402:",$1"-光2口"",""太和桥3-402:",$1"-iLO网口"",""太和桥3-402:",$1"-电源A左"",""太和桥3-402:",$1"-电源B右" }' | uniq

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
cat THQ太和桥_3-403.csv | awk -F"," '{ print $10 }' | awk -F"_|-" '{ print "太和桥3-403:",$1"-光1口"",""太和桥3-403:",$1"-光2口"",""太和桥3-403:",$1"-iLO网口"",""太和桥3-403:",$1"-电源A左"",""太和桥3-403:",$1"-电源B右" }' | uniq

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
cat THQ太和桥_1-501-服务器.csv | awk -F"," '{ print $10 }' | awk -F"_|-" '{ print "太和桥1-501:",$1"-光1口"",""太和桥1-501:",$1"-光2口"",""太和桥1-501:",$1"-iLO网口"",""太和桥1-501:",$1"-电源A左"",""太和桥1-501:",$1"-电源B右" }' | uniq

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
cat THQ太和桥_1-501-APP.csv | awk -F"," '{ print $19,$20,$21,$22,$523,$26,$27 }' | awk -F"_|-" '{ print "太和桥1-501:",$1"-光1口"",""太和桥1-501:",$1"-光2口"",""太和桥1-501:",$1"-iLO网口"",""太和桥1-501:",$1"- 网3口"",""太和桥1-501:",$1"-网4口"",""太和桥1-501:",$1"-电源A左"",""太和桥1-501:",$1"-电源B右" }' | uniq

cd /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv
cat THQ太和桥_1-502.csv | awk -F"," '{ print $10 }' | awk -F"_|-" '{ print "太和桥1-502:",$1"-光1口"",""太和桥1-502:",$1"-光2口"",""太和桥1-502:",$1"-iLO网口"",""太和桥1-502:",$1"-电源A左"",""太和桥1-502:",$1"-电源B右" }' | uniq

  cat SZ深圳蛇口花园城机房测试项目上架规划_20170819_已校对.csv | awk -F"," '{ print $7 }' | awk -F"_|-" '{ print "深圳蛇口:",$1"-光1口"",""深圳蛇口:",$1"-光2口"",""深圳蛇口:",$1"-电口1"",""深圳蛇口:",$1"- iLO网口"",""深圳蛇口:",$1"-电源A左"",""深圳蛇口:",$1"-电源B右" }' | uniq

$ cat Project2_酒仙桥-服务器.csv | awk -F"," '{ print $2"-"$3 }' | awk -F"-" '{ if($1==$3) { print $1,"光1口_4M" } else { print $1,"光1口_6M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | sed '/^设备/d'

统计每天的上架设备

2017-09-01

merlyn@brightmoon /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/Li配送表
$ cat 20170902 20170903 | sed '/^$/d' | tr "\n" "|" | sed s'/.$//'
H3CT65164221|H3CT65164224|H3CT65164220|H3CT65160274|H3CT65160273|H3CT65164216|H3CT65164218|H3CT65164223|H3CT65164225|H3CT65160272|H3CT65160276|H3CT65160279|H3CT65160283

egrep `for i in VIV*.csv; do egrep "H3CT65164221|H3CT65164224|H3CT65164220|H3CT65160274|H3CT65160273|H3CT65164216|H3CT65164218|H3CT65164223|H3CT65164225|H3CT65160272|H3CT65160276|H3CT65160279|H3CT65160283" $i; done | awk -F"," '{ print $2 }' | uniq | tr '\n' "|" | sed s'/.$//'` *.xlsx.csv
7700566237(5002158760)50pcs.xlsx.csv:6CU734ARB9,10.21.32.49,255.255.255.128,10.21.32.126,A1,B21-4U,172.25.32.49,255.255.255.128,172.25.32.126,48,1000008781,7700566237
...

$ egrep -l `for i in VIV*.csv; do egrep "H3CT65164221|H3CT65164224|H3CT65164220|H3CT65160274|H3CT65160273|H3CT65164216|H3CT65164218|H3CT65164223|H3CT65164225|H3CT65160272|H3CT65160276|H3CT65160279|H3CT65160283" $i; done | awk -F"," '{ print $2 }' | uniq | tr '\n' "|" | sed s'/.$//'` *.xlsx.csv
7700566237(5002158760)50pcs.xlsx.csv
7700566240(5002158762)50pcs.xlsx.csv
7700566522.xlsx.csv
7700566613.xlsx.csv


$ egrep -l `for i in VIV*.csv; do egrep 'H3CT65164221|H3CT65164224|H3CT65164220|H3CT65160274|H3CT65160273' $i; done | awk -F"," '{ print $2 }' | fmt | tr " " "|"` *xlsx.csv
7700566237(5002158760)50pcs.xlsx.csv
7700566240(5002158762)50pcs.xlsx.csv

for i in VIV*.csv; do egrep "H3CT65164221|H3CT65164224|H3CT65164220|H3CT65160274|H3CT65160273|H3CT65164216|H3CT65164218|H3CT65164223|H3CT65164225|H3CT65160272|H3CT65160276|H3CT65160279|H3CT65160283" $i; done | awk -F"," '{ print $2 }' | uniq | sort | tee 1

egrep `for i in VIV*.csv; do egrep "H3CT65164221|H3CT65164224|H3CT65164220|H3CT65160274|H3CT65160273|H3CT65164216|H3CT65164218|H3CT65164223|H3CT65164225|H3CT65160272|H3CT65160276|H3CT65160279|H3CT65160283" $i; done | awk -F"," '{ print $2 }' | uniq | tr '\n' "|" | sed s'/.$//'` *.xlsx.csv | awk -F"," '{ print $11 }' | uniq | sort | tee 2

$ comm -3 1 2 | tee po_none_list.txt
1000008684
1000008697
1000008706
1000008707
1000008709
1000008734
1000008747
1000008761
1000008765

$ egrep `comm -3 1 2 | tr "\n" "|" | sed s'/.$//'`  VIVO_Li_ALL_list.csv  | awk -F"," '{ print $2","$3 }' | sed '1iPO#,SO#'
PO#,SO#
1000008706,7700566517
1000008747,7700566527
1000008765,7700566239
1000008761,7700566236
1000008684,7700566337
1000008707,7700566230
1000008734,7700566233
1000008709,7700566520
1000008697,7700566518

$ for i in *.csv ;do egrep -l "700566415|700566343|700566344|700566413" $i; done | tee 20170901
7700566343.xlsx.csv
7700566344.xlsx.csv
7700566413.xlsx.csv
7700566415.xlsx.csv

for i in `cat 20170901`; do awk -F"," '{ print $6","$1","$7","$10","$11","$12 }' $i | tee $i.`date +%F`_loaded.csv; done

for i in VIV*.csv ;do egrep  "700566415|700566343|700566344|700566413" $i; done

for i in *`date +%F`*.csv; do awk -F"," '{ print $1","$2","$4 }' $i ; done | tee `date +%F`_上架列表ForHP.csv

add building in CSV file

awk -v FS=',' -v OFS=',' '{$10=$10","1"#_501-APP"} 1' total/THQ太和桥_1-501-APP.csv

POs Not done csv file

Rename file name for POs table

  find . -maxdepth 1 -type f -name "77*.xlsx" | while read f; do xlsx2csv $f $f.csv; done
 rename -v 'VIVO 配送表 ' '' VIVO*

  for file in *.xlsx.csv; do cp $file /tmp/`echo $file | sed 's/\..*//' | sed 's/(.*//;s/-.*//'`.csv; done

egrep `comm -3 Total_POs.csv Total_Done_POs-20170909.csv  | tr "\n" "|" | sed s'/.$//'`  VIVO_Li_ALL_list.csv  | awk -F"," '{ print $2","$3 }' | sed '1iPO#,SO#' | tee POs_Not_done_list.csv

Troubleshooting

144台NGINX+12台Lvs迁移

  merlyn@brightmoon /mnt/play/systec/Projects/Vivo_2.4X/CASES/TEST
$ egrep -w `cat 12台LVS+142台NGINX-迁移  | tr '\n' '|' | sed s'/.$//'` Second太和桥机器地址规划-0818带标签\(电源带机柜编号\)-\ 已校对_AddedSN-同步调整后清单1#501-Server.csv | awk -F"," '{ print "2-THQ_1#501-Server,"$10","$3","$11","$12","$13","$7","$8","$9","$2","$14","$16 }' | sed '1i机房位置,设备配制,原设备名称,Position,光1口,光2口,原业务IP,原业务掩码,原业务网关,SN#,iLO地址,iLO交换机'   > 12台LVS+142台NGINX-迁移_original.csv


$ egrep -w `cat 12台LVS+142台NGINX-迁移  | tr '\n' '|' | sed s'/.$//'` 12台LVS+142台NGINX-迁移.csv | awk -F"," '{ print "2-THQ_1#501-Server,"$10","$3","$11","$12","$13","$7","$8","$9","$2","$14","$16 }' | sed '1i机房位置,设备配制,新设备名称,Position,光1口,光2口,新业务IP,新业务掩码,新业务网关,SN#,iLO地址,iLO交换机' > 12台LVS+142台NGINX-迁移_new.csv

dmidecode --type system | grep -i 'Serial Number'

show mac address

ansible --timeout=10 JXQ-OS-REINSTALL-ETH0-MAC -m raw -a 'show /system1/network1/Integrated_NICs'

Product IP SN

ansible --timeout=20 THQ-PRODUCT-EXCLUDE-ONLINE -m shell -a "dmidecode --type system | grep -i 'Serial Number'; egrep -i 'Bonding Mode|Aggregator ID' /proc/net/bonding/bond2" | tee THQ-PRODUCT-EXCLUDE-ONLINE_SN.log

iLO IP SN

ansible --timeout=20 VIVO-THQ-ILO:children -m raw -a "show /system1"

ip addr sh bond2
ethtool bond2 | grep -i speed
ethtool eth0 | grep -i 'Link detected'
ethtool eth1 | grep -i 'Link detected'
grep -i 'Aggregator ID' /proc/net/bonding/bond2 | tail -2

check iLO&Product IP

$ nmap -v -sn -n -iL JXQ-SERVER_ProductIP | grep down | awk '{ print $5 }' | tee JXQ-SERVER_ProductIP_Down
10.30.97.37
10.30.127.25
10.30.123.23
10.30.132.138
10.30.132.139
10.30.132.142
10.30.132.143
10.30.135.40

$ nmap -v -sn -n -iL JXQ-APP_ProductIP | grep down | awk '{ print $5 }' | tee JXQ-APP_ProductIP_Down
10.30.43.183
10.30.43.187
10.30.43.206
10.30.43.210
10.30.44.31

$ egrep -w `cat JXQ-SERVER_ProductIP_Down  | tr '\n' '|' | sed s'/.$//'` ../../Second_第二批/vivo-second-labels_print/JXQ酒仙桥_* | awk -F"," '{ print "JXQ#SERVER"","$11","$7","$8","$9","$2","$14 }' | sed '1i机房位置,Position,业务IP,业务掩码,业务网关,SN#,iLO地址(24位掩码)' > JXQ-SERVER_ProductIP_Down.csv

merlyn@brightmoon /mnt/play/systec/Projects/Vivo_2.4X/CASES/Second_ALL_Servers
$ egrep -w `cat JXQ-APP_ProductIP_Down  | tr '\n' '|' | sed s'/.$//'` ../../Second_第二批/vivo-second-labels_print/JXQ酒仙桥_* | awk -F"," '{ print "JXQ#APP"","$11","$7","$8","$9","$2","$14 }' | sed '1i机房位置,Position,业务IP,业务掩码,业务网关,SN#,iLO地址(24位掩码)' | tee JXQ-APP_ProductIP_Down.csv
机房位置,Position,业务IP,业务掩码,业务网关,SN#,iLO地址(24位掩码)
JXQ#APP,G05-8U,10.30.43.183,255.255.255.0,10.30.43.254,6CU734AEPY,172.27.7.180
JXQ#APP,G05-16U,10.30.43.187,255.255.255.0,10.30.43.254,6CU734AEV2,172.27.7.184
JXQ#APP,G06-22U,10.30.43.206,255.255.255.0,10.30.43.254,6CU734AFBJ,172.27.7.203
JXQ#APP,G06-30U,10.30.43.210,255.255.255.0,10.30.43.254,6CU734AFEK,172.27.7.207
JXQ#APP,G11-18U,10.30.44.31,255.255.255.0,10.30.44.254,6CU734ADFW,172.27.8.28

match unreachable IPv4Address

egrep -w  `cat 20170826_Product_ipDown | tr '\n' '|' | sed s'/.$//'` /tmp/THQ太和桥机器地址规划-0818带标签\(电源带机柜编号\)-\ 已校对_AddedSN.csv | awk -F"," '{ print "3#_403"","$10","$6","$7","$8","$13","$23 }' | sed '1i机房位置,Position,业务IP,业务掩码,业务网关,iLO地址(25位掩码),SN#' > 20170826_Product_ipDown.csv

   egrep -w `cat 20170928_ProductIP_Down_list  | tr '\n' '|' | sed s'/.$//'` ../Second_第二批/vivo-second-labels_print/*done.csv | awk -F"," '{ print "3#_403"","$11","$7","$8","$9","$2","$14 }' | sed '1i机房位置,Position,业务IP,业务掩码,业务网关,SN#,iLO地址(25位掩码)'

   egrep -w `cat all_ProductIPDown.list  | tr '\n' '|' | sed s'/.$//'` Second太和桥机器地址规划-0818带标签\(电源带机柜编号\)-\ 已校对_AddedSN-同步调整后清单3#402.csv | awk -F"," '{ print "2-THQ_3#402,"$10","$11","$12","$13","$7","$8","$9","$2","$14","$16 }' | sed '1i机房位置,设备配制,Position,光1口,光2口,业务IP,业务掩码,业务网关,SN#,iLO地址,iLO交换机'  | tee -a all_ProductIP-DOWN.csv

nmap

nmap  -v -sn -n 10.21.46.1-96 10.21.47.1-96 10.21.48.1-96 10.21.49.1-96 10.21.50.1-96 10.21.51.1-96 10.21.52.1-94  10.21.18.1-96 10.21.19.1-96 10.21.20.1-81 10.21.21.1-96 10.21.22.1-96 10.21.23.1-96 10.21.24.1-96 10.21.25.1-48| awk '/report.*down/{print $5,"is down"}'

# scan read from file
nmap -v -n -F -iL 20170826_ilo_mgt

nmap -v -sn -n -iL 20170826_ilo | awk '/report.*down/{ print $5,"is down"}' | tee 20170826_ilo_down

iLO problem

ansible --forks=100 VIVO-ILO-403 -m raw -a 'show /map1 license' | tee 403-ilo.log

 egrep -w `grep  UNREACHABLE 403-ilo.log  | awk '{ print $1 }' | tr '\n' '|' | sed s'/.$//'` ../Second_第二批/csv/tmp汇总用/THQ太和桥_3-403-重新校对.csv_2017-09-15.csv_done.csv  | awk -F"," '{ print $11","$1","$24 }' | sed '1iPosition,iLO,SN'

寻找出问题的机柜

$ cat THQ太和桥_3-403-重新校对.csv | awk -F"," '{ print $11"-"$12"-"$15 }' | sed '/^$/d;/^--/d;/^光1/d' | awk -F"-" '{ if($1!=$5 && $1!=3) { print $1,$3,$5," is Correct." } else { print $1,$3,$5," Warning: 光纤交换机和网管交换机在同一个机柜!" }}' | grep Correct | head -5
A02 A03 A01  is Correct.
A02 A03 A01  is Correct.
A02 A03 A01  is Correct.
A02 A03 A01  is Correct.
A02 A03 A01  is Correct.
$ cat THQ太和桥_3-403-重新校对.csv | awk -F"," '{ print $11"-"$12"-"$15 }' | sed '/^$/d;/^--/d;/^光1/d' | awk -F"-" '{ if($1!=$5 && $1!=3) { print $1,$3,$5," is Correct." } else { print $1,$3,$5," Warning: 光纤交换机和网管交换机在同一个机柜!" }}' | grep Warning | head -5
B05 B07 B05  Warning: 光纤交换机和网管交换机在同一个机柜!
B05 B07 B05  Warning: 光纤交换机和网管交换机在同一个机柜!
B05 B07 B05  Warning: 光纤交换机和网管交换机在同一个机柜!
B05 B07 B05  Warning: 光纤交换机和网管交换机在同一个机柜!
B05 B07 B05  Warning: 光纤交换机和网管交换机在同一个机柜!

根据机柜定位服务器数量

cat THQ太和桥_3-403-重新校对_2017-09-18.csv_done.csv |  awk 'NF = 10 && /G/'  > /tmp/x.csv

合成配送表序列号至总表

merlyn@brightmoon /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv/
$ for i in `find . -name "*".csv`; do awk -F"," '{ print $13","$0 }' $i | tee tmp汇总用/"$i"_`date +%F`.csv;done

/mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/Li配送表
awk -F"," '{ print $7","$0 }' li_csv/77005*.csv > /mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv/tmp汇总用/x.csv

/mnt/play/systec/Projects/Vivo_2.4X/Second_第二批/csv/tmp汇总用
$ for file in `find . -name "*09-15.csv"`; do awk -F"," 'NR==FNR {a[$1] = $2; next} {print $0","a[$1]}'  x.csv "$file" | tee "$file"_done.csv; done

计算交换机数量

$ echo sh calc_switch_all.sh | awk '{ N+=$1 } { print N }' | tail -1-comm -32 3-402_first 3-402_second | wc -l-comm -32 1-501_first 1-501_second | wc -l | bc

ilo

set /map1 license=34P4D-TBB5Q-GYPX2-Q3RND-6V4ZH

set /map1 license=34RS2-MB67Z-M38G5-8G8KK-23MKW

set /map1/enetport1/lanendpt1/ipendpt1 IPv4Address= SubnetMask=255.255.248.0

</>hpiLO-> show /system1/network1/Integrated_NICs

status=0
status_tag=COMMAND COMPLETED
Mon Oct  2 22:49:01 2017



/system1/network1/Integrated_NICs
  Targets
  Properties
    iLO4_MACAddress=f4:03:43:45:7b:86
    Port1NIC_MACAddress=f4:03:43:43:eb:88
    Port2NIC_MACAddress=f4:03:43:43:eb:89
    Port3NIC_MACAddress=f4:03:43:43:eb:8a
    Port4NIC_MACAddress=f4:03:43:43:eb:8b
    Port5NIC_MACAddress=e0:07:1b:f1:f0:40
    Port6NIC_MACAddress=e0:07:1b:f1:f0:44
  Verbs
    cd version exit show

egrep  'SUCC|Port5NIC_MACAddress' 需要重新系统的服务器清单v2.0.log > /tmp/x

    tr "=" " " < /tmp/x | awk '{ print $1,$9 }'

generator switch config

merlyn@brightmoon /mnt/play/systec/Projects/Vivo_2.4X/Switch_Config
$ ll
total 56K
-rwxr-xr-x 1 merlyn users 3.3K Sep 24 14:43 auto_generator_switchConfig.sh*
drwxr-xr-x 2 merlyn users 4.0K Sep 24 14:54 config/
-rw-r--r-- 1 merlyn users 9.2K Sep 24 13:05 new.csv
-rwxr-xr-x 1 merlyn users  757 Sep 24 14:25 sample.txt*
-rw-r--r-- 1 merlyn users  19K Sep 24 13:05 switch_config.csv
-rw-r--r-- 1 merlyn users  594 Sep 24 13:11 test.csv
drwxr-xr-x 3 merlyn users 4.0K Sep 24 14:55 tmp/
drwxr-xr-x 2 merlyn users 4.0K Sep 24 13:02 VIVO交换机配置脚本/


split -l 4 --additional-suffix=.config test.csv
mv x*config tmp/

for i in `find ./tmp/ -type f`; do sh auto_generator_switchConfigFor_THQ-3-403.sh -c "$i"; done

head -1 config/tmp/x*  > Mapping_relative.txt

for i in `find ./config/ -type f`; do sh auto_generator_switchConfig.sh -c "$i" | tee tmp/"$i"; done

Management HOST 402 H09-04U

[root@localhost.localdomain:/tmp/ansible]
# ifconfig bond2
bond2     Link encap:Ethernet  HWaddr 98:F2:B3:20:33:A8
          inet addr:10.21.23.33  Bcast:10.21.23.127  Mask:255.255.255.128
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:77317 errors:0 dropped:0 overruns:0 frame:0
          TX packets:18743 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:5832455 (5.5 MiB)  TX bytes:2119341 (2.0 MiB)

"sed -i 's/\x0D//' /etc/sysconfig/network-scripts/ifcfg-bond2"
"service network restart"

故障统计

硬盘故障数量    42
风扇故障数量    3
iLO模块故障     1
iLO未配制故障   1
SFP模块故障     6
光纤网卡故障    1
内存故障        6
主板故障        7
CPU故障         2
电源故障        7
RAID卡故障      1
固件版本告警    6
固件版本问题    1
缓存电池报警    1
待确认的报警    10

$ grep '硬盘' /tmp/x.csv | egrep '已更换|已修复|已换' | wc -l
34

$ egrep -i 'fan|风扇' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
2

$ egrep -i 'ilo' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
4

egrep -i 'sfp' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
2

$ egrep -i '光线' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
1

$ egrep -i '内存' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
6

$ egrep -i '关机|无限重启|反应|自动关机|主板|开不了机|无法加电' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
4

$ egrep -i 'CPU' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
1

$ egrep -i '电源' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
5

$ egrep -i '电池' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
1

$ egrep -i '固件' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
2

$ egrep -i 'raid|阵列' /tmp/x.csv | egrep '已更换|修复|已换' | wc -l
1

lvs

sed 's/ONBOOT=yes/ONBOOT=no/' ifcfg-eth[4,5,6,7] ifcfg-bond2

time ansible --timeout=3 LVS-12 -m shell -a "sed -i 's/bond0/bond5/' /etc/sysconfig/network-scripts/ifcfg-eth[4,5];sed -i 's/bond1/bond5/' /etc/sysconfig/network-scripts/ifcfg-eth[6,7]"

time ansible --timeout=3 LVS-12 -m shell -a "sed -i 's/bond2/bond1/' /etc/sysconfig/network-scripts/ifcfg-eth[0,1]"

time ansible --timeout=3 LVS-12 -m shell -a "head -4 /etc/sysconfig/network-scripts/ifcfg-bond0 | tee /tmp/ifcfg-bond0"
time ansible --timeout=3 LVS-12 -m shell -a "tail -3 /etc/sysconfig/network-scripts/ifcfg-bond2 | tee -a /tmp/ifcfg-bond0"

time ansible --timeout=3 LVS-12 -m shell -a "sed -i 's/bond2/bond0/' /etc/sysconfig/network-scripts/ifcfg-eth[2,3]"

time ansible --timeout=3 LVS-12 -m shell -a "sed 's#NETMAS#\#NETMAS#;s#IPADDR#\#IPADDR#;s#GATE#\#GATE##' /etc/sysconfig/network-scripts/ifcfg-bond2"

time ansible --timeout=3 LVS-12 -m shell -a "rm -fv /etc/sysconfig/network-scripts/ifcfg-bond0"

time ansible --timeout=3 LVS-12 -m shell -a "cp -v /tmp/ifcfg-bond0 /etc/sysconfig/network-scripts/ifcfg-bond0"

time ansible --timeout=3 LVS-12 -m shell -a "grep bond0 /etc/sysconfig/network-scripts/*; grep bond1 /etc/sysconfig/network-scripts/*"

time ansible --timeout=3 LVS-12 -m shell -a "reboot"

désert/workarea/vivo (last edited 2018-11-21 15:39:05 by localhost)