Jeden Morgen habe ich die gleiche Routine.
Ich komme zur Arbeit und schließe meine Peripheriegeräte an, einschließlich meiner Time Machine-Sicherung. Ich habe meine Time Machine so geplant, dass sie nur eine tägliche Sicherung um 15:30 Uhr durchführt. Ich möchte ein Skript oder einen .plist LaunchDeamon ausführen, um alle eingelegten externen Festplatten automatisch zu überprüfen und gegebenenfalls auszuhängen
UUID = 32E89C07-FFDB-36F3-8CE8-5DC0560AFEC4
Und dann um 15:15 Uhr montieren. Ich möchte einfach nicht, dass mein Laufwerk den ganzen Tag angeschlossen ist, nur um es 30 Minuten lang zu verwenden, um alles zu sichern.
Ich weiß, dass dies alles gelöst werden könnte, wenn ich das Laufwerk einfach um 3:15 Uhr manuell einstecke. An manchen Tagen bin ich jedoch in einer Besprechung oder nicht am Schreibtisch und so weiter.
Ich konnte eine Dokumentation darüber finden, wie das Gerät zu einem bestimmten Zeitpunkt automatisch ausgeworfen wird, sodass ich nicht daran denken muss, das Laufwerk sicher zu entfernen.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>com.diskejector.Backup</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/diskutil</string>
<string>unmountDisk</string>
<string>32E89C07-FFDB-36F3-8CE8-5DC0560AFEC4</string>
</array>
<key>StartCalendarInterval</key>
<dict>
<key>Hour</key>
<integer>16</integer>
<key>Minute</key>
<integer>45</integer>
</dict>
</dict>
</plist>
Ich hätte gerne Hilfe beim automatischen Starten eines .sh-Skripts, das auch den vorherigen Code enthalten könnte, den ich zum Auswerfen des Laufwerks am Ende des Tages benötigen würde.
Wenn Sie zwei Startagenten verwenden, ist kein Shell-Skript erforderlich.
Sie benötigen die UUID Ihres Time Machine-Sicherungslaufwerks:
diskutil info $VolumeName | grep "Disk / Partition UUID:"
Ersetzen Sie $VolumeName
durch den tatsächlichen Volume-Namen Ihres TM-Laufwerks. Wenn der Name Leerzeichen enthält, verwenden Sie doppelte Anführungszeichen (z. B. „Time Machine Backup-Laufwerk“).
Erstellen Sie zwei Dateien usr.tmvolume.unmount.plist und usr.tmvolume.mount.plist in ~/Library/LaunchAgents/:
nano ~/Library/LaunchAgents/usr.tmvolume.mount.plist
mit dem Inhalt
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>usr.tmvolume.mount</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/diskutil</string>
<string>mount</string>
<string>$UUID</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>15</integer>
<key>Minute</key>
<integer>15</integer>
</dict>
</array>
</dict>
</plist>
Und
nano ~/Library/LaunchAgents/usr.tmvolume.unmount.plist
mit dem Inhalt:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>usr.tmvolume.unmount</string>
<key>ProgramArguments</key>
<array>
<string>/usr/sbin/diskutil</string>
<string>unmount</string>
<string>$UUID</string>
</array>
<key>StartCalendarInterval</key>
<array>
<dict>
<key>Hour</key>
<integer>8</integer>
<key>Minute</key>
<integer>30</integer>
</dict>
<dict>
<key>Hour</key>
<integer>15</integer>
<key>Minute</key>
<integer>45</integer>
</dict>
</array>
</dict>
</plist>
Ersetzen Sie $UUID in beiden Listen durch die UUID Ihres zuvor gefundenen Time Machine-Volumes.
Laden Sie beide Listen mit:
launchctl load ~/Library/LaunchAgents/usr.tmvolume.*
Jetzt wird das TM-Backup-Laufwerk um 8:30 Uhr ausgehängt, um 15:15 Uhr eingehängt und um 15:45 Uhr wieder ausgehängt. Passen Sie die Daten nach Bedarf an.
thuyein
cron
, um das .sh-Skript automatisch auszuführen. Tatsächlich glaube ich nicht, dass Sie diese Plist- oder Sh-Dateien benötigen, wenn Sie Cron verwenden.diskutil
Sie können den Mount- und Unmount-Befehl von direkt in cron angeben und ihn täglich zu einer bestimmten Zeit ausführen lassen.