Hilfe Trennen der Festplatte, wenn UUID bis zu einem bestimmten Zeitpunkt gemountet ist

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.

Sie könnten verwenden 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. diskutilSie können den Mount- und Unmount-Befehl von direkt in cron angeben und ihn täglich zu einer bestimmten Zeit ausführen lassen.

Antworten (1)

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 $VolumeNamedurch 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.

Eindrucksvoll! Das habe ich gesucht. Ich muss nur sicherstellen, dass ich vor 8:30 einstecke! Danke!