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

Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschicken

xetic

Board Guru
Registriert
24. November 2010
Beiträge
1.386
Reaktionspunkte
220
Punkte
83
Hi,

ich habe ein Script geschrieben, dass den OScam LOG nach "not found" und "reject group" von heute durchsucht und mir das Ergebnis per Mail schickt.
Basiert auf Funktionen von IPC. Also IPC muss installiert sein.

Wenn irgendwelche Anregungen vorhanden sind, schreibt ruhig :)


Ihr müsst das Script in crontab einpflegen. Per ipc jobs gelangt ihr direkt herein.
Dann macht ihr eine neue Zeile:
58 23 * * * root /home/x3451/oscam_mail_log.sh #OSCam - MAIL LOG

Das Script liegt bei mir im Home Verzeichnis. Ist eigentlich egal wo ihr es speichert. Müsst halt nur den Pfad anpassen.
Somit wird es täglich um 23:58 Uhr ausgeführt.
Ihr könnt das Script auch öfters ausführen lassen, falls ihr kleine Logfiles habt.

CHANGELOG:

V2.1
- Logauswertung von OScam.log-prev hinzugefügt
- Variable für den OScam LOG-Pfad hinzugefügt (Standart IPC Variable $CAMLOGS)
- Variable für Auswertungslogs hinzugefügt (Standart /tmp/)
- Möglichkeit das Script mit dem Zusatz p aufzurufen. Dadurch werden die Logs vorher zusammengepackt (Danke an Aragorn)
- GREP genauer gestaltet
- Löschen der Logs am Ende des Scripts mit dem Zusatz -f erweitert (Danke an Aragorn)
 
Zuletzt bearbeitet:
AW: Script für tägliche Logauswertung (not found / reject) per Mail verschicken

Erstmal vielen Dank für deine Mühe! Ich habe das Script mal ausprobiert aber außer eine leere Mail kommt bei mir nichts an?
 
AW: Script für tägliche Logauswertung (not found / reject) per Mail verschicken

:( echt? oh miese...

ich schau mal was ich falsch gemacht habe

Nicht mal Text?
 
AW: Script für tägliche Logauswertung (not found / reject) per Mail verschicken

Als Text steht --> OScam LOG vom Homeserver (Homeserver ist der Hostname).

Der Betreff ist auch OK --> OScam LOG vom 2012-07-17 16:22

Habe absichtlich NOK´s produziert aber Mail ist leider leer :-(

ps. Hab das Script noch um Timeouts erweitert. Vielleicht kannst du es auch einbauen.
 
AW: Script für tägliche Logauswertung (not found / reject) per Mail verschicken

Ja ich weis...
ich hab zum testen die functions.sh bearbeitet.
Ich ändern das noch.... bringe V2 mit timeouts :)

gib mir 5 Minuten
 
AW: Script für tägliche Logauswertung (not found / reject) per Mail verschicken

So ich habe oben eine neue Version hochgeladen
mit timeouts und email sollte auch klappen... hoffe ich :)
 
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

Klappt wunderbar, vielen Dank ;-)

Ich würde nur aus dem not ein not found machen, da sonst alles was mit not zu tun hat mit in den Log kommt. hier ein beispiel:

2012/07/17 15:58:56 40110F90 c xxxxxxx[camd35] WARNING: client->udp_fd was not 0
2012/07/17 15:58:56 181E020 c xxxxxxxx[camd35] WARNING: client->udp_fd was not 0
2012/07/17 15:58:56 40112940 c xxxxxxxx[camd35] WARNING: client->udp_fd was not 0
2012/07/17 15:58:56 40110F90 c xxxxxxxx[camd35] WARNING: client->udp_fd was not 0

die sind ok:

2012/07/17 16:22:19 40026190 c wohnzimmer (1702&000000/0000/0078/93:BD79): not found (875 ms) by skyde2 (P/2/2/2) - Sky Select HD (skyde2 irdeto_do_cmd [2] 90
2012/07/17 16:22:22 40026190 c wohnzimmer (1702&000000/0000/0078/93:8D19): not found (3372 ms) by skyde2 (F/2/1/2) - Sky Select HD (skyde2 irdeto_do_cmd [2] 90
2012/07/17 16:22:22 40026190 c wohnzimmer (1702&000000/0000/0078/93:8D19): not found (1122 ms) by skyde2 (F/0/1/2) - Sky Select HD
 
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

Ja kann ich machen...
danke für das Testen :)
 
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

wie meister85 schon sagte solltest du die grep´s verbessern da du zur zeit einfach alles ins log speicherst was mit "not" oder "rej" zu tun hat aber das auch auf anderes zutreffen kann wie zum beispiel logins usw also anstatt:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
besser so:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
und wenn das log ins aktuelle verzeichniss gespeichert werden soll dann brauchst du kein " ./ " und um compact flash karten zu entlasten solltest du die logs vielleicht auch besser in /tmp/ ablegen..
das "rm" solltest du auch lieber in ein "rm -f" ändern für den fall das es eines der files nicht gibt käme dann auch keine fehlermeldung

beachten müsste man auch das die logs ungepackt bei mach einem vielleicht ziemlich gross werden könnten aber die meisten email accounts eine maximal grösse für angehängte dateien haben also ich würd die zu verschickenden logs vorher auch noch packen:
Code:
Du musst dich Anmelden oder Registrieren um den Inhalt der Codes zu sehen!
*.tgz sollte man eigentlich mit jedem entpacker öffnen können

und was man vielleicht auch noch beachten müsste wäre das manch einer in der oscam.conf eine sehr geringe maxlogsize eingestellt hat wodurch das logfile rotiert wird aber wenn man erst um mitternacht das aktuelle log durch sucht erwischt man wohl möglich nicht alle einträge die es an dem tag gab.. um das zu lösen gabe es 2 möglichkeiten:
- auch das /var/log/ipc/OScam.log-prev zu durch suchen
- das script zum beispiel alle 5 minuten durch laufen lassen und die grep´s zu den "ergebnis logs" appenden also einfügen ( >> anstatt > ) aber erst zu einer eingestellten zeit die email verschicken lassen
erstes wäre einfacher allerdings könnte es auch da bei einer zu niedrigen maxlogsize passieren das OScam.log-prev an dem tag bereits überschrieben wurde..


ps: da du ipc vorraussetzt könntest du auch ab 11.4 die functions.sh variable $OSLOGFILE nutzen aber die gibt es in 11.3 leider noch nicht.. würd ich auch als einstellbare variable angeben damit man nicht 3 zeilen auf ein mal abändern müsste wenn die log wo anders liegen sollte
 
Hi Aragorn,
danke für die Tipps.
2 Sachen habe ich schon eingebaut.
Grep verbessert und die Logs zusammengepackt :)

Ich werde morgen mal schauen, wie man am besten mit der Logrotation umgeht ;)

Mit der CF Karte habe ich nicht bedacht, danke.
 
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

Du musst dich Anmelden oder Registrieren um den Inhalt der Angebote zu sehen!
da kannst du eigentlich überall meinen namen dahinter schreiben :D
(im post schreibst du übrigends $CSLOGS aber meinst eigentlich $CAMLOGS)

die abfrage nach den variablen solltest du aber besser drin lassen da bash die angewohnheit hat bei fehlern mit dem script trotzdem weiter zu machen und es somit bei anderen ohne ipc "müll" fabrizieren könnte

ein bug hast du noch und zwar das löschen der $P_LOG nach dem verschicken..
ich würd die variablen auch nicht alle *LOG nennen da kommt man schnell durcheinander
und ein weiterer bug wäre das du vorher nicht prüfst ob es das logfile zum auswerten überhaupt gibt genau so wie die auswertungs logs vor dem verschicken beziehungsweise ob da überhaupt etwas drin steht..

eine sache wäre vielleicht auch noch bei den jenigen die das script öfter am tag ausführen oder dessen logs nicht so gross werden weil es nur einen client gibt usw zu prüfen ob der log eintrag bereits ausgewertet wurde



ps: den "cat" befehl kannst du dir eigentlich auch sparen da das bereits mit "grep" geht
 
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

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

Jetzt übertreibst du :D

Ok... eins nach dem anderen.
Ich hab hier mehrere Baustellen im Script. Muss nur schauen ob es Sinn macht oder nicht ;)
Das Script wird noch perfekt :p
 
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

Hi,
wollte das Script mal testen (IPC11.5) aber ich bekomme auch nur leere Files und eines mit Header.
Woran könnte es liegen?

Layouter
 
Zuletzt bearbeitet:
AW: Script für tägliche Logauswertung (not found / reject / timeout) per Mail verschi

nein. in IPC 11.5 ist voreingestellt: /var/log/ipc/OScam.log
wenn du in deiner oscam.conf selber etwas anderes eingestellt hast, musst du das auch in /var/emu/script/functions.sh anpassen - denn sonst gibts auch mit den scripts und dem IPC WebInterface probleme..

Gelöst OScam Logauswertung - Seite 2


ansonsten musst du in dem Script eben den Pfad " OSLOG " anpassen, also in deinem fall auf " /var/log " stellen, aber wie gesagt empfiehlt es sich besser sich an den von IPC vorgesehenen standard zu halten
 
Zurück
Oben