0 votos

Ejecutar un script de forma remota a una hora determinada en varios Mac?

Estoy intentando ejecutar este script en 9-10 Macs remotos a las 11:30 pm:

#!/bin/bash
BOOT_TIME=$(sysctl -n kern.boottime | sed -e 's/.* sec = \([0-9]*\).*/\1/')
CURR_TIME=$(date +%s)
MAX_UPDAYS=1 #Days

DAYS_UP=$(( ( $CURR_TIME - $BOOT_TIME) / 86400 ))
    if [ $DAYS_UP -ge ${MAX_UPDAYS} ];then
        echo Mac is going to shutdown 
        shutdown -h now
    else
        echo No shutdown needed
fi

El problema es que quiero ejecutarlo todos los días a las 23:30, automáticamente por supuesto, sin tocar ninguno de los Macs. Tengo un servidor Mac que tiene OS X Server instalado y tiene una conexión SSH que funciona con todos los demás Mac.

¿Hay alguna forma de que el script se ejecute en todos los Mac (Mac1, Mac2, etc.) a las 23:30?

0voto

Jose Chavez Puntos 645

Sí, puede configurar un cronjob para ejecutar su script a la hora especificada.

Para hacerlo de forma remota, tendrás que dejar que cron ejecute un comando como éste para cada Mac:

ssh usuario@Mac1 'bash -s' < /ruta/a/mi_script.sh

Donde mi_script.sh es el script que tiene en su pregunta, guardado como archivo en el servidor, y Mac1 es el nombre de host o IP de uno de sus Macs.

Debe poder acceder por ssh a cada Mac sin tener que introducir una contraseña. Si no dispone de esta configuración, deberá generar una clave en el servidor y añadirla al archivo ~/.ssh/authorized_keys de cada uno de los Mac cliente.

Para añadirlo a cron, sólo tendrás que introducir el comando crontab -e y añada una línea como ésta:

30 23 * * * ssh user@Mac1 'bash -s' < /path/to/my_script.sh

Esto significa ejecutar el comando a las 23:30 todos los días.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X