Hallo,
ich habe auf ubuntuusers
http://wiki.ubuntuusers.de/Skripte/Auto_OFF
etwas praktischen für meinen Heimserver gefunden.
Allerdings müsste das Skript bei mir nur nach Userverbindungen und Samba schauen.
Die Option für Programme möchte ich mir zusätlich erstmal offen halten (auskommentiert)
Das läuft auch alles soweit ich das überblicken kann.
Zusätlich würde ich gern einen check der Überprüft ob es nach 22 Uhr ist..
dafür habe ich mir eigentlich
date | awk 'NR==1 {print $4}' | cut -b1-2
ausgedacht. Allerdings habe ich keine Ahnung wie ich das ins Skript bekomme. Wenn ich einfach in die if Abfrage zum Abbruch...
[ `date | awk 'NR==1 {print $4}' | cut -b1-2` >= 22 ]
... einbaue bekomme ich nur folgende Meldung...
"Zeile 58: [: 22: Einstelliger (unärer) Operator erwartet."
Leider weiß ich hier nicht weiter... Könnt ihr mir sagen wie ich das am sinnvollsten einbaue?
MfG
nnk
#!/bin/bash
#
#set -x
. /etc/autoshutdown.conf
logit()
{
logger -p local0.notice -s -- AutoShutdown: $*
}
IsOnline()
{
for i in $*; do
ping $i -c1
if [ "$?" == "0" ]; then
logit PC $i is still active, auto shutdown terminated
return 1
fi
done
return 0
}
IsBusy()
{
# Samba
if [ "x$SAMBANETWORK" != "x" ]; then
if [ `/usr/bin/smbstatus -b | grep $SAMBANETWORK | wc -l ` != "0" ]; then
logit samba connected, auto shutdown terminated
return 1
fi
fi
# #backuppc, wget, wsus, ....
# IsRunning $APPLICATIONS
# if [ "$?" == "1" ]; then
# return 1
# fi
# Read logged users
USERCOUNT=`who | wc -l`;
# No Shutdown if there are any users logged in
test $USERCOUNT -gt 0 && { logit some users still connected, auto shutdown terminated; return 1; }
IsOnline $CLIENTS
if [ "$?" == "1" ]; then
return 1
fi
return 0
}
COUNTFILE="/var/spool/shutdown_counter"
# turns off the auto shutdown
if [ "$AUTO_SHUTDOWN" = "true" ] || [ "$AUTO_SHUTDOWN" = "yes" ] || [ ???UHRZEITTEST??? ]; then
IsBusy
if [ "$?" == "0" ]; then
# was it not busy already last time? Then shutdown.
if [ test -e $COUNTFILE ]; then
# shutdown
rm -f $COUNTFILE
logit auto shutdown caused by cron
/sbin/halt
exit 0
else
# shut down next time
touch $COUNTFILE
logit marked for shutdown in next try
exit 0
fi
else
rm -f $COUNTFILE
#logit aborted
exit 0
fi
fi
logit malfunction
exit 1