Tôi đang cố lấy đầu ra gỡ lỗi của
- "tìm" làm gì
- so với những gì xảy ra trên mạng (tshark)
Vì vậy, tôi muốn chạy song song các lệnh này và có đầu ra được sắp xếp tỉ mỉ theo thời gian.
Tôi làm việc này:
{
stdbuf -oL tshark -tad -l -n -s 9999 máy chủ x | ts '[TSRK %Y-%m-%d %H:%M:%.S]' &
ngủ 5
stdbuf -oL tìm . -type d 2>&1 | ts '[TÌM %Y-%m-%d %H:%M:%.S]' &
} >/root/out
Vấn đề chính: Đầu ra của Tshark bị trễ
# 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 Ai có 172.31.x.x? Cho biết 172.31.x.x
So sánh dấu thời gian của ts ([TSRK 2021-08-18 17:40:56.206744]
) đến một trong tshark (2021-08-18 17:40:55.477802058
)
Đầu ra bị tụt lại phía sau.
Nhật ký kết hợp đưa ra kết quả của find trước khi hiển thị đầu ra của tshark.
Trong khi - rõ ràng - hoạt động mạng phải có trước kết quả của tìm thấy
.
tôi cũng đã thử song song, tương đông
song song --line-buffer ::: \
'stdbuf -oL tshark -tad -l -n -s 9999 máy chủ x | ts "[TSRK %Y-%m-%d %H:%M:%.S]" ' \
'stdbuf -oL tìm . -loại đ| ts "[TÌM %Y-%m-%d %H:%M:%.S]" ' \
>/root/vượt trội
nhưng công cụ bên ngoài dường như không khắc phục được những gì rõ ràng là sai với công cụ bên trong... Kết quả là như nhau.
Làm thế nào để tôi làm điều này một cách chính xác?