Digital Eliteboard

Registrieren dich noch heute kostenloses um Mitglied zu werden! Sobald du angemeldet bist, kannst du auf unserer Seite 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 verwert bleiben

Script um sich bei neuen EMMs ein Mail schicken zu lassen

rolu2

Moderator
Mitarbeiter
Mitglied seit
16. November 2009
Beiträge
7.868
Gefällt mir
3.535
Punkte
163
#1
Da ich für unsere Boardimage(Freetz) ein script geschrieben habe, um bei neuen EMMs sich eine Mail schicken zu lassen.

Wollte ich das natürlich auf für IPC nutzen. Daher hier mal das Script

Dazu muss zuerst noch das Sendmail Paket installiert werden:

Code:
apt-get install -y sendEmail
Hier das Script:

Code:
#!/bin/bash
######################################INFO#####################################################
#Hiermit kann man sich eine E-Mail schicken lassen.Wenn neue EMMs geschrieben wurden          #
#Vorgehensweise des script an Hand des *unique_emm.log                                        #
#Der Inhalt der vorhanden *unique_emm.log werden in eine neue *unique_emm.log.txt geschrieben #  
#und zwar dort hin, wo die configs der OSCam liegen                                           #
#Diese wird immer aktualiesiert wenn neue EMMs geschieben werden.                             #
#Die vorhanden *unique_emm.log wird nach ausführen des script gelöscht                        #
#Es wird daher nur ein Mail verschickt,wenn eine neue *unique_emm.log gefunden wird           #
#Script nach /var/emu/script                                                                  #
#Rechte mind.755                                                                              #
#Das script sollte man immer am Ende eines Tages ausführen.                                   #
#Da Morgens ja vllt noch keine EMMs eingegeangen sind                                         #          
#croneintrag dann z.B so                                                                      #
#Ein mal am Tag sollte reichen.z.B um 23:58 Uhr                                               # 
#58 23 * * * root bash /var/emu/script/emmsmail.sh                                            #
###################################INFO-ENDE###################################################
#
#
###########################Maildaten eintragen#################################################
EMAILFROM="Absendermailadresse"                                                               #
EMAILTO='Empfaengermailadesse'                                                                #
EMAILSERVER='mail.gmx.net'                                                                    #
EMAILUSER='User'                                                                              #
EMAILPASS='Passwort'                                                                          #                                                                                     
###############################################################################################
#
#
#wer ein v13 hat,sollte die v14 rausnehmen und v13 reinschreiben
SICHERUNGUNIQUEEMMLOG=$WORKING_DIR/v14_unique_emm.log.txt
SICHERUNGGLOBALEMMLOG=$WORKING_DIR/v14_global_emm.log.txt
SICHERUNGSHAREDEMMLOG=$WORKING_DIR/v14_shared_emm.log.txt
SICHERUNGUNKNOWNEMMLOG=$WORKING_DIR/v14_unknown_emm.log.txt
#
#hier den Pfad eintragen wo die oscam.server usw liegen
WORKING_DIR=/var/etc


#Ab hier nichts mehr ändern

EMMLOG_DIR=$(grep "^emmlogdir" "$WORKING_DIR/oscam.conf"|cut -d "=" -f2|awk '{print $NF}')

PATHS_UNIQUEEMMLOG=$(find "$EMMLOG_DIR" -name "*unique_emm.log")
PATHS_GLOBALEMMLOG=$(find "$EMMLOG_DIR" -name "*global_emm.log")
PATHS_SHAREDEMMLOG=$(find "$EMMLOG_DIR" -name "*shared_emm.log")
PATHS_UNKNOWNEMMLOG=$(find "$EMMLOG_DIR" -name "*unknown_emm.log") 

SICHERUNG=/var/log/ipc
TMP=/var/tmp
DATUM=`date +"%Y/%m/%d"`
UNIQUEEMMLOG=$TMP/unique_emm.log
GLOBALEMMLOG=$TMP/global_emm.log
SHAREDEMMLOG=$TMP/shared_emm.log
UNKNOWNEMMLOG=$TMP/unknown_emm.log
SUBJECT1="Info vom CS-Server"
MESSAGE1="Neue unique_emm sind gekommen"
MESSAGE2="Neue global_emm sind gekommen"
MESSAGE3="Neue shared_emm sind gekommen"
MESSAGE4="Neue unknown_emm sind gekommen"
        

if [ -e "$PATHS_UNIQUEEMMLOG" ]; then
        cat $EMMLOG_DIR/*unique_emm.log  >>$SICHERUNGUNIQUEEMMLOG
        grep $DATUM $SICHERUNGUNIQUEEMMLOG >$UNIQUEEMMLOG
    echo "Verschicke EMail.."
        sendEmail -f $EMAILFROM -t $EMAILTO -u "$SUBJECT1" -m "$MESSAGE1" -a $UNIQUEEMMLOG -s $EMAILSERVER -xu "$EMAILUSER" -xp "$EMAILPASS"
        rm -f $PATHS_UNIQUEEMMLOG $UNIQUEEMMLOG
fi


if [ -e "$PATHS_GLOBALEMMLOG" ]; then
        cat $EMMLOG_DIR/*global_emm.log  >>$SICHERUNGGLOBALEMMLOG
        grep $DATUM $SICHERUNGGLOBALEMMLOG >$GLOBALEMMLOG
    echo "Verschicke EMail.."
        sendEmail -f $EMAILFROM -t $EMAILTO -u "$SUBJECT1" -m "$MESSAGE2" -a $GLOBALEMMLOG -s $EMAILSERVER -xu "$EMAILUSER" -xp "$EMAILPASS"
        rm -f $PATHS_GLOBALEMMLOG $GLOBALEMMLOG
fi

if [ -e "$PATHS_SHAREDEMMLOG" ]; then
        cat $EMMLOG_DIR/*shared_emm.log  >>$SICHERUNGSHAREDEMMLOG
        grep $DATUM $SICHERUNGSHAREDEMMLOG >$SHAREDEMMLOG
    echo "Verschicke EMail.."
        sendEmail -f $EMAILFROM -t $EMAILTO -u "$SUBJECT1" -m "$MESSAGE3" -a $SHAREDEMMLOG -s $EMAILSERVER -xu "$EMAILUSER" -xp "$EMAILPASS"
        rm -f $PATHS_SHAREDEMMLOG $SHAREDEMMLOG
fi

if [ -e "$PATHS_UNKNOWNEMMLOG" ]; then
        cat $EMMLOG_DIR/*unknown_emm.log  >>$SICHERUNGUNKNOWNEMMLOG
        grep $DATUM $SICHERUNGUNKNOWNEMMLOG >$UNKNOWNEMMLOG
    echo "Verschicke EMail.."
        sendEmail -f $EMAILFROM -t $EMAILTO -u "$SUBJECT1" -m "$MESSAGE4" -a $UNKNOWNEMMLOG -s $EMAILSERVER -xu "$EMAILUSER" -xp "$EMAILPASS"
        rm -f $PATHS_UNKNOWNEMMLOG $UNKNOWNEMMLOG
fi


Dieses lasse ich dann 1x am Tag über eine Cronjob ausführen:

Code:
nano /etc//crontab

Code:
#Mailversand bei neuen EMMs
58 23 * * * root bash /var/emu/script/emmsmail.sh
Edit:Das script sollte man immer am Ende eines Tages ausführen.Da Morgens ja vllt noch keine EMMs eingegeangen sind


Edit2:Das script kann man jetzt hier runterladen

Edit3: Ich habe das script überarbeitet. Siehe dazu hier
######################################INFO#####################################################
#Hiermit kann man sich eine E-Mail schicken lassen.Wenn neue EMMs geschrieben wurden #
#Vorgehensweise des script an Hand des *unique_emm.log #
#Der Inhalt der vorhanden *unique_emm.log werden in eine neue *unique_emm.log.txt geschrieben #
#und zwar dort hin, wo die configs der OSCam liegen #
#Diese wird immer aktualiesiert wenn neue EMMs geschieben werden. #
#Die vorhanden *unique_emm.log wird nach ausführen des script gelöscht #
#Es wird daher nur ein Mail verschickt,wenn eine neue *unique_emm.log gefunden wird
#
#Script nach /var/emu/script #
#Rechte mind.755 #
#Das script sollte man immer am Ende eines Tages ausführen. #
#Da Morgens ja vllt noch keine EMMs eingegeangen sind #
#croneintrag dann z.B so #
#Ein mal am Tag sollte reichen.z.B um 23:58 Uhr #
#58 23 * * * root bash /var/emu/script/emmsmail.sh #
###################################INFO-ENDE###################################################
Edit4: Ich habe das script verbessert.

1.Jetzt wird nicht nur nach Tag und Monat im Log gesucht,sondern auch nach dem Jahr. Somit bekommt man nur noch die aktuellen EMMs
2. Bug beseitigt,das nicht immer alle neuen EMMs in die .txt geschrieben wurden
 
Zuletzt bearbeitet:
Thread Starter
OP
rolu2

rolu2

Moderator
Mitarbeiter
Mitglied seit
16. November 2009
Beiträge
7.868
Gefällt mir
3.535
Punkte
163
#2
AW: Script um sich bei neuen EMMs ein Mail schicken zu lassen

Script angepasst.

Das script sollte man immer am Ende eines Tages ausführen.Da Morgens ja vllt noch keine EMMs eingegeangen sind.

Das script fragt das Datum des *emm_log ab und überprüft, ob im Log Einträge drin sind mit gleichem Datum. Sind keine drin. Kommt eine leere Datei

Daher ist es ratsam am Abend eines Tages das script auszuführen
 
Mitglied seit
11. Mai 2012
Beiträge
293
Gefällt mir
106
Punkte
43
#3
AW: Script um sich bei neuen EMMs ein Mail schicken zu lassen

Irgendwie klappt es nicht!

Ausgeführt wird das Script lt. Syslog!

Bei mir ist die EMM Datei in var/log/ipc!

Muss ich WORKING_DIR="/var/etc" ändern? Oder noch mehr?
 
Thread Starter
OP
rolu2

rolu2

Moderator
Mitarbeiter
Mitglied seit
16. November 2009
Beiträge
7.868
Gefällt mir
3.535
Punkte
163
#4
AW: Script um sich bei neuen EMMs ein Mail schicken zu lassen

WORKING_DIR="/var/etc" bedeutet das in /var/etc deine oscam.config liegen muss. Ist sie Dort?

Zum testen woran es klemmt, kann man das script über Telnet ausführen. Dazu in der Verzeichniss wo das script liegt und dann
Code:
./emmsmail.sh
 
Zuletzt bearbeitet:
Mitglied seit
11. Mai 2012
Beiträge
293
Gefällt mir
106
Punkte
43
#5
AW: Script um sich bei neuen EMMs ein Mail schicken zu lassen

So alles ok.

Blöder copy&past Fehler eingeschlichen!

Danke!
 
Thread Starter
OP
rolu2

rolu2

Moderator
Mitarbeiter
Mitglied seit
16. November 2009
Beiträge
7.868
Gefällt mir
3.535
Punkte
163
#6
AW: Script um sich bei neuen EMMs ein Mail schicken zu lassen

Script angepasst. Siehe dazu im 1. Beitrag
 
Thread Starter
OP
rolu2
Mitglied seit
16. November 2009
Beiträge
7.868
Gefällt mir
3.535
Punkte
163
#7
AW: Script um sich bei neuen EMMs ein Mail schicken zu lassen

Script angepasst. Siehe dazu im 1. Beitrag

1.Jetzt wird nicht nur nach Tag und Monat im Log gesucht,sondern auch nach dem Jahr. Somit bekommt man nur noch die aktuellen EMMs
2. Bug beseitigt,das nicht immer alle neuen EMMs in die .txt geschrieben wurden
 

Oben