diff options
Diffstat (limited to 'abs/core/linhes-scripts/idle.sh')
-rwxr-xr-x | abs/core/linhes-scripts/idle.sh | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/abs/core/linhes-scripts/idle.sh b/abs/core/linhes-scripts/idle.sh deleted file mode 100755 index 4f6174c..0000000 --- a/abs/core/linhes-scripts/idle.sh +++ /dev/null @@ -1,147 +0,0 @@ -#!/bin/bash - -usage () { - echo "Usage: $0 [-h] [-s] [-t <minutes_needed>] [-l] [-w] [-m] [-r] [-v]" - echo - echo "-h - Print this help/usage message and quit" - echo "-s - Run silently (default is verbose)" - echo "-t - Minutes of idle time needed (default is 20)" - echo "-l - Check for user logins (default: false - do not check)" - echo "-w - Check for open windows (default: false - do not check)" - echo "-m - Include mythshutdown daily wake, locked, & about to start wake in system busy" - echo " (default: daily wake, locked & about to start wake is system idle)" - echo "-r - Check if mythfrontends are running (default: false - do not check)" - echo "-v - Be more verbose for debugging" - echo - echo "Silent mode is recommended for use in cron jobs or scripts." - exit $1 -} - -msg () { # A status reporting function - [ "$VERBOSE" -ne 0 ] && echo "$*" -} - -mysql_cmd () { - /usr/bin/mysql -u root mythconverg -sBe "$*" -} - -# Command line argument handling -VERBOSE=1 -LOGINS=0 -WINDOWS=0 -DAILY=0 -RUNNING=0 -TIME_BEFORE=20 -TIME_AFTER=5 # Only adjustable by editing here - -while getopts "hslwmrt:v" OPT ; do - case $OPT in - h) usage 0 ;; - s) VERBOSE=0 ;; - t) TIME_BEFORE=$OPTARG ;; - l) LOGINS=1 ;; - w) WINDOWS=1 ;; - m) DAILY=1 ;; - r) RUNNING=1 ;; - v) VERBOSE=2 ;; - *) usage 1 ;; - esac -done -# Check for extra cruft on the command line... -shift $(($OPTIND - 1)) -[ -n "$*" ] && usage 1 - -msg "Checking what MythTV is doing now or plans to within $TIME_BEFORE minutes..." -msg - -/usr/bin/mythshutdown --status -BUSY="$?" -msg "mythshutdown returned $BUSY" -if [ "$DAILY" -eq 0 ] ; then - msg " including daily wake, locked, and about to start wake as system idle" - # Ignore daily wake, locked and about to start wake flag values - BUSY=$(($BUSY & 0x2F)) - msg " mythshutdown returned $BUSY" -fi - -SCHEMALOCK=$(mysql_cmd "select count(*) from schemalock") -msg "schemalock $SCHEMALOCK" - -JOBS=$(mysql_cmd "select count(*) from jobqueue where status = 4") -msg "running jobs $JOBS" - -INUSE=$(mysql_cmd "select count(*) from inuseprograms") -msg "inuse programs $INUSE" - -UPCOMING=$(timeout 3 misc_upcoming_recordings.pl --plain_text --text_format "%rs " --heading "" --minutes $TIME_BEFORE --recordings -1 | wc -w) -msg "planned recordings $UPCOMING" -if [ "$VERBOSE" -ge 2 ] ; then - msg - timeout 3 /usr/LH/bin/misc_upcoming_recordings.pl --plain_text --minutes $TIME_BEFORE --recordings -1 -fi - -# Check all host's mythfrontends if they are running and playing -HOSTNAMES=$(mysql_cmd "select hostname from settings where value = 'FrontendIdleTimeout'") -FERUNNING=0 -PLAYING=0 -for HOST in $HOSTNAMES -do - if [ "$VERBOSE" -ge 2 ]; then - msg "Checking $HOST's mythfrontend status..." - fi -ncOUTPUT=$(timeout 2 nc $HOST 6546 << EOF -query location -quit -EOF -) - if [ "$RUNNING" -ge 1 ] ; then - if [[ "$ncOUTPUT" == *"# "* ]]; then - FERUNNING=$(( $FERUNNING + 1 )) - msg "$HOST's mythfrontend is running $FERUNNING" - else - msg "$HOST's mythfrontend is NOT running $FERUNNING" - fi - fi - if [[ "$ncOUTPUT" == *"# Playback "* ]]; then - PLAYING=$(( $PLAYING + 1 )) - msg "$HOST is playing a recording or video $PLAYING" - else - msg "$HOST is NOT playing a recording or video $PLAYING" - fi -done - -# Check for users logged in -if [ "$LOGINS" -ge 1 ] ; then - USERS=`/usr/bin/last | /bin/grep "still logged in" | awk '{ print $1 }'` - if [ -n "$USERS" ] ; then - LOGINS=1 - msg "The following user(s) are still logged in:" - msg "${USERS}" - else - LOGINS=0 - msg "No users are logged in $LOGINS" - fi -fi - -# Check for open windows -FOUNDWINDOWS=0 -if [ "$WINDOWS" -ge 1 ] ; then - /usr/LH/bin/xwin_find.sh -q '.*(mythtv@|xterm|Firefox|Namoroka|Opera|Chromium).*' - FOUNDWINDOWS="$?" - FOUNDWINDOWS=$(($FOUNDWINDOWS == 0)) - if [ "$FOUNDWINDOWS" -eq 0 ] ; then - msg "no application windows open $FOUNDWINDOWS" - else - msg "one or more application windows open $FOUNDWINDOWS" - fi -fi - -activities=$(($BUSY + $SCHEMALOCK + $JOBS + $INUSE + $UPCOMING + $FERUNNING + $PLAYING + $LOGINS + $FOUNDWINDOWS)) -msg -if [ "$activities" -eq 0 ] ; then - msg "System is idle" - exit 0 -else - msg "System is busy" - exit 1 -fi |