Digital Eliteboard - Das Digitale Technik Forum

Registriere dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite aktiv teilnehmen, indem du deine eigenen Themen und Beiträge erstellst und dich über deinen eigenen Posteingang mit anderen Mitgliedern unterhalten kannst! Zudem bekommst du Zutritt zu Bereiche, welche für Gäste verwehrt bleiben

Server bei Inaktivität in S5?

Registriert
27. August 2010
Beiträge
274
Reaktionspunkte
93
Punkte
88
Hallo Leute,

habe mir jetzt endlich mal einen ThinClient zugelegt, ist ein Futro S400 geworden, da ich das Teil auch für andere Zwecke (z.B. Datengrab - ja ich weiß, gibt keine irren Geschwindigkeiten, muss es aber auch nicht) missbrauchen möchte und nicht "nur" einen OSCam Server darauf laufen habe.

Jetzt habe ich folgende Idee: der Cardserver wird eigentlich nur zu bestimmten Tageszeiten benutzt, es hängen im Endeffekt nur vier Personen dran und die schauen meist nur zwischen 18 und 24h. Insofern wäre es natürlich Overkill das Ding Tag und Nacht durchlaufen zu lassen.

Die eine Hälfte habe ich schon hinbekommen, nämlich den Futro aus dem Soft-Off (ACPI S5) per WOL (ja, entgegen anderslautender Behauptungen geht das bei den S400 wunderbar, zumindest wenn ein Realtek RTL8169 GBit Ethernet Chip verbaut ist) wieder aufzuwecken, sobald irgendwas auf die entsprechenden Ports meiner FritzBox zugreift (d.h. muss nicht mal ein Magic Packet sein, eine simple NFS oder newcamd-Anfrage löst auf der Fritz das Magic Packet aus, Resultat der Futro fährt hoch, OSCam initalisiert und nach 40 Sekunden läuft die Mühle).

Als absoluter Linux-Noob habe ich jedoch so meine Schwierigkeiten das Ding adäquat ins Bett zu schicken: ich möchte natürlich nicht, dass das Ding nach einem festgelegten Zeitraum einfach so mir nichts, dir nichts schlafen geht, nur um Sekunden später wieder aufgeweckt zu werden. Könnte man OSCam irgendwie überwachen, z.B. per cron, dass das System nach einer bestimmten idle Zeit (d.h. in diesem Fall keine EMM Anfragen oder reconnects von Clients, möglicherweise über das Log?) einfach herunterfährt oder vielleicht gar in suspsend to RAM geht?

Ich erwarte keine genaue Anleitung (wobei das natürlich sehr nett wäre), sondern erstmal eigentlich nur, ob sowas überhaupt möglich ist und falls ja, ob man das jemandem zutrauen kann, der gestern erst seinen ersten Debian-Server (erfolgreich) aufgesetzt hat?
 
AW: Server bei Inaktivität in S5?

hoffentlich schreibst du nicht soviel auf der compact flash herrum sonst lebt die nicht mehr lange ;)

"suspend to ram" hängt davon ab wieviel ram du hast. das wär natürlich die schnellere möglichkeit da das system innerhalb weniger sekunden wieder online wär.. ansonsten müsstest du eben "suspend to disk" nutzen
guck dir dazu mal das hier an: Link ist nicht mehr aktiv.
dazu solltest du beachten das "suspend to disk" standard mässig in den swap geschrieben wird. der befindet sich aber standard mässig auf der compact flash also dem systemlaufwerk. die kannst du aber auch deaktivieren und alternativ ein swapfile auf einer deiner datengraben-laufwerke auslagern :)

nun zu deinem "wann geht er schlafen" anliegen: man könnte das oscam log überwachen indem man über crontab jede minute ein script laufen lässt was die letzten zeilen ausliest. findet man dann keine aktivität zum beispiel in einem zeitraum von 5 minuten würde das script den thin client schlafen schicken.. sowas müsste man aber erst basteln. wär mir nicht bekannt das es sowas schon fertig gibt

ständig komplett neu starten würde wie gesagt die compact flash zu sehr belasten. die verträgt nicht allzu viele schreib/lese zyklen.. deshalb lassen die meisten den kleinen rechner einfach laufen


edit: alternativ kannst du das aber natürlich auch einfacher gestalten indem du den rechner einfach nachts um zum beispiel 1uhr herrunter fährst -> /etc/crontab
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
 
Zuletzt bearbeitet von einem Moderator:
Wird denn beim Shutdown auf die CF überhaupt geschrieben?

Bis dato läuft die Kiste durch, OSCam Log wird in eine RAMdisk geschrieben. Bin ohnehin am überlegen ob ich dem Futro eine kleine SSD spendiere, dann ist das Problem zumindest kleiner.

Danke aber für die Hinweise, dann muss ich mich mal mit Crontab auseinandersetzen.

Suspend to Disk wäre sinnvollerweise nur mit Magnetspeicher möglich, Suspend to RAM (wenns funktioniert) nice to have.
 
AW: Server bei Inaktivität in S5?

beim shutdown werden dienste beendet die wiederum löschen pid files oder schliesen logfiles und gelesen wird natürlich auch

eine ssd nutzt eine ähnliche technik (speicher bausteine) wie eine compact flash also der einzige vorteil wär das die schneller wär aber trotzdem nicht so viele lese/schreibzyklen wie eine festplatte verträgt..
tmp2ram.sh ist aber schon mal gut ;)
allgemein solltest du auf dem system laufwerk nicht so viel herrum schreiben (datengrab).

wegen crontab guck dir mal mein edit oben an vielleicht reicht dir das ja auch schon
 
Hm okay.

Naja im Endeffekt ist auf der 4GB CF vielleicht ein halbes GB belegt und selbst bei 100k write cycles und einem halbwegs brauchbaren wear leveling sollte da schon einige Zeit ins Land gehen bis "nur" durch Shutdown und booten sowie betriebssystembedingten Schreibzugriffen die CF die Grätsche macht.
 
AW: Server bei Inaktivität in S5?

naja die praxis sieht anders aus. hier gabs schon oft leute die meinten das billige compact flash karten bereits nach einem halben jahr trotz "normalen" betriebs kaputt gegangen wären. natrlich erwähnen diejenigen dann leider zwar nicht ob sie sowas wie tmp2ram.sh oder ähnlich nutzten aber bei dir kommt ja dazu das du bewusst auf der cf daten auslagerst :D
durch tmp2ram.sh wird übriegends der ganze log ordner auch jedesmal beim herrunter fahren gesichert und beim beim booten wieder hergestellt.. also müsste man da noch ein bishen mehr beachten
 
AW: Server bei Inaktivität in S5?

Nee nee... ich speichere keine Daten auf der CF, da ist bis dato nur IPC mit OSCam, sonst gar nichts.

Die Erweiterung zum NAS kommt erst noch und das läuft dann selbstverständlich mit Festplatten (da muss ich mir dann noch was für die swap überlegen).
 
AW: Server bei Inaktivität in S5?

naja wie gesagt wird /var/log/ beim herrunter fahren gesichert und beim hoch fahren wiederhergestellt.. wenn du komplett auf die logs verzichten kannst (fehlersuche wird ohne logs schwierig) könntest du das varlog script auch wieder runter werfen aber super wichtig ist das du dann über ein anderes script die verzeichnisstruktur für /var/log/ manuell anlegen würdest da sonst viele dienste nicht gestartet werden..

und was willst du dir für die swap überlegen? swap wird nur auf dem system laufwerk angelegt. die kannst du super simpel auslagern. solltest du aber nicht auf einen usb stick packen sonst bremst du das system aus
 
AW: Server bei Inaktivität in S5?

Sodala...

Ich habe jetzt mal ein Script geschrieben, dass die letzte Zeile der OSCam.log ausliest, ein paar Sekunden wartet, die Zeile nochmals ausliest und dann ggf. die Büchse runterfährt.

Ich bin mir voll und ganz dessen bewusst, dass es hier wahrscheinlich einen Haufen Leser geben wird, denen es beim Lesen die Zehennägel aufrollen wird, aber dafür, dass es mein wirklich allererstes bash script ist bin ich eigentlich ganz zufrieden, da es sogar läuft :yahoo:.

Einwände und Verbesserungen sind natürlich hochwillkommen.

Folgendes würde ich gerne noch einbauen: es soll ebenso überprüft werden, ob derzeit ein User (per SSH) eingeloggt ist und falls ja, natürlich nicht herunterfahren.

Edit: Ich habe mir gedacht, dass es evtl. sinnvoll wäre erst mal zu schauen, ob OSCam überhaupt läuft, da man sich sonst in eine unnötige reboot-Schleife bolzen könnte (Logfile verändert sich nicht -> Shutdown, nächste Anfrage des Clients, Kiste bootet über WOL, keine Aktivität, fährt wieder runter, usw.)
Änderungen in rot hinzugefügt:

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
 
Zuletzt bearbeitet:
AW: Server bei Inaktivität in S5?

für dein erstes script wirklich super :)

als kleiner tip um eine bessere übersicht zu haben kannst du vielleicht noch ein paar <tabs>´s einfügen:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
den wait timer würde ich aber noch ein bischen höher setzen. 30 oder 60 sekunden sollte besser sein
ob jemand auf der konsole angemeldet ist kannst du über den befehl " who " oder " w " herrausfinden. also zum beispiel
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
 
AW: Server bei Inaktivität in S5?

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!

Danke, werde ich in Zukunft beherzigen, wusste nur nicht ob Tabs evtl. einen Effekt haben, ist aber wesentlich übersichtlicher und das Definieren des Werts "oscamlog" spart auch Tipparbeit.

Nur damit ich das was du mir da gegeben hast auch verstehe, ein paar Fragen, wenns gestattet ist (bin eh überrascht, dass das ganze im Einstieg gar nicht so schwer ist, hat mich ca. 1 1/2 Stunden arbeit gekostet, ich habe eigentlich den ganzen Tag verplant gehabt):


Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
'if' ist klar.
'-z' ist mir nicht klar. Was bewirkt dieser Schalter bzw. auf welchen Befehl bezieht sich der? auf if?
$ ist eine Wildcard für eine Variable, oder? (who) Gibt dann wohl den Wert dafür an (was ist der? String?)
Ich hatte mit
who -d | grep '$usernamen' > /dev/null
if [ '$username' = 0 ]; then ...
experimentiert, hatte halt das konstruktionsbedingte Problem, dass es nur mit Positivlisten funktionieren würde, zudem noch eine Latte an Syntaxfehlern enthalten hat.
'&&' *headdesk* na da hätte man echt draufkommen können, ich hatte am Schluss ein Geschachtel an if/then/else Schleifen, wo ich selbst kaum mehr durchgeblickt hab.
Rest ist klar.

Jetzt habe ich aber ein weiteres Problem entdeckt:

who spuckt keine Anmeldungen am ftp-Server aus, ergo würde der Server ja trotz angemeldetem FTP-User herunterfahren. Dass man da mit "ftpwho" drankommt habe ich inzwischen herausgefunden, nur wirft mir ftpwho standarmäßig ohne Anmeldung sowohl den Daemon als auch "no users connected" aus, d.h. ich kann das ja nicht mit null gleichsetzen, weil ja in allen Fällen eine Ausgabe kommt.
Ich habe da mit grep ein wenig experimentiert, aber irgendwie klappte das überhaupt nicht, also hab ich's verworfen (und kann dir somit auch nicht mehr sagen, was ich falsch gemacht habe).

Danke jedenfalls noch mal für die Hilfe

Edit: Habe das ganze jetz noch um eine Ausgabe erweitert, damit man zur Not auch sehen kann, welcher Depp da den Shutdown blockiert,

also noch

Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
 
Zuletzt bearbeitet:
AW: Server bei Inaktivität in S5?

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
ich versuch das mal zu erklärn:
" -z " prüft ob der nachfolgende wert gesetzt oder leer ist. also "if" sollte klar sein das ist eine bedingungs-schleife.
also: " if -z $(who) ; then.. " -> wenn $(who) nicht gesetzt oder leer ; dann..
dazu gibts eben auch dann die " ! -z $(who) " -> wenn $(who) nicht leer..
" ! -z " kann man aber auch mit " -n " machen

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
du hast doch zuvor auch befehle mit $( ) genutzt.. das innerhalb $( ) wird ausgeführt und die ausgabe dort zurück gegeben.. das ist also genau so wie: x=`echo bla`

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
das kann so nicht funktionieren. das hast du im linuxforum gelesen oder? da fehlt noch der wert in $username nach dem gegrept wird ;)

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
ja du kannst auch mehrere verschachtelungen machen also if ... then if ... then fi fi. es gibt immer mehrere wege etwas zu lösen ;)
du könntest solche sachen auch ohne "if" und "then" schreiben zum beispiel so:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!

"who" wirft aber nicht nur den benutzer aus sondern mehrere zeilen.. also wenn du nur den benutzer haben willst nutzt du lieber: $(who|awk {'print $1'})

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
kann ich dir so auch nicht sagen da ich kein ftpd nutze und somit auch kein ftpwho hab.. aber ich würd mal vermuten das pro verbindung auch ein prozess läuft oder nicht? mach mal eine ftp verbindung und poste dann die ausgabe von: ps auxw|grep ftp
 
Zuletzt bearbeitet von einem Moderator:
AW: Server bei Inaktivität in S5?

Mal noch als kleine Anmerkung, was du vieleicht nicht bedacht hast;-)
Wenn du deinen Server immer schlafen schickst, ist somit auch deine Loadbalance statistics futsch! falls du diese benutzen solltest.

Ich bin mir nicht sicher, ob es dir um das Strom sparen geht, ansonsten ist es immer Sinnvoller ein gutes System laufen zulassen, als es ständig wieder neu zu starten, aber da kann dir Aragon mehr zu sagen, oder auch einige Berichte hier im Forum.
 
AW: Server bei Inaktivität in S5?

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!

Ja, das habe ich schon bedacht, geanuso wie alle Logs weg sind (da sie alle in die ramdisk schreiben), aber das ist mir nicht sonderlich wichtig. Loadbalancer nutze ich ohnehin nicht (habe von jeder Karte eh nur eine).

Mir gehts ausschließlich ums Stromsparen, selbst wenn ich durch das "ständige" rauf- und runterfahren die CF Karte binnen eines Jahres demoliere, dann wars immer noch billiger als den Strom den ich vebrauchen würde ;).

Musst das so sehen: der Server ist vom Useraufkommen her winzig. Da hängen meine Frau, meine Schwiegereltern und ich (Wortspiel nicht beabsichtigt) drin, dazu noch mein Mitbewohner, der quasi nie fern sieht, ebenso wie meine Mutter. Mehr als drei User habe ich auf einmal noch nie erlebt.
 
Zurück
Oben