ฉันกำลังพยายามรับผลลัพธ์การดีบักของ
- "ค้นหา" ทำอะไร
- เมื่อเทียบกับสิ่งที่เกิดขึ้นบนเครือข่าย (tshark)
ดังนั้นฉันจึงต้องการเรียกใช้คำสั่งเหล่านี้แบบขนานและให้ผลลัพธ์เรียงลำดับตามเวลาอย่างพิถีพิถัน
ฉันทำนี่:
{
stdbuf -oL tshark -tad -l -n -s 9999 โฮสต์ x | ts '[TSRK %Y-%m-%d %H:%M:%.S]' &
นอน5
stdbuf -oL ค้นหา -พิมพ์ d 2>&1 | ts '[ค้นหา %Y-%m-%d %H:%M:%.S]' &
} >/รูท/เอาท์
ปัญหาหลัก: เอาต์พุต Tshark ล้าหลัง
# stdbuf -oL tshark -tad -l -n | ts '[TSRK %Y-%m-%d %H:%M:%.S]'
[TSRK 2021-08-18 17:40:56.206744] 2 2021-08-18 17:40:55.477802058 00:04:96:xx:xx:xx â ff:ff:ff:ff:ff:ff ARP 64 ใครมี 172.31.x.x? บอก 172.31.x.x
เปรียบเทียบการประทับเวลาของ ts ([TSRK 2021-08-18 17:40:56.206744]
) ถึงหนึ่งใน tshark (2021-08-18 17:40:55.477802058
)
เอาต์พุตล้าหลัง
บันทึกที่รวมกันจะแสดงผลลัพธ์ของการค้นหาก่อนที่จะแสดงผลลัพธ์ของ tshark
ในขณะที่ - ชัดเจน - กิจกรรมเครือข่ายต้องนำหน้าผลลัพธ์ของ หา
.
ฉันยังพยายาม ขนาน
ขนาน --line-บัฟเฟอร์ ::: \
'stdbuf -oL tshark -tad -l -n -s 9999 โฮสต์ x | ts "[TSRK %Y-%m-%d %H:%M:%.S]" ' \
'stdbuf -oL find . -ประเภท d | ts "[ค้นหา %Y-%m-%d %H:%M:%.S]" ' \
>/รูท/เอาท์พาร์
แต่เครื่องมือด้านนอกดูเหมือนจะไม่แก้ไขสิ่งที่ผิดปกติอย่างเห็นได้ชัดกับเครื่องมือด้านใน... ผลลัพธ์ก็เหมือนเดิม
ฉันจะทำอย่างถูกต้องได้อย่างไร