if (ps aux | grep ntfs-3g | grep R | grep -v grep) ; then
# List of Hosts to check
HOSTS="192.168.178.10 192.168.178.11"
LOGFILE=/var/log/shutdwn.log
ONLINE=0
BACKUP=0
log() {
echo `date +%c` $1 >> $LOGFILE
}
log "Versuche DS auszuschalten" printf "\n", >> $LOGFILE
if (ps aux | grep rsnapshot | grep -v grep) ; then
BACKUP=1
log "Backup läuft!" printf "\n" >> $LOGFILE
exit
fi
if (ps aux | grep ntfs-3g | grep -v grep | grep R); then
BACKUP=1
log "Kopiervorgang läuft!" printf "\n" >> $LOGFILE
exit
fi
for host in $HOSTS ; do
if ping -c 3 -w 1 $host > /dev/null; then
ONLINE=1
log "$host ist online!" printf "\n" >> $LOGFILE
fi
if [ $ONLINE -eq 0 ]; then
sleep 120
log "2. PING Versuch!" printf "\n" >> $LOGFILE
if ping -c 3 -w 1 $host > /dev/null; then
ONLINE=1
log "$host ist online!" printf "\n" >> $LOGFILE
fi
fi
if [ $ONLINE -eq 0 ] && [ $BACKUP -eq 0 ]; then
log "Diskstation wird heruntergefahren!" printf "\n" >> $LOGFILE
/usr/sbin/ntpdate -b de.pool.ntp.org
sleep 10
/sbin/poweroff
fi
done
Sat Sep 11 23:11:42 2010 Versuche DS auszuschalten
Sat Sep 11 23:11:48 2010 2. PING Versuch!
Sat Sep 11 23:11:51 2010 Diskstation wird heruntergefahren!
Sat Sep 11 23:12:03 2010 192.168.0.22 ist online!
Zaehler=0
while expr $Zaehler \< 8; do # Anzahl Wiederholungen
RET1=$(ping -c 1 192.168.1.1 | tail -1 | awk '{print $7}')
RET2=$(ping -c 1 192.168.1.2 | tail -1 | awk '{print $7}')
if [ "$RET1" = "100%" -a "$RET2" = "100%" ] ; then Zaehler=`expr $Zaehler + 1` ; else Zaehler=0 ; fi
sleep 900 #Wartezeit zwischen den Pings in Sekunden
done
poweroff
Das Skript müsse vermutlich als eigener Prozess gestartet werden damit es nicht das hochfahren der DS blockiert. Liest vieleicht jemand mit der weiß wie das gehen könnte?
#!/bin/sh
$F="/usr/bin/mysystemdown.sh"
case "$1" in
start)
if [ -x "$F" ] ; then
$F &
fi
;;
esac
Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.
Als Dankeschön schalten wir deinen Account werbefrei.