您可以循环运行 sqlite。
双倒车
while true; do sqlite3 /tmp/db.db 'select * from (select * from j1939 order by timestamp desc limit 50) order by timestamp asc limit 50'; sleep 1; done | grep -E
简单的监控
$ while true; do sqlite3 /tmp/db.db 'select * from j1939 where id>(select max(id) from j1939)-50'; sleep 1; done
1621524|LOGIN1|838
1621525|LOGIN2|19
1621526|LOGIN3|839
1621527|LOGIN4|20
1621528|LOGIN5|839 (more...)
您可以过滤结果。
while true; do sqlite3 /tmp/db.db 'select * from j1939 where id>(select max(id) from j1939)-50'; sleep 1; done | grep -E LOGIN5|LOGIN3
1621526|LOGIN3|839
1621528|LOGIN5|839
您可以提取所需的列
while true; do sqlite3 /tmp/db.db 'select * from j1939 where id>(select max(id) from j1939)-50'; sleep 1; done | cut -d '|' -f 1-2
1621526|LOGIN3|839
1621528|LOGIN5|839
可能的改进
您也可以考虑将其添加到.bashrc
,因此您可以执行类似的操作
sqlitetailf /tmp/db.db j1939
1621524|LOGIN1|838
1621525|LOGIN2|19
1621526|LOGIN3|839
1621527|LOGIN4|20
1621528|LOGIN5|839
2秒后
1621524|LOGIN1|838
1621525|LOGIN2|19
1621526|LOGIN3|839
1621527|LOGIN4|20
1621528|LOGIN5|839
1621527|LOGIN6|20
1621528|LOGIN7|839