tail -f AND reading keyboard input
I'm trying to write a script that will ssh into a box, start a processes that needs to be monitored (by a human) for success or failure then move onto the next box and repeat.
I've been trying to use tail or tail -f on the log that the process writes to, but I've yet to find a way to get the script to read keyboard input while the tail -f is running.
Ideally I'd like to tail -f the log until I see the process was successful, press a key and have the script move on, OR press another key if the startup errors out and exit the script.
Is this possible?
So far I've only come up with:
#!/bin/bash
kb=""
until [ "$kb" == "n" ]; do
tail /var/log/java-app.log
read -t 1 kb
done
It mostly works, but it's klunky. I'm starting up java apps and there are pauses so occasionally the same 10 lines are repeated and I have to hit 'enter' to have the 'n' acknowledged. I'd really like to use tail -f and still read (ideally 2) different vars from the keyboard. Is this possible?
{edit} I'm actually thinking that tail -f /var/log/java-app.log | tee > ( grep -q "YADA YADA" ) Is my best bet. I can just ctrl+C if I find errors.
I'm trying to write a script that will ssh into a box, start a processes that needs to be monitored (by a human) for success or failure then move onto the next box and repeat.
I've been trying to use tail or tail -f on the log that the process writes to, but I've yet to find a way to get the script to read keyboard input while the tail -f is running.
Ideally I'd like to tail -f the log until I see the process was successful, press a key and have the script move on, OR press another key if the startup errors out and exit the script.
Is this possible?
So far I've only come up with:
#!/bin/bash
kb=""
until [ "$kb" == "n" ]; do
tail /var/log/java-app.log
read -t 1 kb
done
It mostly works, but it's klunky. I'm starting up java apps and there are pauses so occasionally the same 10 lines are repeated and I have to hit 'enter' to have the 'n' acknowledged. I'd really like to use tail -f and still read (ideally 2) different vars from the keyboard. Is this possible?
{edit} I'm actually thinking that tail -f /var/log/java-app.log | tee > ( grep -q "YADA YADA" ) Is my best bet. I can just ctrl+C if I find errors.
No comments:
Post a Comment