這個問題在這里已經有了答案: 如何“grep”連續流? (13 個回答) 13 小時前關閉。
我嘗試從我的 fail2ban.log 檔案中拖尾并從
2021-12-29 09:01:59,540 fail2ban.actions [1837]: NOTICE [ssh] Unban xxx.xxx.xxx.xxx
2021-12-29 09:02:06,290 fail2ban.filter [1837]: INFO [postfix-sasl] Found xxx.xxx.xxx.xxx - 2021-12-29 09:02:06
2021-12-29 09:02:31,525 fail2ban.filter [1837]: INFO [wordpress-xmlrpc] Ignore xxx.xxx.xxx.xxx by ip
2021-12-29 09:03:21,711 fail2ban.filter [1837]: INFO [postfix-sasl] Found xxx.xxx.xxx.xxx - 2021-12-29 09:03:21
2021-12-29 09:04:14,149 fail2ban.filter [1837]: INFO [ssh] Found xxx.xxx.xxx.xxx - 2021-12-29 09:04:13
2021-12-29 09:04:16,458 fail2ban.filter [1837]: INFO [ssh] Found xxx.xxx.xxx.xxx - 2021-12-29 09:04:15
2021-12-29 09:05:25,477 fail2ban.filter [1837]: INFO [postfix-sasl] Found xxx.xxx.xxx.xxx - 2021-12-29 09:05:25
到
2021-12-29 09:01:59,540 [ssh] Unban xxx.xxx.xxx.xxx
2021-12-29 09:02:06,290 [postfix-sasl] Found xxx.xxx.xxx.xxx - 2021-12-29 09:02:06
2021-12-29 09:02:31,525 [wordpress-xmlrpc] Ignore xxx.xxx.xxx.xxx by ip
2021-12-29 09:03:21,711 [postfix-sasl] Found xxx.xxx.xxx.xxx - 2021-12-29 09:03:21
2021-12-29 09:04:14,149 [ssh] Found xxx.xxx.xxx.xxx - 2021-12-29 09:04:13
2021-12-29 09:04:16,458 [ssh] Found xxx.xxx.xxx.xxx - 2021-12-29 09:04:15
2021-12-29 09:05:25,477 [postfix-sasl] Found xxx.xxx.xxx.xxx - 2021-12-29 09:05:25
我第一次嘗試
tail -f /var/log/fail2ban.log | tr -s ' ' | cut -d" " -f1,2,6-
但它不會產生任何輸出。沒有 cut 命令,它作業正常。因此,我嘗試將其通過管道輸入less而不是cut,但它也沒有輸出。我發現,tr -s在輸入為 EOF 之前無法進行任何輸出。那么,我該怎么做呢?
uj5u.com熱心網友回復:
您正在查看緩沖。它最終會列印一些東西,但只有當你有足夠的輸出來重繪 緩沖區時。這是一個常見的FAQ。
無論如何,您可以輕松地將其重構為單個 Awk 腳本,從而避免該問題。
tail -f /var/log/fail2ban.log |
awk '{ $3=$4=$5=""; sub(/ /, " ") }1'
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/397123.html
