Linux: repeatedly run a command to monitor output

If you need to repeatedly run a command and view the output changes over time then check out my cli_watch.pl script. I was watching a RAID array rebuild slowly and needed a way to see the progress over time.

Usage: cli_watch.pl [--delay 15] [--line 3] command

Run my_command every 15 seconds:

cli_watch.pl --delay 15 'my_command | grep stuff'

Filter output to only line 2:

cli_watch.pl --line 2 'ping -c 1 192.168.5.222'

Leave A Reply - 1 Reply
Replies
Matthew 2023-11-17 05:43pm - No Email - Logged IP: 70.95.17.211

There is a standard watch command (part of procps on linux, and its own watch package in homebrew on MacOS) which might be lighter weight than running a perl script.

It has options to highlight differences and to set the time between invocations, as well as some other nice flags.

It doesn't have a 'specific line number' option, though you could use awk (... | awk 'NR==12') / sed (.... | sed -n 12p) for that (though I can never remember those syntaxes, I end up looking them up when I need them :) )

All content licensed under the Creative Commons License