summaryrefslogtreecommitdiffstats
path: root/abs/core/linhes-scripts/idle.sh
diff options
context:
space:
mode:
Diffstat (limited to 'abs/core/linhes-scripts/idle.sh')
-rwxr-xr-xabs/core/linhes-scripts/idle.sh147
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