-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Hi,

On 15/07/18 17:35, Andrew McGlashan via luv-main wrote:
> Hi,
> 
> On 15/07/18 16:33, Russell Coker via luv-main wrote:
>> What's a good real-time log watching program?
> 
>> This is something I've wanted for a while but not had the 
>> inclination to get it going.  The thing that finally made me
>> want to do it is when my workstation gave the below log messages
>> and decided to stop supporting USB 3.0 ports.  As the ports that
>> are most convenient for connecting my keyboard and mouse are USB
>> 3.0 that was inconvenient.  Removing the xhci modules and loading
>> them again fixed the problem.  So what I want in this instance is
>> a program that will detect one of the below messages and then run
>> a script that will run some rmmod and modprobe commands to fix
>> it.  I want it to know which log entries it has dealt with to
>> avoid performing the operation twice (which would cause problems)
>> or maybe have a list of log messages in the problem solved
>> category.
> 
>> Any suggestions?
> 
> 
>> [18408.111698] xhci_hcd 0000:06:00.0: xHCI host not responding
>> to stop endpoint command. [18408.111716] xhci_hcd 0000:06:00.0:
>> xHCI host controller not responding, assume dead [18408.111738]
>> xhci_hcd 0000:06:00.0: HC died; cleaning up [18408.111747]
>> xhci_hcd 0000:06:00.0: Timeout while waiting for configure
>> endpoint command
> 
> Simple bash?
> 
> 
> $ l --full-time coker* -rw-r--r-- 1 andrewm andrewm 60 2018-07-15
> 17:23:06.450452422 +1000 coker-test.log -rw-r--r-- 1 andrewm
> andrewm 12 2018-07-15 17:23:06.450452422 +1000 
> coker-test.action-time -rw-r--r-- 1 andrewm andrewm  0 2018-07-15
> 17:23:07.278459755 +1000 coker-test.lastdone
> 
> 
> 
> 
> In another terminal:
> 
> $ (tail -n0 -f coker-test.log |egrep --line-buffered '(aaa|aab)')
> >> coker-test.action-time & (while :;do [[ coker-test.action-time
> -nt coker-test.lastdone ]] && { echo do stuff;touch 
> coker-test.lastdone;break; };sleep 10;echo -n .;done)
> 
> Then echo some strings to coker-test.log from first terminal.
> 
> ( Check status in second terminal each time)
> 
> $ echo zzz >> coker-test.log $ echo aab >> coker-test.log
> 
> The echo of aab will cause the second terminal to show the
> following and quit the loop:
> 
> 
> ...do stuff
> 
> The testing each 10 seconds (with sleep), so about 30 seconds in
> it sees the aab string.
> 
> $ ls -lart --full-time coker* -rw-r--r-- 1 andrewm andrewm 68
> 2018-07-15 17:24:09.579011308 +1000 coker-test.log -rw-r--r-- 1
> andrewm andrewm 16 2018-07-15 17:24:09.579011308 +1000 
> coker-test.action-time -rw-r--r-- 1 andrewm andrewm  0 2018-07-15
> 17:24:13.259043876 +1000 coker-test.lastdone
> 
> 
> When you are happy that is all working fine, wrap the above to keep
> it active:
> 
> while :;do (tail -n0 -f coker-test.log |egrep --line-buffered 
> '(aaa|aab)') >> coker-test.action-time & (while :;do [[ 
> coker-test.action-time -nt coker-test.lastdone ]] && { echo do 
> stuff;touch coker-test.lastdone;break; };sleep 10;echo -n
> .;done);done

The multitail option runs the "command" for every single match, the
original bash method seems best so far.

Cheers
A.

-----BEGIN PGP SIGNATURE-----

iF4EAREIAAYFAltLSZIACgkQqBZry7fv4vurOAEA1GQYhjM/MyidTnv1u1GRVh/T
pCT8slYx1QzoPsyY1jsA/jeBTvwfdfqDz5svId473SrTKLTcw5/uMtdydxQm2xRv
=8bJ0
-----END PGP SIGNATURE-----
_______________________________________________
luv-main mailing list
[email protected]
https://lists.luv.asn.au/cgi-bin/mailman/listinfo/luv-main

Reply via email to