太和桥统计
机器数量统计
cd /mnt/play/systec/Projects/Vivo_2.4X/IDC机房文档
awk -F"," '{ print $8 }' *.csv | sort | sed '/^$/d;/^设备/d' | wc -l6130
机柜数量统计
$ 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号楼502
- cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $4 }' | awk -F"-|_" '{if ($1==$5) {print $0,"光1口-4M"} else { print $0,"光1口-6M" }}' | awk -F"_| " '{ print $1,$6 }' | uniq -c | awk '{ print $2,$3,$1 }' | tee 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,"光2口-4M"} else { print $0,"光2口-6M" }}' | awk -F"_| " '{ print $1,$6 }' | uniq -c | awk '{ print $2,$3,$1 }' | tee 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt
- join 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt | tee 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fibers.txt
- cat 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"idrac网线_3M"} else { print $1,"idrac网线_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | join - 1-502-Vivo第一批服务器所在机柜位置和标签_v1.0.Fibers.txt | awk '{ print $1" ",$2" -"$3"根 ",$4" -"$5"根 ",$6" -"$7"根" }'
以下表格打印给弱电工程师以方便布线时查阅
该机房线缆总数
- 320 根6M光纤线
- 160 根4M光纤线
- 80 根3M以太网线
- 160 根7M以太网线
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
- cat 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $4 }' | awk -F"-|_" '{if ($1==$5) {print $0,"光1口_4M"} else { print $0,"光1口_6M" }}' | awk -F"_| " '{ print $1,$6 }' | uniq -c | awk '{ print $2,$3,$1 }' | tee 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt
- cat 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $5 }' | awk -F"-|_" '{if ($1==$5) {print $0,"光2口_4M"} else { print $0,"光2口_6M" }}' | awk -F"_| " '{ print $1,$6 }' | uniq -c | awk '{ print $2,$3,$1 }' | tee 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt
- join 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber1.txt 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fiber2.txt | tee 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fibers.txt
- cat 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"idrac网线-3M"} else { print $1,"idrac网线-7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | join - 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fibers.txt | awk '{ print $1" ",$2"--"$3"根 ",$4"--"$5"根 ",$6"--"$7"根" }' | xclip
- cat 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.csv | awk -F"," '{ print $6 }' | awk -F"-|_" '{ if ($1==$5) { print $1,"idrac网线_3M"} else { print $1,"idrac网线_7M" }}' | uniq -c | awk '{ print $2,$3,$1 }' | join - 3-402-Vivo第一批服务器所在机柜位置和标签_v1.0.Fibers.txt | awk '{ print $1" ",$2"-"$3"根 ",$4"-"$5"根 ",$6"-"$7"根" }' | sed '0~8 s/$/\n/'
cat JXQ酒仙桥_服务器.csv | awk -F"," '{ print $10"-"$15 }' | awk -F"-" '{ print $1,$3 }' | awk '{ print substr($1,2),substr($2,2) }' | awk '{ if ($1-$2==0) { print $1,$2"3M" } else if ($1-$2==1 || $1-$2==-1) { print "5M" } else { print "7M" }}' | grep 7M | cat JXQ酒仙桥_服务器.csv | awk -F"," '{ print $10"-"$15 }' | awk -F"-" '{ print $1,$3 }' | awk '{ print substr($1,2),substr($2,2) }' | awk '{ if ($1-$2==0) { print $1,$2"3M" } else if ($1-$2==1 || $1-$2==-1) { print "5M" } else { print "7M" }}'
以下表格打印给弱电工程师以方便布线时查阅
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- Option(Just for verify)
$ 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; doneawk -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 }'; doneawk '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.csvsort it with SN
sort --field-separator="," -k22 1375第一批_total_with_SN.csv
第二批5603台
服务器数量统计
机柜数量统计
$ 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ð4口_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
标签打印
封装标签生成
- 酒仙桥APP
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- THQ太和桥_3-401
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- THQ太和桥_3-402
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- THQ太和桥_3-403
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- THQ太和桥_1-501-服务器.csv
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- THQ太和桥_1-501-APP.csv
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- THQ太和桥_1-502.csv
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- SZ深圳蛇口花园城机房测试项目上架规划_20170819_已校对.csv
cat SZ深圳蛇口花园城机房测试项目上架规划_20170819_已校对.csv | awk -F"," '{ print $7 }' | awk -F"_|-" '{ print "深圳蛇口:",$1"-光1口"",""深圳蛇口:",$1"-光2口"",""深圳蛇口:",$1"-电口1"",""深圳蛇口:",$1"- iLO网口"",""深圳蛇口:",$1"-电源A左"",""深圳蛇口:",$1"-电源B右" }' | uniq- sed -i -e '1i光1口,光2口,iLO网口,网3口,网4口,电源A左,电源B右\' *APP*.csv
- sed -i -e '1i光1口,光2口,iLO网口,电源A左,电源B右\' THQ太和桥_1-501-服务器_label.csv
$ 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- Find out which Li配送表 not found.
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
check Link speed & Aggr
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"
