Using screen to monitor non-interactive scripts (or some other solution)
Posted
by
Michael
on Server Fault
See other posts from Server Fault
or by Michael
Published on 2010-11-08T18:17:07Z
Indexed on
2011/01/09
18:55 UTC
Read the original article
Hit count: 201
I have some autonomous scripts that run commands on remote machines over ssh. These scripts rely on getting stdout, stderr, and the return code of each command run. I want to be able to monitor the progress of the scripts on each target machine so that I can see if something has hung and possibly intervene if necessary.
My initial idea was to have the scripts run commands in a screen session, so that the person monitoring could simply attach to the session with screen -x
. However, it was hard to do that from a script since screen is an interactive program. I can send a command to the screen session with screen -S session -X stuff "command^M"
, but then I don't get the output and return code that I need back.
My second idea was to put script /path/to/log
in ~/.bash_profile
and log the entire session to a file. Then the monitoring person could simply tail the log file. However, this doesn't provide the interactivity that I was looking for.
Any ideas on how to solve this problem?
© Server Fault or respective owner