¿Puedo configurar mi Macbook para desmontar todas las unidades externas cuando cierro la tapa?

10

Tengo un nuevo Macbook Pro de 13 "con Mavericks. Esta computadora está conectada a una unidad USB externa que uso para mis copias de seguridad de Time Machine y para el almacenamiento externo. Las copias de seguridad de Time Machine se realizan varias veces al día y la unidad está prácticamente inactiva durante la mayor parte del día.

Cuando me apresuro a una reunión, a la sala de servidores o me dirijo a casa al final del día, me gustaría hacer lo siguiente:

  1. Cierre la tapa de mi Macbook, rápidamente.
  2. Haga que la Mac desmonte automáticamente todas las unidades externas lo más rápido posible y, de ser necesario, a la fuerza. Estoy dispuesto a esperar unos segundos a que se apaguen todas las luces.

¿Hay alguna forma de que la computadora desmonte automáticamente todas las unidades externas tan pronto como cierre la tapa de mi Mac?

Actualmente, si me olvido de desmontar las unidades externas, mi Mac me reprende más tarde con el error "El disco no se expulsó correctamente. Si es posible, siempre extraiga un disco antes de desenchufarlo o apagarlo".

Sé que es una buena práctica siempre desmontar un disco de forma limpia antes de quitar la interfaz del disco, pero estoy buscando una solución automatizada. No me preocupa mucho que una imagen de copia de seguridad de Time Machine esté interrumpida o dañada, ya que una de las siguientes copias de seguridad subsiguientes funcionará y muy rara vez necesito restaurar desde una copia de seguridad. Dado que el sistema de archivos es un sistema de archivos de registro por diario, la revista se ocupa de forma transparente de muchos otros errores de corrupción del sistema de archivos.

    
pregunta Stefan Lasiewski 09.12.2013 - 20:35

3 respuestas

8

Hay una serie de aplicaciones que pueden ejecutar scripts en suspensión:

  • SleepWatcher : simple pero efectivo.
  • Escenario : también puede ejecutar scripts en otros momentos, como después de la activación.
  • ControlPlane : más personalizable, le permite ejecutar scripts después de muchos eventos diferentes.

Una secuencia de comandos de bash como la siguiente desmontará todos los discos especificados:

VOLUMES="/Volumes/drive1 /Volumes/drive2 /Volumes/drive3"
for volume in $VOLUMES ; do [ -d $volume ] && umount -f $volume done

Para desmontar todos los volúmenes excepto / :

umount -A

o más limpio ...

osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
respondido por el grg 09.12.2013 - 20:42
6

Otra opción es Jettison (disponible a través de la App Store): eso es lo que he estado usando durante un par de meses Ahora y no he tenido ningún problema en absoluto. Recientemente se ganó la opción de volver a montar automáticamente los discos aún conectados cuando se despierta del modo de suspensión.

La versión v1.3.0 más nueva (solo descarga directa; supongo que está en camino a la App Store) cuesta más y explica por qué esto se encuentra en sus Preguntas frecuentes.

Si lo leo correctamente, uno podría comprar la versión de App Store por dos dólares y luego actualizar a la versión de descarga directa de forma gratuita, pero no he confirmado ni intentado esto.

No es exactamente caro a ninguno de los dos precios, pero no es gratis como parece ser la opción SleepWatcher.

    
respondido por el man8 02.01.2014 - 19:02
4

Daré más detalles sobre la respuesta de @grgarside.

Estoy usando SleepWatcher

  1. Instalar desde puertos:

    sudo port install sleepwatcher
    
  2. Lea el manual en /opt/local/share/doc/sleepwatcher/ReadMe.rtf y a través de man sleepwatcher . Lee este antiguo Machint de Macworld: Cura una Mac insomne con el sistema SleepWatcher . De acuerdo con Machint, simplemente puedo agregar código a ~/.sleep y ~/.wakeup , o a los archivos globales /etc/rc.sleep & /etc/rc.wakeup .

  3. Coloque el siguiente código en ~/.sleep :

    osascript -e 'tell application "Finder" to eject (every disk whose ejectable is true)'
    
  4. Activar sleepwatcher. Cambie <key>Disabled</key><true/> a <key>Disabled</key><false/> .

    sudo vim /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl load /Library/LaunchDaemons/org.macports.sleepwatcher.plist
    sudo launchctl list | grep sleepwatcher
    
  5. Verificar:

    ps aux |grep [s]leepwatcher
    root              421   0.0  0.0  2459568   1012   ??  Ss    2:45PM   0:00.00 /opt/local/bin/daemondo --label=sleepwatcher --start-cmd /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup ; --pid=exec
    root              422   0.0  0.0  2460656   1888   ??  S     2:45PM   0:00.17 /opt/local/sbin/sleepwatcher --verbose --sleep /opt/local/etc/rc.sleep --wakeup /opt/local/etc/rc.wakeup
    
  6. Hecho !

respondido por el Stefan Lasiewski 09.12.2013 - 23:36

Lea otras preguntas en las etiquetas