1 votos

apagado de varios Mac después de un tiempo de ejecución de 24 horas?

Puedo apagar varios Mac en mi oficina (de 9 a 10 Macs) en mi oficina después de la comprobación de su tiempo de ejecución? Tengo un Mac, que actúa como un Servidor (con el sistema operativo del Servidor de la aplicación). SSH también está habilitada en todos los Mac, por lo que iniciar sesión de forma remota no es un problema. Quiero escribir un script que comprueba:

if the runtime >=24h then shutdown mac

Ahora no sé nada acerca de secuencias de comandos en un Mac, pero he hecho esto antes con powershell y las máquinas de windows.

Actualmente tengo este script:

#!/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

pero no sé cómo ejecutarlo en el mando a distancia Macintoshs

0voto

Douglas Puntos 10417

Usted puede hacer esto con un simple script de bash, el uptime comando y launchd. Si se ejecuta el comando, se le indicará la duración de la máquina ha sido:

$ uptime
6:08  up 20 days, 21:09, 4 users, load averages: 1.09 1.29 1.36

Así, el número que nos interesa es el "20", que vamos a evaluar en contra de nuestra condición de "1 día"

#!/bin/bash

#Maximum number of days to be up
max=1

#Get the uptime days and assign it to a variable
uptime_days=`uptime | cut -d " " -f 5`

if [ $uptime_days -ge $max ]
  then 
  shutdown -h now
fi

exit 0

Asegúrese de configurar el script ejecutable o no ejecutar:

chmod +x shutdown24.sh

Ahora, aquí está la parte más importante. Cuando se desea evaluar esto? Técnicamente, su podría tener este script se ejecute cada hora (o incluso nunca minuto) para evaluar si el equipo ha sido hasta por 24 horas.

Esto no es recomendable porque si por alguna razón el equipo se enciende a las 10:00am (porque la persona era tarde, por ejemplo) que no la quiere cerrar a las 10:00 de la mañana siguiente, cuando se encuentran en medio de su trabajo.

Así que, voy a asumir que usted desea que se ejecute a medianoche, por lo que no sin querer apagar la máquina, mientras que las personas están trabajando. Lo que usted necesita es utilizar lauchd y crear un .plist que define el trabajo (similar a la de Programador de Tareas) en Windows.

Supongamos que llamamos a la secuencia de comandos bash shutdown24.sh así que vamos a llamar nuestro .plsit com.user.shutdown24.plist

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
  "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.user.shutdown24</string>
    <key>ProgramArguments</key>
    <array>
        <string>/Users/USERNAME/Path_to_Scripts/shutdown24.sh</string>
    </array>
    <key>StartCalendarInterval</key>
    <array>
    <dict>
        <key>Hour</key>
        <integer>00</integer>
        <key>Minute</key>
        <integer>00</integer>
    </dict>

</dict>
</plist>

Copia este archivo a /Library/LaunchDaemons y, a continuación, cargarlo launchd:

sudo launchctl load com.user.shutdown24.plist

El trabajo será ejecutado como root y a las 12:00 cada mañana, se compruebe si el tiempo de actividad del sistema y el apagado si es mayor de 24 horas.

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