Comment éjecter automatiquement le lecteur de sauvegarde Time Machine après chaque sauvegarde?

25

Comment configurer Time Machine pour éjecter automatiquement mon lecteur de sauvegarde externe Time Machine après chaque sauvegarde?

Adam A
la source
4
Une observation intéressante: lorsque vous effectuez une sauvegarde TimeMachine sur un lecteur réseau, TimeMachine montera, sauvegardera puis démontera automatiquement le partage TimeMachine distant sur le lecteur réseau. Je me demande si vous pourriez exploiter cela pour réaliser ce que vous voulez?
Ian C.

Réponses:

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"

~ / Bibliothèque / 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>

Rendez le script exécutable, déchargez le plist par défaut et chargez le nouveau:

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

Chaque fois que vous souhaitez apporter des modifications au fichier plist, vous devez le décharger et le charger:

launchctl unload ~/Library/LaunchAgents/timemachine_eject.plist
launchctl load ~/Library/LaunchAgents/timemachine_eject.plist
Lri
la source
1
J'adore cette solution, j'ai encore automatisé ce processus pour monter et démonter le travail lorsque je branche mon disque et selon un calendrier. Visitez mon article ici: somethinginteractive.com/blog/2013/07/24/…
Mike Kormendy
Sur Maveriks, cela n'a pas fonctionné pour moi, étrangement le script a bouclé et la sauvegarde a été effectuée en continu. La modification suivante fonctionne cependant: <key> ProgramArguments </key> <array> <string> / Users / martin / bin / timemachine </string> </array>
Martin
quelque chose d'
Pro Backup
6

Il pourrait y avoir une meilleure façon, mais une solution pourrait être de l'appliquer. Je n'ai pas encore trouvé de moyen d'exécuter un script Apple après une sauvegarde, mais vous pouvez:

  1. Désactiver la sauvegarde automatique TM
  2. Configurer un script Apple pour exécuter TM
    • Certains googleurs ont tourné cette ligne pour forcer une construction de MT immédiate: do shell script "/System/Library/CoreServices/backupd.bundle/Contents/Resources/backupd-helper >/dev/null 2>&1 &"
  3. Ajoutez une ligne pour éjecter le disque par la suite.
    • eject disk somedrivename

Si vous souhaitez que cela se produise régulièrement, vous pouvez l'attacher à une tâche cron.

Fishtoaster
la source
1
Semble prometteur, mais il doit y avoir un moyen de commencer le # 3 seulement après la fin du # 2.
Adam A
Si je me souviens bien, j'essaierai d'arranger cela et de le tester quand je serai chez moi ce soir (et essayer de faire respecter l'attente de la fin de la sauvegarde avant l'éjection).
Fishtoaster
Voici une idée similaire sur Mac OS X Hints , en utilisant un script python.
Nathan Grigg
6

Je n'ai pas essayé cela, mais il semble que cela pourrait fonctionner:

Jettison (lien Mac App Store)

Éjecte les disques externes lors de la mise en veille et les remonte du sommeil.

Jim Greer
la source