Tengo este script para apagar las 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]*\).*//')
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 del terminal funciona bien, las Mac que están en línea más de 24 horas se apagan, todo lo demás no hace nada.
Hasta ahora todo bien, pero quiero ejecutar este script a través de un cronjob todos los días a las 23:00 horas. Así que hice este cronjob:
00 23 * * * /Users/admin/Shutdown/Shutdown.sh
Ahora el script se ejecuta todos los días, la propia línea cron funciona. Sin embargo, las Mac no se apagarán y el registro simplemente dice que las Mac no se ejecutaron durante más de 24 horas. Aunque con frecuencia tengo Mac que funcionan con más de 3 a 4 días.
¿Alguien sabe cómo resolver este problema?
Editar: agregué $BOOT_TIME
y $CURR_TIME
al registro, y da algo como esto: 1492549200
como CURR_TIME
y nada como BOOT_TIME
, aunque la Mac definitivamente estaba funcionando, ya que es en este momento (6 días en línea). Sin embargo, esta Mac tiene OSX Sierra instalada y otra Mac (con OS X El Capitan) puso BOOT_TIME
como 1492505076
y CURR_TIME
como 1492549200
Realmente no sé qué significan estos números, sin embargo ...