Logging von Screen nachträglich ein und ausschalten

  • Hallo Forum,


    weis einer wie ich nachträglich das Logging von einem laufendem Screen einschalten kann?


    screen -S cstrike -X -p0 eval "stuff ^H"


    klappt nicht.


    die Option -L und log die in den man pages steht geht irgendwie auch nicht.
    Wichtig ist das der laufenden Screen nicht beendet werden darf er soll nur ab da wo der Befehl kommt loggen. Ausschalten möchte ich das ganze dann auch wieder.


    Wozu ich das brauche? Ich möchte mit einem


    screen -S cstrike -X -p0 eval "stuff stats^M"


    den Status (Sprich FPS, Spieler CPU Last) auslesen und in einer RRD erfassen. Ich dachte mir ich schalte das logging ein schicke den stats befehl und schalte das logging wieder aus. Das logfile will ich dann per script verarbeitet und in die RRD eintragen.


    Übrigens klappt ein C-a H im Screen wenn ich ihn wieder aufrufe. Irgendwelche Vorschlage wie ich das ganze machen könnte?


    Gerne auch eine Lösung ohne Screen zu bemühen.


    'dibs

  • Wie man die Ein-Ausgabe unter Linux umleitet ist mir bekannt. Auch kenne ich die Möglichkeit Programme in einer Pipe abzuarbeiten und so die Ergebnisse weiter zu geben. Gerade weil mir diese Tatsachen bekannt sind frage ich miche gerade wie mir das bei meiner Aufgabe weiter helfen soll.


    Schups mich noch mal bitte ein wenig in die richtge Richtung.


    'dibs

  • Du willst doch ein Script erstellen welches die Logfiles des Servers auswertet.
    Ob dieses dann permanent läuft oder per crontab o.ä. aufgerufen wird ist ja erstmal egal.


    Wenn es permanent läuft kannst du doch alle Ausgabekanäle von CS:S auf der Console via Pipe an das Script übergeben welches dann sortiert auswertet o.ä. ohne vorher ein Logfile auf dem Server gesehen haben zu müssen also quasi live.


    Die andere Möglichkeit ist die Umleitung der Kanäle in ein Logfile welches dann von deinem Script bearbeitet wird, was wenn ich richtig verstanden habe genau das ist was du suchst nur mit Linux Boardmitteln und ohne screen.

  • Also etwas in der Art


    $ ./scrds_run -game cstrike .... >> mein.log &


    per Cron wird dann meinscript.pl alle 5 Minuten aufgerufen und wertet mein.log aus.
    Damit mein.log nicht zu groß wird könnte ich es ja per echo "" > mein.log nach dem abarbeiten von meinscript.pl leeren lassen.
    Nur eins verstehe ich noch nicht ganz.
    Wenn Source im bg läuft wie kann ich dann einen Befehl absetzen? Ich kann ja schlecht sowas machen wie


    echo "stats" | pid_vom_source_prozess


    'dibs

  • Du könntest entweder wiederrum ein Startscript von CS:S schreiben welches dann die entsprechenden Befehle an die Console sendet und somit an CS:S oder das srcds_run Script umschreiben, denn gesucht ist ja ohnehin eine automatisierte Lösung und nicht die Eingabe von "stats" alle 5 Minuten per Hand nehm ich mal an.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!