Wie kann ich das Time Machine-Sicherungslaufwerk nach jeder Sicherung automatisch auswerfen?

25

Wie stelle ich Time Machine so ein, dass mein externes Time Machine-Sicherungslaufwerk nach jeder Sicherung automatisch ausgeworfen wird?

Adam A
quelle
4
Eine interessante Beobachtung: Wenn Sie eine TimeMachine-Sicherung auf einem Netzwerklaufwerk durchführen, wird TimeMachine die Remote-TimeMachine-Freigabe auf dem Netzwerklaufwerk automatisch bereitstellen, sichern und dann deaktivieren. Ich frage mich, ob Sie das ausnutzen könnten, um das zu erreichen, was Sie wollen?
Ian C.

Antworten:

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>

Machen Sie das Skript ausführbar, entladen Sie die Standard-Plist und laden Sie die neue:

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

Jedes Mal, wenn Sie Änderungen an der Plist-Datei vornehmen möchten, müssen Sie sie entladen und laden:

launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist
Lri
quelle
1
Ich liebe diese Lösung. Ich habe diesen Prozess weiter automatisiert, um die Arbeit zu aktivieren und zu deaktivieren, wenn ich mein Laufwerk nach einem Zeitplan einstecke. Besuchen Sie meinen Beitrag hier: somethinginteractive.com/blog/2013/07/24/…
Mike Kormendy
Auf Maveriks hat das bei mir nicht funktioniert, seltsamerweise hat sich das Skript wiederholt und das Backup wurde kontinuierlich durchgeführt. Die folgende Änderung funktioniert jedoch: <key> ProgramArguments </ key> <array> <string> / Users / martin / bin / timemachine </ string> </ array>
Martin
somethinginteractive.com ist inaktiv
Pro Backup
6

Es könnte einen besseren Weg geben, aber eine Lösung könnte darin bestehen, es mit Applescript zu versehen. Ich habe noch keine Möglichkeit gefunden, ein Applescript nach einer Sicherung auszuführen, aber Sie könnten:

  1. Deaktivieren Sie die automatische TM-Sicherung
  2. Richten Sie ein AppleScript zum Ausführen von TM ein
    • Ein bisschen googeln hat diese Zeile aufgedreht, um einen sofortigen TM-Build zu erzwingen: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Fügen Sie eine Zeile hinzu, um die CD danach auszuwerfen.
    • eject disk somedrivename

Wenn dies regelmäßig geschehen soll, können Sie es einem Cron-Job zuordnen.

Fischtoaster
quelle
1
Sieht vielversprechend aus, aber es muss eine Möglichkeit geben, # 3 erst nach # 2 zu starten.
Adam A
Wenn ich mich erinnere, werde ich versuchen, dies aufzurüsten und zu testen, wenn ich heute Abend nach Hause komme (und versuchen, das Warten auf das Ende der Sicherung vor dem Auswerfen zu erzwingen).
Fishtoaster
Dies ist eine ähnliche Idee unter Mac OS X Hinweise unter Verwendung eines Python-Skripts.
Nathan Grigg
6

Ich habe es nicht ausprobiert, aber es sieht so aus, als würde es funktionieren:

Jettison (Mac App Store Link)

Wirft externe Laufwerke aus dem Energiesparmodus aus und aktiviert sie erneut, wenn sie aus dem Energiesparmodus geweckt werden.

Jim Greer
quelle