Así que tengo este script para el apagado de Mac después de 24 horas de tiempo de ejecución.
#!/bin/bash
my_macs=( Mac1 Mac2 Mac3 )
MAX_UPDAYS=1
CURR_TIME=$(date +%s)
MAX_UPTIME=$(( MAX_UPDAYS * 86400 ))
ADMINUSER="pcpatch"
echo "Remote Shutdown Check vom $(date)" | tee -a /Users/admin/Shutdown/Log/Shutdown 2>&1
for MAC in "${my_macs[@]}"
do
echo -n "Überprüfe ${MAC}... "
if /sbin/ping -q -c3 "${MAC}" >/dev/null; then
echo "${MAC} ist angeschaltet. Laufzeit wird ermittelt... "
BOOT_TIME=0
BOOT_TIME=$(ssh "${ADMINUSER}@${MAC}" sysctl -n kern.boottime | sed -e 's/.* sec = \([0-9]*\).*/\1/')
if [ "$BOOT_TIME" -gt 0 ] && [ $(( CURR_TIME - BOOT_TIME )) -ge $MAX_UPTIME ]; then
echo "${MAC} ist über 24 Stunden online. Shutdown wird ausgeführt!"
ssh "${ADMINUSER}@${MAC}" 'sudo /sbin/shutdown -h now'
else
echo "${MAC} ist noch keine 24 Stunden online. Shutdown wird abgebrochen!"
fi
else
echo "${MAC} ist nicht erreichbar (Ping fehlgeschlagen)"
fi
done | tee -a /Users/pcpatch/Shutdown/Log/Shutdown 2>&1
echo " " | tee -a /Users/pcpatch/Shutdown/Log/Shutdown 2>&1
Cuando lo ejecuto a través de la terminal funciona bien, los Mac que están en línea más de 24 horas de cerrar, todo lo demás no hace nada.
Hasta ahí todo bien, pero quiero ejecutar esta secuencia de comandos a través de un cronjob todos los días a las 23:00 horas. Así que he hecho este cronjob:
00 23 * * * /Users/admin/Shutdown/Shutdown.sh
Ahora, el script se ejecuta todos los días, el cron de la línea en sí funciona. Los Macs no apagado y aunque el registro dice que los Macs no ejecutar más de 24 horas. A pesar de que con frecuencia tienen los Mac que ejecutan más de 3-4 días.
¿Alguien sabe cómo solucionar este problema?
Edit: he añadido $BOOT_TIME
y $CURR_TIME
a la de registro, y se da somehing como esto: 1492549200
como CURR_TIME
y nada como el BOOT_TIME
, a pesar de que el Mac era definitivamente en ejecución, como es ahora (6 días en línea). Este Mac OSX Sierra instalado y aunque otro Mac (con OS X El Capitan) poner BOOT_TIME
como 1492505076
y CURR_TIME
como 1492549200
Yo realmente no sé lo que estas cifras podrían significar, aunque...