Como ejeto a unidade de backup do Time Machine automaticamente após cada backup?

25

Como configuro o Time Machine para ejetar minha unidade de backup externa do Time Machine automaticamente após cada backup?

Adam A
fonte
4
Uma observação interessante: ao fazer um backup do TimeMachine em uma unidade de rede, o TimeMachine irá montar, fazer backup e desmontar automaticamente o compartilhamento remoto do TimeMachine na unidade de rede. Gostaria de saber se você poderia explorar isso para conseguir o que deseja?
Ian C.

Respostas:

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>

Torne o script executável, descarregue o plist padrão e carregue o novo:

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

Sempre que você quiser fazer alterações no arquivo plist, é necessário descarregá-lo e carregá-lo:

launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist
Lri
fonte
1
Adoro esta solução, automatizei ainda mais esse processo para montar e desmontar o trabalho quando conecto minha unidade e dentro do cronograma. Visite meu post aqui: somethinginteractive.com/blog/2013/07/24/…
Mike Kormendy
No Maveriks, isso não funcionou para mim; estranhamente, o script fez um loop e o backup foi feito continuamente. A seguinte alteração funciona embora: <chave> ProgramArguments </ key> <array> <string> / Users / Martin / bin / timemachine </ string> </ array>
Martin
somethinginteractive.com está inoperante, versão arquivada: web.archive.org/web/20160409130936/http://…
Pro Backup
6

Pode haver uma maneira melhor, mas uma solução pode ser a Applescript. Ainda não encontrei nenhuma maneira de executar um AppleScript após um backup, mas você pode:

  1. Desativar o backup automático da TM
  2. Configurar um AppleScript para executar o TM
    • Alguns pesquisadores pesquisaram essa linha para forçar uma compilação imediata da TM: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Adicione uma linha para ejetar o disco posteriormente.
    • eject disk somedrivename

Se você deseja que isso aconteça regularmente, você pode anexá-lo a um trabalho cron.

Fishtoaster
fonte
1
Parece promissor, mas é preciso haver uma maneira de começar o número 3 somente após o término do número 2.
Adam A
Se bem me lembro, tentarei consertar isso e testá-lo quando chegar em casa hoje à noite (e tentarei forçar a espera pelo backup terminar antes de ejetar).
Fishtoaster 30/08/10
Aqui está uma idéia semelhante no Mac OS X Hints , usando um script python.
precisa