kanotix.com

Installation, Einstellungen, Systempflege - Script zum starten eines Servers täglich um die gleiche Zeit

tom2020 - 23.02.2012, 11:01 Uhr
Titel: Script zum starten eines Servers täglich um die gleiche Zeit
Hallo, jetzt sind die Spezialisten für Scripte gefragt,
ich hoffe das beherrscht nicht nur unser Chef Smilie

Aufgabenstellung:

Script zum automatischen aufwachen eines Servers, täglich um die gleiche Zeit.
Wir nehmen hier mal 19:00 Uhr. Ausführender Dienst ist wakealarm.

Code:
if [ 'date +"%H"' -gt 19 ]
then
    # Nach 19:00 Uhr
    sudo sh -c 'date "+%s" -d "now 19:00 + 1 day"' > /sys/class/rtc/rtc0/wakealarm'
else
    # Vor 19:00 Uhr
    sudo sh -c 'date "+%s" -d "now 19:00"' > /sys/class/rtc/rtc0/wakealarm'
fi


Die Befehle einzeln eingeben ins Terminal, funktioniert perfekt.
Das Script ist nicht von mir ich habe es als Lösungsansatz im Internet gefunden, leider funktioniert es ja nicht, sonst müßte ich hier nicht noch einmal fragen.
Der Fehler befindet sich gleich in der 1. Zeile.
Kurze Beschreibung was das Script macht :

if [ 'date +"%H"' -gt 19 ] <-- wenn Server gestartet und Uhrzeit größer als 19 (Uhr)
then (größer 19:00 Uhr)
sudo sh -c 'date "+%s" -d "now 19:00 + 1 day"' > /sys/class/rtc/rtc0/wakealarm'
else (andernfalls vor 19:00 Uhr)
sudo sh -c 'date "+%s" -d "now 19:00"' > /sys/class/rtc/rtc0/wakealarm'
fi

Kann mir jemand sagen wo hier der Fehler liegt ?
Im voraus vielen Dank.

Gruß

Thomas
brot - 23.02.2012, 12:45 Uhr
Titel: Script zum starten eines Servers täglich um die gleiche Zeit
huhu,
der "autostart" und eine Stinknormale Zeitschaltuhr ist keine Option? Winken
Kano - 23.02.2012, 13:59 Uhr
Titel: Script zum starten eines Servers täglich um die gleiche Zeit
Ich weiss ja nicht ob du sudo be dir konfiguriert hast, aber auch wenn:
Code:
if [ $(date +%H) -gt 19 ]

müsste es ja wohl heissen... Das mit ` würde auch gehen, aber nicht mit ' wie dus es geschrieben hast. Sind 2 verschiedene Zeichen. $(...) macht das selbe, hat noch den Vorteil, dass man es schachteln kann.
acritox - 23.02.2012, 13:59 Uhr
Titel: Script zum starten eines Servers täglich um die gleiche Zeit
die Anführungszeichen sind falsch, muss aber wohl ein Copy&Paste-Fehler sein, sonst würde es auch nicht gehen wenn du es im Terminal eingibst: ` (Backtick) statt '

Code:
echo 0 | sudo tee /sys/class/rtc/rtc0/wakealarm
date +%s -d"$(date +%F -d5hours) 19:00" | sudo tee /sys/class/rtc/rtc0/wakealarm

erst wird der evtl. bereits gesetzte wakealarm gelöscht (durch die 0), im zweiten Befehl bekommt man dann durch -d5hours ab 19:00 das Datum des nächsten Tages (19 + 5 = 24), daran hängt man "19:00" dran, wandelt es in den Timestamp um und kopiert es in wakealarm

die sudoers braucht natürlich einen Eintrag der dem User erlaubt dort hin zu schreiben, z.B. so:
Code:
aloibl  ALL = NOPASSWD: /usr/bin/tee /sys/class/rtc/rtc0/wakealarm

oder man lässt das ganze Script als root laufen und kann so einfach "| sudo tee" durch ">" ersetzen.

acritox
tom2020 - 23.02.2012, 17:22 Uhr
Titel:
Hallo Kano und acritox,

vielen Dank für die Lösung gleich in doppelter Form (ich habe beide ausprobiert)
und wie erwartet funktioniert die Korrektur des Scripts durch Kano als
auch der neue Lösungsansatz von acritox.

Nochmals vielen Dank euch beiden !!

Im Bios des Servers gab es keine Einstellmöglichkeit, obwohl der Server
erst 2011 gekauft wurde. Das war also die Einzige professionelle Lösung.

@brot
Mit Zeitschaltuhren möchte ich lieber nicht arbeiten, ich fasse es mal als
kleinen Scherz auf.
Winken

Thema betrachte ich als GELÖST !

Gruß
Thomas
Alle Zeiten sind GMT + 1 Stunde
PNphpBB2 © 2003-2007