PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Erinnerungsmail wenn Antivir Lizenz abläuft



be1001
05.02.08, 10:04
Hallo,

ich hab mal ne Frage bezüglich einer Erinnerungsmail.
Wie kann ich Postfix dazu veranlassen mir an einem vorgegeben Termin eine Mail zu schicken, damit ich daran erinnert werde meinen Lizenzschlüssel zu erneuern.

Ich habe das noch nie gemacht, deshal fehlt mir jeder Ansatz dazu. Kann ich das innerhalb von Postfix, oder mit OpenSuse Boadmitteln oder brauche ich dazu ein Extraprogramm.

Danke

Newbie314
05.02.08, 11:17
Wenn es nur rechner-intern laufen soll kannst du dem User über einen cron job mit dem "mail" Befehl etwas schicken. Wenn du über ein externes smtp Mailkonto etwas verschicken willst wird es etwas komplizierter ... ist ne Weile her dass ich damit experimentiert habe, müsste aber über postfix oder sendmail gehen... mal im Manual nachsehen und testen... wenn das von der Kommandozeile aus geht machst du wieder einen "cron" Eintrag aus dem Befehl.


Wenn alle Stricke reißen würden könntest du per Skript direkt den smtp Zugang deines Mailanbieters bedienen und die Mail absetzen... das ist aber der Weg des höchsten Aufwandes.


=> Es geht mit Bordmitteln.

rep
05.02.08, 14:14
Also postfix selbst leitete die E-mail nur weiter bzw. nimmt diese an, Senden und per "Zeit" ausführen musst du das mit Cron und Kommandozeilenprogrammen bzw. E-Mailprogrammen.

Hier nehme ich immer gerne Mutt, da ich dies auch sonst für andere Zwecke nutze.

be1001
05.02.08, 19:46
Hallo,

habe mir die Funktion Cron mal angeschaut, irgndwie muss das gehen. Hab gesehen es gibt "Aufgaben" und "Variablen". Unter Variablen kann ich eine E-Mail-Adresse und einen Text eingeben. Wie wird jetzt aber die Verknüpfung mit der Aufgabe gemacht.

Ich möchte z.B. am 15.02.08 eine E-Mail an die Adresse Christian@xxxx.de mit dem Text: xxxxxx und yyyyyy senden.
Postfix läuft auf dem Rechner.

Danke

rep
05.02.08, 21:44
Cron ist keine Funktion, sondern ein Dienst der im Hintergrund läuft. Und die E-Mailadresse die man dort einträgt ist nur dafür da, damit die Ausgaben die ein Cronjob ausgibt jemand zu gesicht bekommen kann.

Ein Cronjob ist letztlich eine Zeile in der Crontab, bestehend aus Zeit und Kommandozeile die gestartet werden soll. Aber du solltest dich lieber über google und dein System noch ein bisschen informieren, damit Du auch genau weißt was du da macht.

Cronjobs werden dir immer weider über den Weg laufen, also erkundige dich da besser noch mal ein bisschen. Selbst weiß ich auch gerade aus dem ff nicht, ob man ein jährlich wiederkehrenden Job damit abbilden kann, das war auch ehrlich gesagt noch nicht nötig.


Aber mal was anderes, gibt Antivir, bzw Avira nicht selbst per E-Mail bescheid, wenn die Lizenz abläuft?

Gruß

be1001
06.02.08, 08:26
Hallo,

habe die letzten Zwei Stunden ein bischen gegoogelt.

Mir ist mittlerweile klar, das cron ein Instrument ist um Processe zu starten, an einem festgelegten Zeitpunkt, wie z.B. update Vierenprogramm.

Gibt es eine Möglichkeit einen Status zu einem bestmmten Zeitpunkt abzufragen, z.B. Festplattenstatus und dann eine E-Mail zu schicken.

Im Grunde ist mir klar was cron macht, nur umsetzen kann ich es nicht, mir fehlt irgendwie das Kochrezept.

Parallel habe ich mich über KAlarm informiert, das Toll arbeitet aber nur wenn ein User eingelogt ist, und nicht automatisch im Hintergrund.

Allso eine Bitte an die Spezialisten:
Wie muss ich den Cron Aufruf programmieren, damit zu einem festgelegten Zeitpunkt eine E-Mail versand wird wenn der Server brav im Keller vor sich hinwerkelt????

Danke

Newbie314
06.02.08, 09:33
1. Schritt: finde heraus wie du von deinem System aus von der Kommandozeile aus eine Mail an Christian@xxxx.de schickst. Je nachdem wie du dein System konfiguriert hast kann sein dass mail Adresse < message.txt wobei message.txt die Datei ist die deine Nachricht enthält schon ausreicht.

man mail , googlen wie du es so einrichtest dass es deinen smtp Zugang (bei web.de oder gmx oder sonstwo ) nutzen kann.

(Wie das bei dir geht musst du selbst herausfinden, da würde ich jetzt auch ne Weile rumtüfteln.. bin aber auch eher ein Linux-Nutzer als ein Mail-Crack)

2. man crontab : da wird dir erklärt wie du den unter 1. ausprobierten Befehl in die Crontab einträgst so dass der Cron Dämon ihn zur rechten Zeit ausführt.

3. Festplattenstatus oder anderes: das ist ein ganz anderes Kaliber. Zu derartigen Aufgaben würde ich ein Skript schreiben das zum Beispiel die Textdatei erzeugt die dann versendet werden soll. Ein zweites Skript ruft das erste auf (um die Festplatten - Infos zu erzeugen) und danach den entsprechenden Mailbefehl. Das zweite Script steckst du dann in die Crontab.

Wenn du solche Dinge öfter vorhast lohnt sich die Einarbeitung in die Sprache Perl ... Perl ist standardmäßig auf fast allen Linuxsystemen installiert. Viele nutzen aber auch die (älteren) Shellscript - Sprachen (Bourne-shell oder C-Shell) für solche Aufgaben.

Mit dieser Kombination kann dein Server (fast) alles (außer Bügeln oder Kaffee-kochen...)

be1001
06.02.08, 11:23
Ich kann von der Konsole über
mail info@xxx.de
Subject:sssss
Text
. Return
Mails versenden.

Wie packe ich das jetzt in einen Cron Job?????

Newbie314
06.02.08, 11:34
In die Crontab geht nur ein "einzeilen-Befehl". Wenn das was du tun willst nicht in eine Zeile passt musst du ein Skript erstellen und den Aufruf des Skriptes in die crontab eintragen.

Editiere eine Textdatei die den Text enthält.

Der Befehl sollte dann mail -s "Subject" Adresse < Textdateiname lauten .. guck nochmal nach, bei mir kommt "mailx" .. ich weiß nicht genau welche Syntax bei dir gilt.

"which mail" .. für den Crontab Eintrag benötigst du nämlich den absoluten Pfad des Mailprogrammes

Dann "man crontab". So ein Tabelleneintrag hat nämlich seine ganz eigene Syntax die du erst verstehen solltest.

Dann crontab -e um deinen eigenen Eintrag zu erstellen.

Ein Eintrag in meiner Crontab sah zum Beispiel so aus:


11 22 21 5 * /usr/bin/sudo /sbin/shutdown -h now


(sudo da shutdown als root ausgeführt werden muss ...)

be1001
06.02.08, 11:54
Wie ich einen Befehl zum ausführen eines Shutdown eintrage ist mir jetzt klar, aber wie bringe ich dem Cron den Mailbefehl mit Tesxt bei????

rep
06.02.08, 13:24
Das wurde damit als Beispiel doch genannt. Bei Überwachungen, wie Du es ja scheinbar willst, würde ich kleine Skripte schreiben, die nicht viel machen, und Sie je nach Sinn recht oft ausführen lassen.

Nach ein bisschen Erfahrung kann man die Zeiten dann weiter skalieren.

Beispiel:

jede Minute ein Skript per Cron starten, was prüft ob alles stimmt! WIr nehmen nun mal an, um es einfach zu halten, das was nicht stimmt, wenn die Datei /tmp/es_stimmt_nix.tmp vorhanden ist.

Dann schreibst du mal ein Skript welches prüft ob die Datei vorhanden ist und wenn dann schickst du dir, eben auch aus diesem Skript eine E-Mail. Das würde ich auch nicht den Cron machen lassen. Mit anderen Worten das Skript hat zur Kommunikation nur die E-Mail, nicht die Ausgabe. Im Regelbetrieb sollte das Skript also nix ausgeben.

Skript: /root/bin/cron/check.sh



#!/bin/bash

MAIL_DEST="root test@test.de andere@andere.de"
FILE_CHECK="/tmp/es_stimmt_nix.tmp"
BIN_MUTT="/usr/bin/mutt"

if [ -f $FILE_CHECK ]
then
# Datei vorhanden, etwas ist nicht ok!
# mehrere E-Mails verschicken
for MAIL in $MAIL_DEST
do
echo "nicht ok" | $BIN_MUTT -s "Error: nicht ok" $MAIL
# Datei löschen, damit nicht jede Minute eine E-Mail
# raus geht, hier müsste man mehrere checks einbinden,
# um nicht zu viele Mails zu versenden...
rm -f $FILE_CHECK
done
fi



Und wenn das soweit erledigt ist, dann einfach den Crontab anlegen



crontab -e

*/1 * * * * /root/bin/cron/check.sh


oder unter /etc/cron.d



touch /etc/cron.d/check

*/1 * * * * root /root/bin/cron/check.sh



Wenn du nun weißt das der Cronjob jede Minute läuft, dann erstelle einfach mal die Datei, die signalisiert es ist etwas nicht ok.

touch /tmp/es_stimmt_nix.tmp

dann sollte zumindest in den Logdateien zu sehen sein das eine Mail hätte raus gehen sollen, wenn der Postfix oder so nicht korrekt konfiguriert ist. Fehler vom Skript, oder ausgaben gehen an den root, bzw an die Standardadresse die der Cron eingestellt hat. Man kann auch "MAILTO=root" deklarieren in der Crontab, und dort die Adresse angeben, ich mach mir einen Systemalias "cron" und leite den meistens über /etc/aliases an mich oder sonst wen um.

Gruß

Newbie314
06.02.08, 14:23
Die Syntax müsste so aussehen:

11 22 21 5 * /usr/bin/mail -s Testmail info@xxx.de < test.txt

wobei die Datei test.txt den Text "Testtext für info" enthält. Wobei du den Teil nach dem /usr... mal so auf der Kommandozeile ausprobieren solltest.

Ich kann es nicht ausprobieren da ich keine Lust habe Postfix oder Sendmail bei mir so zu konfigurieren dass das geht.. musst du selbst machen.

Bei komplexeren Fragen (z.B. wieviel Diskspace) dann die Skriptlösung wie sie rep beschrieben hat. Das Skript könnte ja zum Beispiel die Textdatei erzeugen deren Inhalt mit diesem Befehl verschickt wird....

be1001
07.02.08, 10:14
Super geht,

nur mit dem Text haut es noch nicht hin, aber Mail zum richtigen Zeitpunkt und auch mit der richtigen Betreffzeile geht.

Nur das < test.txt mag er nicht......

rep
07.02.08, 19:00
dann mach mutt mittels "echo "textinahlt aus deiner txt" | mutt -s Betreff ADRESSE", oder schau dir die Manpage von anderen Mailern auf der Komandozeile an, wenn das alles ist, biste doch fast am Ziel

Newbie314
07.02.08, 19:41
.. pfft... bei mir scheint das zu gehen.. ich bin nur zu faul mir ein SMTP Relay einzutragen... deswegen kann ich nicht von der Kommandozeile aus mailen....

Wie sieht es mit

cat test.txt | mail .... aus ? Die Datei test.txt muss natürlich existieren (grins).

rep
07.02.08, 22:04
Ja das ist richtig, so könnte man es auch probirne... ist nicht ganz so streng gesehen genau das gleich wie "mail < test.txt"

be1001
08.02.08, 07:47
Also in meinem Cronjob steht zur zeit folgendes:

/usr/bin/mail -s AntiVir_Key_Expires_erneuern info@xxx.de
Damit habe ich Betreff und E-Mail-Adresse.

Von der Konsole habe ich folgende probiert und es funktioniert:

echo "Bitte updaten" | mail -s"AntiVir_Key_Expires_erneuern" info@xxx.de

Wie bekomme ich den neuen Befehl jetzt in den Cronjob, bzw. muss ich den umstellen???

Newbie314
08.02.08, 12:17
Ein Shellscript schreiben:

(ungetestet):



#!/bin/sh
/bin/echo "Bitte updaten" | /usr/bin/mail -s"AntiVir_Key_Expires_erneuern" info@xxx.de


Dieses Skript im Texteditor schreiben, "executable" Recht setzen, testweise ausführen und wenn es tut den Aufruf in die crontab.

Wenn du öfter Skripte benutzt empfehle ich dir eine Einarbeitung in Perl, wenn du das selten tust tuts ein gelegentliches Nachsehen in einem Online-Kurs (Bsp; http://steve-parker.org/sh/sh.shtml)

be1001
08.02.08, 20:09
Super, mit dem Skript klappt das Prima.

Danke
Christian

Newbie314
08.02.08, 20:30
.... Vorsicht: Skriptprogrammierung ist wie Erdnüsse ... wenn man mal angefangen hat kann man kaum wieder aufhören ;)

Beispiel: im Script ein df oder du, Ausgabe in Texttext.txt umleiten und dann die Mail statt mit echo mit cat Texttest.txt | mail .....


Und so weiter... weiter oben hattest du glaube ich so etwas ähnliches gefragt .... :D

Blade
09.02.08, 17:54
Hallo,

ich hab mal ne Frage bezüglich einer Erinnerungsmail.
Wie kann ich Postfix dazu veranlassen mir an einem vorgegeben Termin eine Mail zu schicken, damit ich daran erinnert werde meinen Lizenzschlüssel zu erneuern.

Ich habe das noch nie gemacht, deshal fehlt mir jeder Ansatz dazu. Kann ich das innerhalb von Postfix, oder mit OpenSuse Boadmitteln oder brauche ich dazu ein Extraprogramm.

Danke
Toll Eure Anstrengungen, nett zu lesen. Ist aber nicht nötig, da Antivir ca. 30 Tage vor Ablauf der Lizenz dem in der Config eingetragenen Webmaster eine Erinnerungs-Mail schickt, mit dem Hinweis, dass die Lizenz in xx Tagen abläuft.

Newbie314
09.02.08, 18:31
Spielverderber ;)

Blade
09.02.08, 18:57
off topics
Soll ich meinen Beitrag löschen? :ugly:
on topics

Newbie314
09.02.08, 20:16
Ähem lieber nicht.. könnte ja sein dass jemand per Suchfunktion auf diesen Thread kommt ... und dem wäre dein Beitrag dann vielleicht sehr wertvoll ...