Jak automatycznie wysunąć dysk zapasowy Time Machine po każdej kopii zapasowej?


25

Jak ustawić Time Machine, aby automatycznie wysuwał mój zewnętrzny dysk kopii zapasowej Time Machine po każdej kopii zapasowej?


4
Ciekawa obserwacja: podczas tworzenia kopii zapasowej TimeMachine na dysku sieciowym TimeMachine automatycznie zamontuje, wykona kopię zapasową, a następnie odmontuje zdalny udział TimeMachine na dysku sieciowym. Zastanawiam się, czy możesz to wykorzystać, aby osiągnąć to, czego chcesz?
Ian C.

Odpowiedzi:


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"

~ / Biblioteka / 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>

Ustaw skrypt jako wykonywalny, zwolnij domyślną listę plików i załaduj nową:

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

Za każdym razem, gdy chcesz wprowadzić zmiany w pliku plist, musisz go rozładować i załadować:

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

1
Podoba mi się to rozwiązanie, dodatkowo zautomatyzowałem ten proces, aby montować i odmontowywać pracę po podłączeniu dysku i zgodnie z harmonogramem. Odwiedź mój post tutaj: somethinginteractive.com/blog/2013/07/24/...
Mike Körmendy

Na Maverikach to nie działało, co dziwne, skrypt zapętlił się, a tworzenie kopii zapasowej odbywało się w sposób ciągły. Następująca zmiana działa jednak: <key> ProgramArguments </key> <array> <string> / Users / martin / bin / timemachine </string> </array>
Martin


6

Może istnieć lepszy sposób, ale jednym z rozwiązań może być Applescript. Nie znalazłem jeszcze sposobu na uruchomienie skryptu jabłkowego po utworzeniu kopii zapasowej, ale możesz:

  1. Wyłącz automatyczne tworzenie kopii zapasowych TM
  2. Skonfiguruj skrypt jabłkowy, aby uruchomić TM
    • Niektórzy googling podkręcili tę linię, aby wymusić natychmiastową kompilację TM: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Dodaj linię, aby później wysunąć dysk.
    • eject disk somedrivename

Jeśli chcesz, aby tak się działo regularnie, możesz dołączyć go do zadania crona.


1
Wygląda obiecująco, ale musi istnieć sposób na rozpoczęcie # 3 dopiero po zakończeniu # 2.
Adam

Jeśli pamiętam, spróbuję to spreparować i przetestować, kiedy wrócę dziś wieczorem do domu (i spróbuję zmusić czekanie na zakończenie tworzenia kopii zapasowej przed wysunięciem).
Fishtoaster

Oto podobny pomysł w Mac OS X Hints , przy użyciu skryptu python.
Nathan Grigg

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.