Ich habe dieses Problem in meinem Büro, dass mehrere Macs immer rund um die Uhr laufen und mein Chef sagte, dass ich es stoppen muss. Jetzt habe ich nicht viel Erfahrung mit Macs, ich bin eher der Windows-Typ.
Ich habe einen Mac, der als Server fungiert und möchte ein Skript oder ähnliches ausführen, um den Energiestatus mehrerer Computer zu orchestrieren, falls dies hilfreich ist.
Wie kann ich all diese 7-8 Macs um 23:30 Uhr aus der Ferne herunterfahren?
Wie patrix in einem Kommentar betont hat, können Sie jeden Mac so einrichten, dass er zu bestimmten Zeiten über die Systemeinstellungen -> Energiesparmodus -> Zeitplan ... gestartet oder aufgeweckt und in den Ruhezustand versetzt oder heruntergefahren wird.
Sie können auch versuchen, AppleScript zu verwenden, z. B. diesen Code (bearbeiten Sie ihn mit dem Skripteditor und speichern Sie ihn dann als Anwendung):
tell application id "com.apple.systemevents" -- System Events.app
shut down
end tell
Verwenden Sie dann die Launch Services von OSX, um dieses Skript zu einem bestimmten Zeitpunkt auszuführen. Um dies einzurichten, könnten Sie ein kostenloses Tool wie "Lingon X" verwenden.
Außerdem, warum schaltest du sie so ab? Wenn es Ihnen nur darum geht, Strom zu sparen, warum richten Sie die Macs nicht stattdessen so ein, dass sie in den Ruhezustand wechseln, nachdem sie beispielsweise 30 Minuten lang im Leerlauf waren? Auf diese Weise schlafen sie normalerweise viel früher ein und sparen mehr Energie. Wenn sie nicht wie erwartet schlafen gehen, können Sie mit dem Terminal-Befehl überprüfen, pmset -g
was sie am Schlafen hindern könnte. Oft handelt es sich um einen ausstehenden Druckauftrag (den Sie dann vielleicht löschen möchten) oder gemountete Servervolumes.
Sie können pmset
dies tun und es wird eine "einmalige und erledigte" Lösung sein.
Sobald Sie den pmset
Befehl ausgegeben haben, wird er gemäß dem von Ihnen festgelegten Zeitplan heruntergefahren/gestartet/aufgeweckt; Sie müssen kein Skript erstellen, das jedes Mal zu einer festgelegten Zeit ausgeführt wird.
pmset
verwendet dieses Format:
pmset schedule day/date time
Hier sind ein paar Beispiele:
pmset repeat sleep MTWRF 23:30:00
versetzt den Mac wochentags um 23:30 Uhr in den Ruhezustand
pmset repeat poweroff MTWRF 23:30:00
fährt den Mac wochentags um 23:30 Uhr herunter
pmset schedule shutdown "12/31/2016 23:59:00"
fährt den Computer an Silvester um 23:59 Uhr herunter.
pmset repeat wakeorpoweron MTWRF 06:30:00
weckt den Mac jeden Wochentag um 7:00 Uhr, damit er einsatzbereit ist, wenn der Mitarbeiter auftaucht.
Sie müssen dazu kein Skript verwenden, alles, was Sie tun müssen, ist, auf jeden der Macs (alle 7 oder 8) aus der Ferne zuzugreifen und den Befehl als Administrator auszugeben.
Wenn Sie jedoch ein Skript ausführen müssen, können Sie diesen Befehl zu einem einfachen Bash-Skript hinzufügen, das dem folgenden ähnelt:
#!/bin/bash
# Array of Mac hostnames separated by spaces
my_macs=(mac1 mac2 mac3 mac4)
#Steps through each hostname and issues SSH command to that host
for n in my_macs
do
ssh admin@$n "pmset repeat sleep MTWRF 23:30:00"
done
exit 0
Denken Sie nun daran, dass das Skript zu Illustrationszwecken dient und technisch außerhalb des Rahmens dieser Antwort liegt. Ich wollte nur veranschaulichen, wie dies geschehen könnte.
Wenn Sie mehrere Macs verwalten müssen, empfehle ich die Verwendung von Apple Remote Desktop . Es sollte es Ihnen ermöglichen, eine beliebige Anzahl von Standardeinstellungen auf die Macs zu übertragen, die Sie für Ihre Arbeit verwalten müssen, und es Ihnen ermöglichen, ein Skript zu schreiben und zu pflegen.
Auf jedem Computer müssen Sie Remote Management
in System Preferences.app > Sharing aktivieren. Danach können Sie jederzeit nach Bedarf anpassen.
kein Hang
ssh
?mmmmmm
Thorbjørn Ravn Andersen