Help Unmouting-Datenträger, wenn die UUID bis zu einem bestimmten Zeitpunkt gemountet wurde

3

Jeden Morgen habe ich die gleiche Routine.

Ich mache mich an die Arbeit und schließe meine Peripheriegeräte einschließlich meines Time Machine Backup an. Ich habe meine Time Machine so geplant, dass sie nur ein Backup täglich um 15.30 Uhr ausführt. Ich möchte ein Skript oder ein .plist-LaunchDeamon ausführen, um alle eingelegten externen Festplatten automatisch zu überprüfen und die Bereitstellung aufzuheben, wenn das .plist-LaunchDeamon aktiviert ist

UUID = 32E89C07-FFDB-36F3-8CE8-5DC0560AFEC4  

Und montieren Sie es dann um 15:15 Uhr. Ich möchte nur nicht, dass mein Laufwerk den ganzen Tag angeschlossen bleibt, nur um es 30 Minuten lang zum Sichern aller Daten zu verwenden.

Ich weiß, dass dies alles gelöst werden könnte, wenn ich das Laufwerk nur um 3:15 Uhr manuell einstecke. An manchen Tagen bin ich jedoch in einer Besprechung oder nicht am Schreibtisch und was nicht.

Ich konnte eine Dokumentation zum automatischen Auswerfen des Geräts zu einem bestimmten Zeitpunkt finden, 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 möglicherweise auch den vorherigen Code enthält, den ich am Ende des Tages zum Auswerfen des Laufwerks benötige.

Craig Carroll
quelle
Du könntest benutzen cron um das .sh-Skript automatisch auszuführen. In der Tat, wenn Sie Cron verwenden, denke ich nicht, dass Sie auch diese plist oder sh-Dateien benötigen. Sie können das direkt angeben diskutil Sie können den Befehl mount und unmount in cron ausführen und ihn täglich zu einer bestimmten Zeit ausführen.
Thu Yein Tun

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 $VolumeName anhand des tatsächlichen Datenträgernamens Ihres TM-Laufwerks. Wenn der Name Leerzeichen enthält, verwenden Sie doppelte Anführungszeichen (z. B. "Time Machine-Sicherungslaufwerk").

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 Plists durch die UUID Ihres zuvor gefundenen Time Machine-Volumes.

Laden Sie beide Plisten mit:

launchctl load ~/Library/LaunchAgents/usr.tmvolume.*

Jetzt wird das TM-Sicherungslaufwerk um 8:30 Uhr abgemeldet, um 15:15 Uhr angemeldet und um 15:45 Uhr wieder abgemeldet. Passen Sie die Daten nach Bedarf an.

klanomath
quelle
Genial! Das ist, wonach ich gesucht habe. Ich muss nur sicherstellen, dass ich mich vor 8:30 einstecke! Vielen Dank!
Craig Carroll