Script-Reichweite im System

Ist leider nicht im Apple Shop (Hab mir gerade ne teure Karte gekauft!).
Ausserdem läuft die Lizenz nach 12 Monaten ab und dann brauchst die wieder eine Neue.

Übrigens bei:
Bash:
pmset -g batt | grep 'discharging' || echo '1'

Bringt mir das Terminal mit und ohne eingesteckte USV immer eine 1 als Ergebnis von echo.
Oder habe ich da was falsch verstanden.
 
Hast Du die Stromversorgung dabei auch unterbrochen? Oder meint "mit und ohne eingesteckte USV" genau dies? Hast Du die Abfrage nur einmal unmittelbar nach dem Power-Cut gemacht, oder eine Zeitlang wiederholt?
Ich frage dies, weil in manchen Fällen die Rückmeldung ins System eine gewisse Verzögerung aufweist. (War bei unserer USV so, die ist aber auch schon "Alteisen")
 
Hi

Ja, habe ich gemacht. Nun, ich lade gerade Xcode herunter und anschliessend Swift...
Hats in diesem Forum hier eine Swift-Ecke?

Gruss und Bye MacMurdock
 
Hallo,

Power Manager gibt es auch mit Einmal-Lizenz.
Und was genau soll dir Xcode bringen?

Hier die einfache Methode (Unterbrechung des Countdowns nicht möglich):
Bash:
pmset -g batt | grep 'charging present' || sudo shutdown -h +1
"Wenn die Abfrage 'charging present' ungleich Null ist, dann fahre das System in 1 Minute runter (Passwort erforderlich)"
Um nicht das Passwort eingeben zu müssen, als Bash Skript speichern und in sudoers eintragen. Oder alternativ als AppleScript laufen lassen:
AppleScript:
do shell script "pmset -g batt | grep 'charging present' || sudo shutdown -h +1 > /dev/null 2>&1 &" user name "deinName" password "deinPasswort" with administrator privileges
(Unsichere Methode, da das Passwort theoretisch auszulesen wäre)
> /dev/null 2>&1 & leitet die Ausgabe um, so dass das Skript nicht 1 Minute läuft

Ich würde wohl das Ganze umgekehrt angehen: wenn '90%' , dann fahre das System runter.

Gruß
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: MacMurdock
Man kann shutdown in der sudoers ohne passwort konfigurieren.
 
Hallihallo

Die Eingabe:
Bash:
pmset -g batt | grep 'charging present'
Wirft mir eine Ausgabe aus, wenn die USV auf Netzbetrieb läuft.
Läuft sie auf Akkubetrieb dann erfolgt keinerlei Ausgabe.

Die EIngabe im Terminal:
Bash:
pmset -g batt | grep 'discharging'
Wirft nur eine Ausgabe aus, wenn Akkubetrieb erfolgt.
Bei Netzbetrieb keine Ausgabe.

Das funktioniert soweit. Der Echo-Befehl scheint nicht zu funktionieren. Ob ich
Bash:
echo '1'
, oder nur
Bash:
echo
eingebe.
Der echo-Befehl liefert immer den wert in den Singleapostroph aus.

Da ich in Perl besser bewandert bin, habe ich für Testzwecke das allseits bekannte Hello world Script verwendet und als ups_upgrade.pl abgespeichert.
Da will ich später ein Perl-Programm hineintun, welches den Automatik-Shutdown periodisch überprüft und ggf ausführt. Aber alles der Reihe nach ;)
Mit dem Texteditor vom iMac habe ich das Script gespeichert und in .pl umbenannt.

Wenn ich im Terminal
Bash:
./ ups_upgrade.pl
angebe, kommt die Meldung “zsh: permission denied: ./“.
Habe mit
Bash:
sudo chmod 755 ups_upgrade.pl
versucht die Rechte zu ändern. Trotzdem die Meldung permission denied.

Wäre schon toll, wenn ich zukünftig etwas "perlen" könnte...

Gruss MacMurdock

Bin kurz (1/2 Stunde) weg.....
 
Mit dem Texteditor vom iMac habe ich das Script gespeichert und in .pl umbenannt.
Vorher auch auf reinen Text gestellt?
Shebang nicht vergessen?
Lad dir mal BBEdit, ist besser für Scripte schreiben.

Da darf kein Leerzeichen nach dem / sein.
./ups.pl

Der Echo-Befehl scheint nicht zu funktionieren. Ob ich
Bash:
echo '1'
, oder nur
Bash:
echo
eingebe.
Der echo-Befehl liefert immer den wert in den Singleapostroph aus.
ja, so der echo Befehl funktioniert wie vorgesehen, was anderes macht der nicht.
Weiß ja nicht, ob das 1 nicht eher ein $1 für einen Parameter sein sollte.
 
  • Gefällt mir
Reaktionen: MacMurdock und dg2rbf
Hi oneOeight

Du genialer Mensch! Habe bbedit auf dem iMac installiert und das mini-Hallo-Welt-Script dort hinein getan und gespeichert. Hat sogar sofort erkannt, dass es ein Perl-Script ist.
Zugriff vom Terminal hat auch geklappt. Hello-Script marschiert. Damit sind mal die Grundbausteine fürs "perlen" gelegt - Halleluljia!

Danke an alle bis hierher.

Gruss MacMurdock
 
Hallo zusammen

Habe es geschafft. Habe ein Script geschrieben, dass permanent den USV-Zustand überwacht und im Notfall den iMac herunterfährt.

Zwei Dinge hat es aber noch auf meiner To-do-Liste:

  1. Abschaltbefehl sollte ohne händische Passworteingabe funktionieren.
  2. Mein Perl-Script sollte bei Systemstart automatisch ausgeführt werden.

Zu 1.

Die betreffende Scriptzeile für den Shutdown sieht so aus
Perl:
print `sudo shutdown -h now`;
Da will der iMac die manuelle Eingabe des PWD. Ich hingegen hätte gerne, dass der iMac macht, was ich ihm befehle. :)

Zu 2.

Da kenne ich mich nicht so aus. Es geht in die Richtung Autostart. Nachdem was ich bisher recherchiert habe, soll das irgendwie mit der "Automator-App" gehen.
Scheint aber nicht ganz einfach zu sein, die App zu nuten. :(

Aber alles der Reihe nach bitte...

Danke für eure Ausdauer bis hier hin!

Gruss MacMurdock
 
  • Gefällt mir
Reaktionen: KOJOTE und mausfang
Ähmmmmm...

Wie komme ich denn aus diesem visudo sudoers-Editor wieder raus (mit speichern und beenden)?
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: MacMurdock
Dann schreibt er “recording @w“ und wie lange muss ich dann warten, bis das Fenster zu geht?
 
Dann schreibt er “recording @w“ und wie lange muss ich dann warten, bis das Fenster zu geht?
Hab ich das falsch im Gedächtnis?
Es ist
:x
Der Rest stimmt aber.
Drück ESC zum Abbrechen.
 
Meine Güte -gerade kurz Herzflackern...

Altes Kaputtes sudoers File jetzt gelöscht und neues korrekt gespeichert. Was ne Aktion!
Final hat das jetzt geklappt. Ich schaue mal, ob das Perl-Script jetzt shutdownen kann...
 
Zuletzt bearbeitet:
Hallo zusammen

Nein, es geht nicht. Ich habe einen Neustart durchgeführt, damit der auch alle Berechtigungen neu einlesen kann.

So sieht meine sudoers aus:

Bash:
#
# Sample /etc/sudoers file.
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the sudoers man page for the details on how to write a sudoers file.

##
# Override built-in defaults
##
Defaults        env_reset
Defaults        env_keep += "BLOCKSIZE"
Defaults        env_keep += "COLORFGBG COLORTERM"
Defaults        env_keep += "__CF_USER_TEXT_ENCODING"
Defaults        env_keep += "CHARSET LANG LANGUAGE LC_ALL LC_COLLATE LC_CTYPE"
Defaults        env_keep += "LC_MESSAGES LC_MONETARY LC_NUMERIC LC_TIME"
Defaults        env_keep += "LINES COLUMNS"
Defaults        env_keep += "LSCOLORS"
Defaults        env_keep += "SSH_AUTH_SOCK"
Defaults        env_keep += "TZ"
Defaults        env_keep += "DISPLAY XAUTHORIZATION XAUTHORITY"
Defaults        env_keep += "EDITOR VISUAL"
Defaults        env_keep += "HOME MAIL"
##
# Runas alias specification
##
# Runas_Alias   OP = root, operator

##
# Host alias specification
##
# Host_Alias    CUNETS = xxxxxxxxxxxx
# Host_Alias    CSNETS = xxxxxxxxxxxx
# Host_Alias    SERVERS = master, mail, www, ns
# Host_Alias    CDROM = orion, perseus, hercules

##
# Cmnd alias specification
##
# Cmnd_Alias    PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less

##
# User specification
##

# root and users in group wheel can run anything on any machine as any user
root            ALL = (ALL) ALL
%admin          ALL = (ALL) ALL
%users          ALL=  (ALL) NOPASSWD: /sbin/shutdown -h now
## Read drop-in files from /private/etc/sudoers.d
## (the '#' here does not indicate a comment)
#includedir /private/etc/sudoers.d
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~                                                                                                           
~

Und den Abschnitt, den ich geändert habe ist der hier:
Bash:
%users          ALL=  (ALL) NOPASSWD: /sbin/shutdown -h now

Habe ich einen Tippfehler drin?
Wenn ich in das Terminal hineingehe und den Shutdown händisch eingebe:
Bash:
sudo shutdown -h now
...will das Terminal das Passwort trotzdem.
 
Brauche ich Tabs oder Leerzeichen?
 
Zurück
Oben Unten