#!/bin/bash declare -i z z=0 i=0 filename=/var/lib/backuppc/$1.laststate echo "Starting wake on lan script" echo "Filename=$filename" cnt=$(ping -c 1 $1 | awk -F, '/received/{print $2*1}') echo "Count ping to host $1 = $cnt" if [ $cnt -eq 0 ]; then echo $cnt > $filename # Time to wait for machine to boot in minutes # Use value given as argument if [ -n "$2" ] && [ "$2" -eq "$2" ] 2>/dev/null; then min=$2 else echo " Second argument given is not a valid number! : $2" echo " Using default value: 2 minutes" min=2 fi m=$min"m" echo "Send WOL to $1 and wait $min minutes" sudo /usr/sbin/etherwake -i enp5s0 $1 sleep $m while [ $i = 0 -a $z -lt 18 ] do count=$(ping -c 5 $1 | awk -F, '/received/{print $2*1}') if [ $count -eq 0 ]; then echo "$1 is down" if [ $z -eq 17 ]; then echo "$1 not up after `expr $min + 3` minutes... exiting" exit 1 fi else i=1 echo "$1 is up" exit 0 fi sleep 10s z=z+1 done else echo $cnt > $filename exit 0 fi