Bash für Emailversand und löschen

boelkstoff

Neuer User
Mitglied seit
8 Mai 2007
Beiträge
130
Punkte für Reaktionen
0
Punkte
0
Hallo,
leider bin ich ein Linux anfänger und nicht fit in Bash & Co.
Kann mir jemand ein kleines Bashprogramm erstellen das folgendes tuet:

- 5 sec warten
- alle Dateien in einem Verzeichnis per Email anhang versenden
- alle Dateien in dem Verzeichnis löschen

Die Dateien müssen nicht in einer Email gesendet werden, es kann auch pro Datei eine Email sein.

Ich habe einen Vserver mit Debian und sendmail.

Würde mich riesig freuen.

Vielen vielen Vielen Dank

boelkstoff
 
@boelkstoff

Kann mir jemand ein kleines Bashprogramm erstellen das folgendes tuet:

Selbst ist der Mann, ansonsten muß man es bezahlen.

man sleep
man mutt
man bash
man rm

Gruß
britzelfix
 
Das musste ich leider auch merken :-(
und habe folgendes vollbracht:

1. Mutt installiert:
Code:
apt-get install mutt

2. Datei dailybackup erstellt und ausführbar gemacht

3. Datei mit inhalt gefüllt
Code:
#!/bin/bash
mutt -s "Backup messages" -a /var/log/asterisk/messages [email protected] < /tmp/mailmessage.txt
mutt -s "Backup messages" -a /var/log/asterisk/cdr-custom/Master.csv [email protected] < /tmp/mailmessage.txt

4. /etc/crontab für dailybackup bearbeitet: täglich nachts um 04:07
Code:
7 4	* * *	root	/etc/asterisk/dailybackup
 
@boelkstoff

Das ist schon seltsam Backups über E-Mail zu senden.
Auch gefährlich, falls nicht verschlüsselt.

Warum verwendest Du nicht z. B. rsync oder sitecopy
um backups zu machen? Ist doch viel einfachher.

Gruß
britzelfix
 
hallo britzelfix,
ujjj ähmmm keine Ahnung... weil ich es nicht kenne.

Ich werde heute mal nach den Begriffen googeln.

Vielen Dank

Nachtrag: Nunja mit rsync oder sitecopy kann ich die LogDateien nur auf einen Rechner übertragen, der auch online ist.
Mit dieser Methode habe ich jeden früh die aktuelle LogDatei und gesprächsdatei im Briefkasten.

Wie kann ich diese mit mutt verschlüsseln? Kennst sich da jemand aus?
 
Zuletzt bearbeitet:
@boelkstoff

Jetzt weiß ich erst was Du da machen willst.
Ich würde eher Apache-SSL aufsetzen und
mit einem CGI die Logs abfragen.

Gruß
britzelfix
 
Hallo britzelfix,
ja abe dann wäre der Port 80 erreichbar und das wäre wieder ... (Sicherheit).
Wenn ich das ganze per Email verschicke habe ich (und nur ich) jeden Früh die aktuellen Logdateien.

Könntest Du mir vielleicht noch bei einer for schleife helfen?Ich möchte alle Dateien aus einem Verzeichnis per Email versenden, d.h. der Mutt Befehl wird dann x-mal aufgerufen? Würde mich sehr freuen
 
naja, du kannst ja den webserver auf irgendnen anderen port oberhalb der 10000 laufen lassen... dann hast du auf jeden fall nicht die skript-kiddies sofort auf deinem system. und wenn du dann das ganze per ssl und .htaccess verschlüsselst und zugriffe einschränkst, ist das doch kein problem. und es ist wirklich sicherer als das per mail zu verschicken. wenn du es per mail schickst, kannst es genauso gut auf port 80 ohne zugriffsbeschränkung auf nem webserver bereitstellen... das ist fast dasselbe.
wenn nur du die zugangsdaten zum system hast, dann kannst auch nur du die klamotten abrufen!
 
boelkstoff schrieb:
Könntest Du mir vielleicht noch bei einer for schleife helfen?

-> man bash oder gidf.de ;) nich böse sein.
 
Ich verstehe leider immer noch nicht, was an dem Emailtransport so unsicher ist?
Ok das ganze wird unverschlüsselt übertragen, aber das werden 99% aller Email!
Sorry aber ich raffe es noch nicht.

Nachtrag: Ich könnte doch (wenn ich es hinbekomme) meine Emails mit PGP verschlüsseln, oder?
Dazu reicht es doch aus, wenn ich mir einfach ein Key-Paar erstelle und damit alle Email mit MUTT verschlüsseln lasse. Oder?
Hat da jemand Erfahrung?
Wenn ich das mit PGP hinbekomme, mache ich ein HowTo für Dummies um verschlüsselt die logDateien täglich per Email zu versenden.
 
Zuletzt bearbeitet:
@boelkstoff

Ok, Dir ist schnurz egal ob es sicher ist.
Du willst es aber unbedingt per Email machen.

Wenn ich das mit PGP hinbekomme, mache ich ein HowTo für Dummies um verschlüsselt die logDateien täglich per Email zu versenden.

Das wäre sehr nett. Ich helfe dann beim Korrigieren. ;-)

Gruß
britzelfix
 
boelkstoff schrieb:
Ich verstehe leider immer noch nicht, was an dem Emailtransport so unsicher ist?
Antwort:
boelkstoff schrieb:
Ok das ganze wird unverschlüsselt übertragen, aber das werden 99% aller Email!

JA! Genau das liegt der Hase im Pfeffer! Es sind quasi alles nur Postkarten.
Jeder der will kann es lesen!
 
Jeder der will kann es lesen!

Um Aufwand zu Nutzen zu stellen muss sich aber doch die Frage stellen lassen ob der gesamte Aufwand lohnt - schliesslich reden wir hier von Logfiles welche - wenn ich nicht recht irre - keine Passwortsensiblen Daten beinhalten.

Ich denke da an ganz andere Kaliber die sich diese Frage stellen sollten - Beispiel ein grosses Steuerbüro aus dem westlichsten Ruhrgebiet - diese Herren versenden alle Auswertungen per Mailanhang (XLS) - ohne jede Kryptografiegedanken, aber mit dem Hinweis "Nicht für Dritte...." - aber hier gehe ich offtopic.

Ich denke - und nur für mich - bei dieser Konstellation - ist die Email die beste & einfachste Alternative.

mache ich ein HowTo

Das wäre natürlich der Idealfall, PGP würde die Sache sauber und dicht machen, ansonsten - wenn machbar per CGI - das wäre dann auch für "einen Nachfolger" schnell und leicht zu verstehen.

Grüsse, Stefan
 
@Hobby*

Logfiles welche - wenn ich nicht recht irre - keine Passwortsensiblen Daten beinhalten.
Passwrortsensibel? Wassn das?
Es reicht schon der Benutzername, um es dem Angreifer etwas leichter
zu machen.

Ich denke - und nur für mich - bei dieser Konstellation - ist die Email die beste & einfachste Alternative.

Ist das hier etwa schwieriger, als Logs per Email zu versenden?
Code:
ssh remote "tail -30 /var/log/asterisk/cdr-csv/Master.csv"

Kopiert man den Pubkey auf remote, dann geht's auch ohne
die Passwortabfrage.
Und um Email abzuholen muß man doch ohnehin
online gehen.

Gruß
britzelfix
 
ich benutze auch email um mir bestimmte Dinge vom Asterisk Server schicken zu lassen ;) z.B. jede Nacht die aktuellen .conf-Dateien mit folgender Datei:

Code:
cd /tmp
tar -cf asteriskconf.tar /etc/asterisk/*
bzip2 asteriskconf.tar

cat asteriskconf.tar.bz2 | mime-construct --to [email protected] \
    --subject "CONF Backup" \
    --string "Backup" \
    --attachment `basename asteriskconf.tar.bz2` \
    --type application/bzip2 --file -

rm asteriskconf.tar.bz2

Wie man sieht, werden hier erstmal alle Dateien aus /etc/asterisk in eine Datei "asteriskconf.tar" zusammengeschnürt, die dann auch noch mit bzip2 komprimiert werden.

Danach wird diese gezippte Archiv per email an eine email gehängt und ohne weiteres Zutun verschickt.

Die Sicherheitsdiskussion ist hier völlig fehl am Platz - es wurde nämlich lediglich nach einem möglichen Verfahren gefragt, wie man so etwas machen kann.

Es ist mir übrigens völlig bewußt, daß man das Ganze auch noch einfacher hätte lösen können. Aber das vorgestellte Verfahren mit mime-construct läßt sich beliebig flexibel einsetzen. Außerdem war mir wichtig, einem unerfahrenen Linux-User die prinzipielle Vorgehensweise möglichst anschaulich und ausführlich darzustellen. Bei mir werden auf ähnliche Weise auch aufgezeichnete Sprachnachrichten nach MP3 gewandelt und dann per email verschickt - unabhängig vom voicemail-System von Asterisk.
 
@Britzelfix

Natürlich (nicht passwort-) sensible Daten, bin nur ein Mensch ;)

Ein Benutzername ist natürlich schon etwas zum anfangen, keine Frage - nur ist es den gesamten Aufwand wert ?


Ist das hier (SSH Abruf) etwa schwieriger, als Logs per Email zu versenden?
Nein, sicherlich nicht! Ich würde das ganze auch nicht unbedingt per Mail lösen, nur ist es wie geschrieben, unter den hier genannten Konstellationen, mM nach die beste Alternative.

Ich lasse mich von meinen hausuinternen Servern sowie meinem kleinen vServer auch jede Nacht kurz informieren was so am Vortage los war und sende das ganze knapp und bündig per Mail - der Einfachheit halber, denn sicher - online gehen muss man sowieso (die meisten sind ja eh dauernd online dank flat) - aber die Mails abrufen, das gehört bei mir, sowie sicherlich den meisten anderen, so dazu wie die Schuhe anzuziehen wenn man nach draussen geht, von daher ist es bequem sich auf diese weise schnell abnormalitäten anzeigen zu lassen.

Aber ich gehe hier mal wieder off topic und das gehört hier auch nicht hin - ich denke und das schrieb ich Dir schon weiter oben, das Du (britzelfix) Recht hast, sicher ist eine Verschlüsselung mehr als nur von Nutzen um ein sicheres System zu betreiben, keine Frage.

SSH ist sicher und auch meine Lieblingslösung, Email ist schnell und einfach - und von Haus aus (ersteinmal) unsicher.

Es ist die Frage was man sucht.

Siehe :
Die Dateien müssen nicht in einer Email gesendet werden, es kann auch pro Datei eine Email sein.

Grüsse, Stefan
 
@betateilchen

Die Sicherheitsdiskussion ist hier völlig fehl am Platz

Finde ich nicht.
Es ist schon ein ziemlicher Leichtsinn alle
Accounts mit Passwörtern (sip.conf,iax.conf) per Email
unverschlüsselt zu verschicken, aber wer's mag muß
auch mit den Risiken, die man sich schafft, leben.

Ich halte übrigens eine Lösung mit "rsync" die
einfachste. Rsync benutzt üblicherweise ssh
um sich remote einzuloggen. Das hält die Daten
geheim und ssh kann auch on-the-fly komprimieren.
Rsync kann mit dem Parameter "-c" auch
nur die Differenzen einer Datei zu kopieren.
Damit lassen sich mit z.B:
Code:
rsync -bcHx remote:/var/log /var/spool/backup/remote/var/log

blitzschnell und sicher die Daten auf den lokalen Rechner holen.

Gruß
britzelfix
 
Hallo,
also nochmal zum Ursprung:
Ich wollte nie conf Dateien per Email verschicken.
Ursprünglich wollte ich wav Dateien per Email verschicken.
Vielleicht kann mir jetzt doch einer der Profis mal helfen:

Wie realisieren ich eine schleife, die alle Dateien in einem Verzeichnis per Email einzeln verschickt?
 
Was schreist Du denn hier so rum?

Ich habe doch oben ein funktionierendes Beispiel für conf Dateien angegeben - das funktioniert natürlich analog auch mit wav Dateien.
 
@boelkstoff

Die Antwort liegt auf Deiner Platte.

Code:
egrep -A12 "for.*in.*do" /usr/bin -r|less

BTW: wolltest Du nicht ein HowTo für Dummies schreiben??

Gruß
britzelfix
 
Zuletzt bearbeitet:
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.