2 votos

¿Cuál es el mejor enfoque para expulsar el disco mientras está en modo de suspensión, programado?

Por lo tanto, tengo un disco duro externo que se utiliza para Time Machine.

Después de llegar a casa, suelo conectar mi MacBook a un disco duro a través del Hub y lo pongo en modo de reposo. Como a veces vuelvo a casa tarde durante la noche, la copia de seguridad de Time Machine puede realizarse durante la medianoche. Sin embargo, por la mañana tengo que despertar mi mac, sólo para expulsar con seguridad el HDD y poner el MacBook en modo de reposo de nuevo para sacar mi MacBook.

Así que busqué con el fin de crear un trabajo de expulsión de disco programado que se puede ejecutar durante el sueño. Busqué soluciones como crond , launchd pero incluso launchd no puede ejecutar un script durante el modo de suspensión si he entendido bien el documentación - incluso si establezco un trabajo con StartCalendarInterval no se invocará hasta que se despierte el MacBook.

¿Hay alguna aplicación comercial u otros enfoques que se puedan utilizar para mi situación?

Mi OSX es la última versión de Mojave.

3voto

moodforaday Puntos 2633

Creo que la sugerencia del Ahorro de Energía es un buen punto de partida:

" Preferencias del Sistema " Ahorro de Energía " Programar y configurarlo para, por ejemplo, 30 minutos antes de salir a trabajar.

Sin embargo, me gustaría no programarlo para volver a dormir a menos que sabrá que realmente ha conseguido expulsar el disco. De lo contrario, podría tener el disco no expulsar por alguna razón, y luego si retira la unidad, obtendrá ese terrible mensaje sobre la expulsión de una unidad de forma incorrecta.

Digamos que quieres salir a trabajar a las 8:00 de la mañana.

Configura el Ahorro de Energía para que el ordenador se despierte a las 7:30 de la mañana.

Entonces usaría Maestro del teclado para ejecutar un script a las 7:35 de la mañana para desmontar la unidad. (Puede programar horas específicas para las macros en Keyboard Maestro).

El primer paso de la macro sería un shell script para desmontar la unidad.

Tengo un shell script para hacer esto ya, así que lo comparto aquí. Puedes añadir un shell script como paso de una macro de Keyboard Maestro.

Lo único que hay que hacer es cambiar el DRIVE="/Volumes/Time Machine" para reflejar dónde se monta su unidad de Time Machine.

#!/bin/zsh -f

    ## Change this to wherever your Time Machine drive mounts
DRIVE="/Volumes/Time Machine"

    ## Change this to however many times you want to try before
    ## the script considers itself to have failed.
MAX_ATTEMPTS="100"

    ## Only change this if you know you need to
PATH=/usr/local/bin:/usr/bin:/usr/sbin:/sbin:/bin

    ## initialize the counter. Don't change this :-)
COUNT=0

    ## This `while` loop will keep going until the drive no longer appears at the mount
    ## point, or we exceed the number of attempts we defined above.
while [[ -d "$DRIVE" ]]
do
        # increment counter
    ((COUNT++))

        # check to see if we have exceeded maximum attempts
    if [ "$COUNT" -gt "$MAX_ATTEMPTS" ]
    then

        echo "Exceeded '$MAX_ATTEMPTS' trying to eject '$DRIVE'."

            ## This will cause the script to fail
            ## which should cause the Keyboard Maestro macro to fail
            ## so it won't go to sleep, so you'll know that you
            ## have to manually eject the drive
        exit 1
    fi

        # don't sleep the first time through the loop
    [[ "$COUNT" != "1" ]] && sleep 10

        # This is where we try to eject the drive
    diskutil eject "$DRIVE"

done

exit 0

El segundo paso de la macro es una función incorporada en Keyboard Maestro para poner el ordenador en reposo.

Sin embargo, si el primer paso de la macro falla (es decir, si la unidad NO se expulsa), el ordenador no volverá a dormir.

1voto

Edd Growl Puntos 58

Puede programar su MacBook para que se despierte antes de su trabajo de expulsión de disco programado y vuelva a dormir después (algo así como despertar a las 5:00, dormir a las 5:05 y su trabajo de expulsión en el medio).

de Soporte técnico de Apple :

  1. En el menú Apple, seleccione Preferencias del Sistema y, a continuación, haga clic en Ahorro de energía.

  2. Haga clic en el botón Programar y utilice las casillas de verificación y los menús emergentes para elegir cuándo arrancar, despertar, dormir, reiniciar o apagar.

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