pfSense (FreeBSD) - tail -f not showing entire log when filtering with cut or sed
1
vote
0
answers
33
views
I have a strange problem when trying to display logs on pfSense (and I can reproduce the same problem on Ubuntu server also).
The problem is this (with examples):
I'm trying to display a running
dhcp
log with tail -f
. This works without problem when I just use it, like this:
$ tail -n 48 -f /var/log/dhcpd.log
Feb 4 10:43:01 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 dc:e5:5b:91:28:97], cid=[01:dc:e5:5b:91:28:97], tid=0x2cbc27bf: lease 10.10.1.62 has been allocated for 7200 seconds
Feb 4 10:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_START starting Lease File Cleanup
Feb 4 10:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_EXECUTE executing Lease File Cleanup using: /usr/local/sbin/kea-lfc -4 -x /var/lib/kea/dhcp4.leases.2 -i /var/lib/kea/dhcp4.leases.1 -o /var/lib/kea/dhcp4.leases.output -f /var/lib/kea/dhcp4.leases.completed -p /var/lib/kea/dhcp4.leases.pid -c ignored-path
Feb 4 10:59:03 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 10:59:03 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 10:59:03 vault dhclient: RENEW
Feb 4 10:59:03 vault dhclient: Creating resolv.conf
Feb 4 10:59:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 11:00:53 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 11:00:53 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 11:00:53 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 11:00:53 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 dc:a6:32:9a:15:72], cid=[ff:92:39:3b:55:00:02:00:00:ab:11:ac:47:9e:3e:13:09:39:5f], tid=0x656556fb: lease 10.10.2.4 has been allocated for 7200 seconds
Feb 4 11:03:43 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 11:03:43 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 11:03:43 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 11:03:43 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 04:d4:c4:76:16:b5], cid=[01:04:d4:c4:76:16:b5], tid=0x18d711b8: lease 10.10.2.22 has been allocated for 7200 seconds
Feb 4 11:06:14 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 11:06:14 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 11:06:14 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d058d0000] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 11:06:14 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 3c:ec:ef:06:a1:c1], cid=[01:3c:ec:ef:06:a1:c1], tid=0x26a022f: lease 10.10.2.1 has been allocated for 7200 seconds
Feb 4 11:29:04 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 11:29:04 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 11:29:04 vault dhclient: RENEW
Feb 4 11:29:04 vault dhclient: Creating resolv.conf
Feb 4 11:29:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 11:43:01 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05818900] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 11:43:01 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05818900] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 11:43:01 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05818900] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 11:43:01 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05818900] DHCP4_LEASE_ALLOC [hwtype=1 dc:e5:5b:91:28:97], cid=[01:dc:e5:5b:91:28:97], tid=0xac0108b7: lease 10.10.1.62 has been allocated for 7200 seconds
Feb 4 11:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_START starting Lease File Cleanup
Feb 4 11:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_EXECUTE executing Lease File Cleanup using: /usr/local/sbin/kea-lfc -4 -x /var/lib/kea/dhcp4.leases.2 -i /var/lib/kea/dhcp4.leases.1 -o /var/lib/kea/dhcp4.leases.output -f /var/lib/kea/dhcp4.leases.completed -p /var/lib/kea/dhcp4.leases.pid -c ignored-path
Feb 4 11:59:04 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 11:59:04 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 11:59:04 vault dhclient: RENEW
Feb 4 11:59:04 vault dhclient: Creating resolv.conf
Feb 4 11:59:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 12:00:53 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 12:00:53 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 12:00:53 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 12:00:53 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 dc:a6:32:9a:15:72], cid=[ff:92:39:3b:55:00:02:00:00:ab:11:ac:47:9e:3e:13:09:39:5f], tid=0x656556fb: lease 10.10.2.4 has been allocated for 7200 seconds
Feb 4 12:03:44 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 12:03:44 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 12:03:44 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 12:03:44 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 04:d4:c4:76:16:b5], cid=[01:04:d4:c4:76:16:b5], tid=0x6ba6e88e: lease 10.10.2.22 has been allocated for 7200 seconds
Feb 4 12:06:14 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_lan_0 evaluated to 1
Feb 4 12:06:14 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_opt4_0 evaluated to 1
Feb 4 12:06:14 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05817400] EVAL_RESULT Expression pool_opt5_0 evaluated to 1
Feb 4 12:06:14 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 3c:ec:ef:06:a1:c1], cid=[01:3c:ec:ef:06:a1:c1], tid=0x26a022f: lease 10.10.2.1 has been allocated for 7200 seconds
I'll then filter the results with grep
, which still works as expected:
$ tail -n 48 -f /var/log/dhcpd.log | grep -v 'Expression pool'
Feb 4 10:43:01 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 dc:e5:5b:91:28:97], cid=[01:dc:e5:5b:91:28:97], tid=0x2cbc27bf: lease 10.10.1.62 has been allocated for 7200 seconds
Feb 4 10:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_START starting Lease File Cleanup
Feb 4 10:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_EXECUTE executing Lease File Cleanup using: /usr/local/sbin/kea-lfc -4 -x /var/lib/kea/dhcp4.leases.2 -i /var/lib/kea/dhcp4.leases.1 -o /var/lib/kea/dhcp4.leases.output -f /var/lib/kea/dhcp4.leases.completed -p /var/lib/kea/dhcp4.leases.pid -c ignored-path
Feb 4 10:59:03 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 10:59:03 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 10:59:03 vault dhclient: RENEW
Feb 4 10:59:03 vault dhclient: Creating resolv.conf
Feb 4 10:59:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 11:00:53 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 dc:a6:32:9a:15:72], cid=[ff:92:39:3b:55:00:02:00:00:ab:11:ac:47:9e:3e:13:09:39:5f], tid=0x656556fb: lease 10.10.2.4 has been allocated for 7200 seconds
Feb 4 11:03:43 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 04:d4:c4:76:16:b5], cid=[01:04:d4:c4:76:16:b5], tid=0x18d711b8: lease 10.10.2.22 has been allocated for 7200 seconds
Feb 4 11:06:14 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 3c:ec:ef:06:a1:c1], cid=[01:3c:ec:ef:06:a1:c1], tid=0x26a022f: lease 10.10.2.1 has been allocated for 7200 seconds
Feb 4 11:29:04 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 11:29:04 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 11:29:04 vault dhclient: RENEW
Feb 4 11:29:04 vault dhclient: Creating resolv.conf
Feb 4 11:29:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 11:43:01 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05818900] DHCP4_LEASE_ALLOC [hwtype=1 dc:e5:5b:91:28:97], cid=[01:dc:e5:5b:91:28:97], tid=0xac0108b7: lease 10.10.1.62 has been allocated for 7200 seconds
Feb 4 11:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_START starting Lease File Cleanup
Feb 4 11:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_EXECUTE executing Lease File Cleanup using: /usr/local/sbin/kea-lfc -4 -x /var/lib/kea/dhcp4.leases.2 -i /var/lib/kea/dhcp4.leases.1 -o /var/lib/kea/dhcp4.leases.output -f /var/lib/kea/dhcp4.leases.completed -p /var/lib/kea/dhcp4.leases.pid -c ignored-path
Feb 4 11:59:04 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 11:59:04 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 11:59:04 vault dhclient: RENEW
Feb 4 11:59:04 vault dhclient: Creating resolv.conf
Feb 4 11:59:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 12:00:53 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 dc:a6:32:9a:15:72], cid=[ff:92:39:3b:55:00:02:00:00:ab:11:ac:47:9e:3e:13:09:39:5f], tid=0x656556fb: lease 10.10.2.4 has been allocated for 7200 seconds
Feb 4 12:03:44 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 04:d4:c4:76:16:b5], cid=[01:04:d4:c4:76:16:b5], tid=0x6ba6e88e: lease 10.10.2.22 has been allocated for 7200 seconds
Feb 4 12:06:14 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 3c:ec:ef:06:a1:c1], cid=[01:3c:ec:ef:06:a1:c1], tid=0x26a022f: lease 10.10.2.1 has been allocated for 7200 seconds
Finally, I want to cut the column width with cut
(or make string manipulation with sed
), but then the problems begin. As you can see from the output, this results in the latest line of the log not being included.
$ tail -n 48 -f /var/log/dhcpd.log | grep -v 'Expression pool' | cut -c -223
Feb 4 10:43:01 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05817400] DHCP4_LEASE_ALLOC [hwtype=1 dc:e5:5b:91:28:97], cid=[01:dc:e5:5b:91:28:97], tid=0x2cbc27bf: lease 10.10.1.62 has been allocated for 7200 second
Feb 4 10:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_START starting Lease File Cleanup
Feb 4 10:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_EXECUTE executing Lease File Cleanup using: /usr/local/sbin/kea-lfc -4 -x /var/lib/kea/dhcp4.leases.2 -i /var/lib/kea/dhcp
Feb 4 10:59:03 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 10:59:03 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 10:59:03 vault dhclient: RENEW
Feb 4 10:59:03 vault dhclient: Creating resolv.conf
Feb 4 10:59:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 11:00:53 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 dc:a6:32:9a:15:72], cid=[ff:92:39:3b:55:00:02:00:00:ab:11:ac:47:9e:3e:13:09:39:5f], tid=0x656556fb: lease 10.10.2.4
Feb 4 11:03:43 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 04:d4:c4:76:16:b5], cid=[01:04:d4:c4:76:16:b5], tid=0x18d711b8: lease 10.10.2.22 has been allocated for 7200 second
Feb 4 11:06:14 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d058d0000] DHCP4_LEASE_ALLOC [hwtype=1 3c:ec:ef:06:a1:c1], cid=[01:3c:ec:ef:06:a1:c1], tid=0x26a022f: lease 10.10.2.1 has been allocated for 7200 seconds
Feb 4 11:29:04 vault dhclient: DHCPREQUEST on igc2 to 147.78.28.48 port 67
Feb 4 11:29:04 vault dhclient: DHCPACK from 147.78.28.48
Feb 4 11:29:04 vault dhclient: RENEW
Feb 4 11:29:04 vault dhclient: Creating resolv.conf
Feb 4 11:29:04 vault dhclient: bound to XX.XX.XX.XX -- renewal in 1800 seconds.
Feb 4 11:43:01 vault kea-dhcp4: INFO [kea-dhcp4.leases.0x313d05818900] DHCP4_LEASE_ALLOC [hwtype=1 dc:e5:5b:91:28:97], cid=[01:dc:e5:5b:91:28:97], tid=0xac0108b7: lease 10.10.1.62 has been allocated for 7200 second
Feb 4 11:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_START starting Lease File Cleanup
Feb 4 11:51:54 vault kea-dhcp4: INFO [kea-dhcp4.dhcpsrv.0x313d05812000] DHCPSRV_MEMFILE_LFC_EXECUTE executing Lease File Cleanup using: /usr/local/sbin/kea-lfc -4 -x /var/lib/kea/dhcp4.leases.2 -i /var/lib/kea/dhcp
As you can see, the timestamps with cut stop with 11:51:54
, while the latest entry is in fact 12:06:14
. This is completely reproducible, but it differs how much of the log tail is not included.
Also, this is both tested on pfSense and Ubuntu, with cut
and sed
, and I get the same behavior of the entire log tail not getting included most of the time.
Can anyone explain what's happening here? And any suggestions for a working method to do this? I would like to follow the log tail, while at the same time being able to filter the output with cut
and/or sed
, and be sure that the latest lines are always included.
Asked by Artur Meinild
(792 rep)
Feb 4, 2024, 11:21 AM
Last activity: Feb 4, 2024, 11:32 AM
Last activity: Feb 4, 2024, 11:32 AM