• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

shell gehorcht nicht

cbacon

Newbie
ich brauche eine shell datei für meinen webserver, der automatisch eine email nach einem backup absendet. meine shell funktioniert nicht.

Code:
telnet 127.0.0.1 25
helo
mail from:info@google.de
rcpt to:subcortexx@googlemail.com
data
Backup gestartet
.
quit
wenn telnet erfolgreich connected hat, wird nichts mehr ausgeführt!
und wenn ich quit eingebe kommen dann die ganzen befehle!
wie muss ich dass umschreiben, wenn die befehle in telnet ausgeführt werden sollen und nicht danach?
 

regexer

Advanced Hacker
cbacon schrieb:
wie muss ich dass umschreiben, wenn die befehle in telnet ausgeführt werden sollen und nicht danach?
Soetwas löst man eher mit rsh (remote shell) oder besser mit ssh.

Aber wenn ich dich richtig verstehe wäre es doch schlauer, in das Backup-Shellscript einfach mailx zu verwenden - so wie es bereits panamajo vorgeschlagen hat.
Etwa so:
Code:
echo "Mailtext" | mailx -s "Betreff" user@host.com
 

byron1778

Hacker
Unter Solaris gibt es expect, das es auch unter Linux gibt, was ich so weiss.
Damit kann man u. a. telnet, ftp, ssh und co steuern, ist ein automatisiertes Prgroamm.
 

byron1778

Hacker
Ja genau das meine ich.
Ist bei Solaris Standard, soviel ich weiss.
Konnte es erst kuerzlich auch fuer ein API - Pogramm verwenden.
 

whois

Ultimate Guru
byron1778 schrieb:
Ist bei Solaris Standard, soviel ich weiss.
Nicht nur da ich sitze im Moment an einem etwas älteren PC wo ursprünglich Suse 10 drauf installiert worden ist und der auf 10.3 upgedated worden ist.

Code:
$ type expect
expect is /usr/bin/expect
 

byron1778

Hacker
Nicht nur da ich sitze im Moment an einem etwas älteren PC wo ursprünglicxh Suse 10 drauf installiert worden ist und der auf 10.3 upgedated worden ist.

Gut zu wissen :)
Obwohl ich eigentlich vorgefertigte Tools nicht so wirklich mag, sondern mir lieber immer etwas selber zusammenschustere / scripte od programmiere.
Aber wenn etwas schneller funktionieren soll, dann ist expect gut zu gebrauchen !
 

whois

Ultimate Guru
byron1778 schrieb:
Aber wenn etwas schneller funktionieren soll, dann ist expect gut zu gebrauchen !
Obwohl ich gestehen muss das ich mich erst in die man einlesen musste,da ich noch nie damit gearbeitet habe.
Danke für den Tip man lernt wirklich nie aus. :)
 

byron1778

Hacker
Danke für den Tip man lernt wirklich nie aus.

Bitte kein Problem :)
Habe es aber auch erst vor ca. einem Monat kennen gelernt :)
Was mir daran gefaellt ist, dass man auch, wie der Name expect bereits sagt, auf eine bestimmte Antwort warten kann.


Code:
telnet port 25
helo

und genau hier kann man auf die Antwort warten und erst dann die naechste Aktion ausfuehren, damit man nicht dem Server zuvor kommt.
 
OP
C

cbacon

Newbie
Vielen dank für die schnellen antworten aber ich blick nich ganz durch!
was genau soll ich jetzt machen und wass kommt in die shell datei rein?
 

byron1778

Hacker
was genau soll ich jetzt machen und wass kommt in die shell datei rein?

Lies Dir am besten die Anleitung zu expect durch.
Leider kann ich es nicht auswendig.
Aber damit bekommst Du es am einfachsten hin !
Damit laeuft alles vollautomatisch ab.
Und man kann expect auch noch Parameter uebergeben, was auch wichtig sein kann, wenn man expect innerhalb eines Programmes aufruft !
 

croco001

Newbie
Schaue Dir mal bitte watchlog an. Wenn Du dann noch exim installierst und konfigurierst, hast Du somit die Möglichkeit, Dir eine zusammenfassende Mail automatisiert senden zu lassen. Es lassen sich beliebig viele Empfänger bei exim angeben.
Jetzt werden sich sicherlich viele fragen, warum das denn so umständlich? Ganz einfach. Erstens ist es nicht umständlich und zweitens bringt es Vorteile. Wenn also Dein Backup auf dem Server ausgeführt wurde, dann siehst Du dies in der Mail anhand des Dienstes der dafür serverseitig ausgeführt wurde. Wurde kein Backup ausgeführt, so kannst Du - falls Du logwatch auf Loglevel 10 eingestellt hast - gleich in der selben Mail nachschauen, was schiefgelaufen ist. Hintergrund: watchlog sammelt die wichtigsten Vorkommnisse in den Logdateien Deines Servers und berichtet dies dann per Mail. Den Anstoss für logwatch gibst Du per Cronjob. Wenn somit etwas schiefläuft, hat man bereits zwei Fliegen mit einer Klappe geschlagen. Und der Clou - man kann watchlog mitteilen, welche zusätzlichen Logdateien er zu den herkömmlichen eobachten soll.
 

regexer

Advanced Hacker
byron1778 schrieb:
Ist bei Solaris Standard, soviel ich weiss.
Bei mir anscheinend nicht ..
Code:
$ uname -sr
SunOS 5.10
$ type expect
expect not found
$

whois schrieb:
Nicht nur da ich sitze im Moment an einem etwas älteren PC wo ursprünglich Suse 10 drauf installiert worden ist und der auf 10.3 upgedated worden ist.
... sles10 --> ebenfalls Fehlanzeige...
 
Dafür ist expect auf der 10.3 per default dabei:

Code:
kalle@hoppers:~> which expect
/usr/bin/expect

Wird aber langsam OT hier, oder?
 

Wizzzard

Member
Also ersteinmal: 'telnet' ist unsicher. Sowas verwendet man nur in voll abgeschotteten Netzwerken.

Dann, schreibe ein Shell-Skript das vollständig auf dem Webserver abläuft. Was soll der Unfug, jedes Kommando einzeln rüberzuschieben. Mit einem Shell-Skript hat man wesentlich mehr Kontrolle darüber, ob ein Kommando korrekt ausgeführt wurde oder nicht.

Benutze 'ssh', um das Shell-Skript zu starten. (rsh ist genauso unsicher wie telnet).

Expect ist eigentlich dazu da, um interaktive Kommandozeilen-Programme fernzusteuern.

Gruß,
Wizzzard.
 
Ich wusste bis zu diesem thread nicht mal, was expect eigentlich ist, also bewusst habe ich das nicht installiert - kann aber auch sein, dass das in Abhängigkeit von irgendetwas anderem eingespielt wurde.
 
Oben