Come espelle automaticamente l'unità di backup di Time Machine dopo ogni backup?


25

Come imposto Time Machine per espellere automaticamente l'unità di backup Time Machine esterna dopo ogni backup?


4
Un'osservazione interessante: quando si esegue un backup di TimeMachine su un'unità di rete, TimeMachine monterà automaticamente, eseguirà il backup e quindi smonterà la condivisione TimeMachine remota sull'unità di rete. Mi chiedo se potresti sfruttarlo per ottenere quello che vuoi?
Ian C.

Risposte:


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>

Rendi eseguibile lo script, scarica il plist predefinito e carica quello nuovo:

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

Ogni volta che si desidera apportare modifiche al file plist, è necessario scaricare e caricarlo:

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

1
Adoro questa soluzione, ho ulteriormente automatizzato questo processo per montare e smontare il lavoro quando collego la mia unità e secondo un programma. Visita il mio post qui: somethinginteractive.com/blog/2013/07/24/…
Mike Kormendy

Su Maveriks questo non ha funzionato per me, stranamente lo script è stato eseguito in loop e il backup è stato eseguito continuamente. La seguente modifica funziona però: <key> ProgramArguments </key> <array> <string> / Users / martin / bin / timemachine </string> </array>
Martin

somethinginteractive.com non funziona, versione archiviata: web.archive.org/web/20160409130936/http://…
Pro Backup

6

Potrebbe esserci un modo migliore, ma una soluzione potrebbe essere quella di applicarlo. Non ho ancora trovato il modo di eseguire un applecript dopo un backup, ma potresti:

  1. Disattiva il backup TM automatico
  2. Imposta uno script di mele per eseguire TM
    • Alcuni googling hanno alzato questa linea per forzare una build TM immediata: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Aggiungi una riga per espellere il disco in seguito.
    • eject disk somedrivename

Se vuoi che ciò accada regolarmente, puoi collegarlo a un cron job.


1
Sembra promettente, ma deve esserci un modo per iniziare il n. 3 solo dopo il n. 2.
Adam A

Se ricordo, proverò a sistemare questo e testarlo quando torno a casa stasera (e cercherò di imporre l'attesa del completamento del backup prima di espellere).
Fishtoaster


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.