extract_slot_info.sh 2.77 KB
Newer Older
wangkx1's avatar
init  
wangkx1 committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash

echo "=== 步骤1: 获取 Slot 信息并保存到 debug.log ==="
dmidecode -t slot | grep -e "Designation" -e "Bus Address" -e "ID" 2>&1 | tee debug.log

echo ""
echo "=== 步骤2: 提取 SW*_Slot1、4、5、8 的 ID 序号 ==="
echo "|--------|---------------|-------|"
echo "| Slot   | Designation   | ID    |"
echo "|--------|---------------|-------|"

grep "Designation: SW.*_Slot" debug.log | while read -r line; do
    designation=$(echo "$line" | sed 's/.*Designation: //')
    num=$(echo "$designation" | grep -oP 'Slot\K[0-9]+')
    
    if [[ "$num" == "1" || "$num" == "4" || "$num" == "5" || "$num" == "8" ]]; then
        id=$(grep -A1 "$designation" debug.log | grep "ID:" | awk '{print $2}')
        printf "| %-6s | %-13s | %-5s |\n" "Slot$num" "$designation" "$id"
    fi
done

echo ""
echo "=== 步骤3: 提取 SW*_OAM_0 到 7 的 ID 序号 ==="
echo "|--------|---------------|-------|"
echo "| OAM    | Designation   | ID    |"
echo "|--------|---------------|-------|"

grep "Designation: SW.*_OAM" debug.log | while read -r line; do
    designation=$(echo "$line" | sed 's/.*Designation: //')
    num=$(echo "$designation" | grep -oP 'OAM_\K[0-9]+')
    
    if [[ "$num" =~ ^[0-7]$ ]]; then
        id=$(grep -A1 "$designation" debug.log | grep "ID:" | awk '{print $2}')
        printf "| %-6s | %-13s | %-5s |\n" "OAM_$num" "$designation" "$id"
    fi
done

echo ""
echo "=== 汇总结果 ==="
echo ""
echo "Slot 设备:"
echo "  Slot1 → SW0 → ID: $(grep "Designation: SW0_Slot1" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  Slot4 → SW1 → ID: $(grep "Designation: SW1_Slot4" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  Slot5 → SW2 → ID: $(grep "Designation: SW2_Slot5" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  Slot8 → SW3 → ID: $(grep "Designation: SW3_Slot8" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo ""
echo "OAM 设备:"
echo "  OAM_0 → SW1 → ID: $(grep "Designation: SW1_OAM_0" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_1 → SW1 → ID: $(grep "Designation: SW1_OAM_1" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_2 → SW2 → ID: $(grep "Designation: SW2_OAM_2" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_3 → SW2 → ID: $(grep "Designation: SW2_OAM_3" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_4 → SW0 → ID: $(grep "Designation: SW0_OAM_4" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_5 → SW0 → ID: $(grep "Designation: SW0_OAM_5" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_6 → SW3 → ID: $(grep "Designation: SW3_OAM_6" -A1 debug.log | grep "ID:" | awk '{print $2}')"
echo "  OAM_7 → SW3 → ID: $(grep "Designation: SW3_OAM_7" -A1 debug.log | grep "ID:" | awk '{print $2}')"

echo ""
echo "=== 完成 ==="