¿Cómo expulso la unidad de copia de seguridad de Time Machine automáticamente después de cada copia de seguridad?


25

¿Cómo configuro Time Machine para expulsar mi unidad de copia de seguridad externa de Time Machine automáticamente después de cada copia de seguridad?


44
Una observación interesante: al hacer una copia de seguridad de TimeMachine en una unidad de red, TimeMachine automáticamente montará, realizará una copia de seguridad y luego desmontará el recurso compartido remoto de TimeMachine en la unidad de red. Me pregunto si podrías explotar eso para lograr lo que quieres.
Ian C.

Respuestas:


19

~ / bin / timemachine:

#!/bin/bash

d="Time Machine"  # (change this to match the name of your backup drive)
diskutil mount "$d" && tmutil startbackup -b && diskutil eject "$d"

~ / Library / LaunchAgents / timemachine_eject.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC -//Apple Computer//DTD PLIST 1.0//EN http://www.apple.com/DTDs/PropertyList-1.0.dtd>
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>timemachine_eject</string>
    <key>Program</key>
    <string>/Users/username/bin/timemachine</string> <!-- Replace "username" with your username. "~/bin/timemachine" doesn't work -->
    <key>StartInterval</key>
    <integer>120</integer> <!-- run every two minutes for testing. -->
        <!-- Change this to a higher number like 43200 (run every 12 hours) once you've confirmed it works. -->
</dict>
</plist>

Haga que el script sea ejecutable, descargue el plist predeterminado y cargue el nuevo:

chmod +x ~/bin/timemachine
sudo launchctl unload -w /System/Library/LaunchDaemons/com.apple.backupd-auto.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist

Cada vez que desee realizar cambios en el archivo plist, debe descargarlo y cargarlo:

launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist

1
Me encanta esta solución, automaticé aún más este proceso para montar y desmontar el trabajo cuando conecto mi unidad y en un horario. Visita mi publicación aquí: somethinginteractive.com/blog/2013/07/24/…
Mike Kormendy

En Maveriks esto no funcionó para mí, curiosamente, el script se repitió y la copia de seguridad se realizó de forma continua. Sin embargo, el siguiente cambio funciona: <key> ProgramArguments </key> <array> <string> / Users / martin / bin / timemachine </string> </array>
Martin

somethinginteractive.com está caído, versión archivada: web.archive.org/web/20160409130936/http://…
Pro Backup el

6

Puede haber una mejor manera, pero una solución podría ser Applescript. Todavía no he encontrado ninguna manera de ejecutar un AppleScript después de una copia de seguridad, pero podría:

  1. Desactiva la copia de seguridad automática de TM
  2. Configurar un AppleScript para ejecutar TM
    • Al buscar en Google apareció esta línea para forzar una compilación inmediata de TM: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Agregue una línea para expulsar el disco después.
    • eject disk somedrivename

Si desea que esto suceda regularmente, puede adjuntarlo a un trabajo cron.


1
Parece prometedor, pero debe haber alguna forma de comenzar el n. ° 3 solo después de que finalice el n. ° 2.
Adam A

Si recuerdo, intentaré arreglar esto y probarlo cuando llegue a casa esta noche (y trataré de hacer cumplir la espera de que termine la copia de seguridad antes de expulsarla).
Fishtoaster


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.