ฉันใหม่ในสคริปต์ทุบตี ฉันพยายามสร้างสคริปต์ที่ตรวจสอบอุปกรณ์ ( tp-link, cisco, lynksys... ) เพื่อเชื่อมต่อผ่าน telnet และรับข้อมูลบางอย่าง
ดังนั้นสคริปต์แรกจึงใช้งานได้โดยไม่มีปัญหา:
#!/bin/sh
NOW=$(วันที่ +"%m-%d-%Y")
โฮสต์ = 'IPADDRES'
USER='ผู้ใช้'
PASSWD='รหัสผ่าน'
CMD = 'เปิดใช้งาน'
CMD2='แสดงตารางที่อยู่ mac'
CMD3='ความยาวขั้ว 0'
(เสียงสะท้อน "$โฮสต์ - " ; (
echo เปิด "$HOST"
นอน1
เสียงสะท้อน "$USER"
นอน1
เสียงสะท้อน "$PASSWD"
นอน1
เสียงสะท้อน "$CMD"
นอน1
เสียงสะท้อน "$CMD3"
นอน1
เสียงสะท้อน "$CMD2\n"
นอน 30
ก้อง "ออก"
) | telnet ) > ชื่อ.$NOW.txt
เมื่อฉันทำ: ชื่อแมว.date.txt
ฉันได้รับผลลัพธ์นี้
ชื่อโฮสต์ 1 -
telnet> ลองชื่อโฮสต์ 1...
เชื่อมต่อกับชื่อโฮสต์1.
อักขระ Escape คือ '^]'
การตรวจสอบการเข้าถึงของผู้ใช้
ชื่อผู้ใช้:
รหัสผ่าน:
ยินดีต้อนรับสู่ BDCOM P3310C EPON OLT
ชื่อโฮสต์ 1> เปิดใช้งาน
ชื่อโฮสต์ 1# ความยาวเทอร์มินัล 0
ชื่อโฮสต์1#แสดงตารางที่อยู่ mac
ตารางที่อยู่ Mac (ทั้งหมด 311)
------------------------------------------
พอร์ตประเภทที่อยู่ Vlan Mac
---- ----------- ------ -----
CPU แบบคงที่ทั้งหมด 8479.735b.9132
300 44d9.e776.d8b7 ไดนามิก g0/3
300 4c5e.0cff.6dea ไดนามิก g0/3
300 d4ca.6d9e.3280 ไดนามิก g0/3
ดังนั้นฉันต้องส่งออกแค่บรรทัดนี้ 1 2 และ 4
มันเป็นแบบนี้:
300 44d9.e776.d8b7 ไดนามิก g0/3
300 4c5e.0cff.6dea ไดนามิก g0/3
300 d4ca.6d9e.3280 ไดนามิก g0/3
ฉันไม่ต้องการอะไรก่อน
"พอร์ตประเภทที่อยู่ Vlan Mac"
ดังนั้นฉันจึงสร้างสคริปต์นี้:
ชื่อแมว.date.txt | awk '$1<"ALL"{พิมพ์ $1" ",$2" ",$3" ",$4}'
และฉันได้รับผลลัพธ์นี้:
ชื่อโฮสต์ 1 -
-----------------------------
---- ----------- ------ -----
300 44d9.e776.d8b7 ไดนามิก g0/3
300 0002.9b80.7f28 ไดนามิก g0/3
300 0002.9b65.7b66 ไดนามิก g0/3
300 4c5e.0cff.6dea ไดนามิก g0/3
300 d4ca.6d9e.3280 ไดนามิก g0/3
ใครแก้ไข ?
ฉันเพิ่งส่งออกไฟล์เฉพาะข้อมูลนี้:
300 44d9.e776.d8b7 ไดนามิก g0/3
300 0002.9b80.7f28 ไดนามิก g0/3
300 0002.9b65.7b66 ไดนามิก g0/3
300 4c5e.0cff.6dea ไดนามิก g0/3
300 d4ca.6d9e.3280 ไดนามิก g0/3
จะดีกว่าไหมถ้าฉันสามารถส่งออกเป็นตารางหรือ csv
ขอบคุณสำหรับคำตอบ