Încerc să obțin rezultatul de depanare a
- ceea ce face „găsește”.
- în comparație cu ceea ce se întâmplă în rețea (tshark)
Prin urmare, vreau să rulez aceste comenzi în paralel și să am rezultate sortate meticulos în funcție de timp.
Eu fac asta:
{
stdbuf -oL tshark -tad -l -n -s 9999 gazdă x | este „[TSRK %Y-%m-%d %H:%M:%.S]” &
somn 5
stdbuf -oL găsi . -tip d 2>&1 | este „[GAȚI %Y-%m-%d %H:%M:%.S]” &
} >/root/out
Problemă majoră: producția Tshark este în întârziere
# stdbuf -oL tshark -tad -l -n | este „[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 RP 64 Cine are 172.31.x.x? Spune 172.31.x.x
Comparați marcajul de timp al lui ts ([TSRK 2021-08-18 17:40:56.206744]
) la cel al rechinului (2021-08-18 17:40:55.477802058
)
Producția este în urmă.
Jurnalul combinat afișează rezultatul găsirii înainte de a afișa rezultatul tshark.
În timp ce - în mod clar - activitatea în rețea trebuie să precedă rezultatul găsi
.
am incercat si eu paralel
paralel --line-buffer ::: \
'stdbuf -oL tshark -tad -l -n -s 9999 gazdă x | este „[TSRK %Y-%m-%d %H:%M:%.S]” ' \
'stdbuf -oL find . -tip d | este „[GAȚI %Y-%m-%d %H:%M:%.S]” ' \
>>/root/outpar
dar unealta exterioară nu pare să repare ceea ce este evident în neregulă cu unealta interioară... Rezultatul este același.
Cum fac asta corect?