wo liegt der fehler im script ?

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
jan_dortmund
Beiträge: 7
Registriert: 03.12.2007 12:45:32

wo liegt der fehler im script ?

Beitrag von jan_dortmund » 05.12.2007 16:29:43

hallo zusammen,

ich möchte mir per cronjob einen tripwire report erstellen, diesen per email und anschliessend wieder löschen
wenn ich mein script aufrufe, erstellt er mir auch schön und brav den report, allerdings wird sendmail nicht aufgerufen und löschen tut er die datei auch nicht

in den log files ist nur der erfolgreiche aufruf von tripwire zu erkennen.. mehr nicht

ich hoffe mir kann jemand helfen und sagen wo in dem nachfolgenden script der fehler ist, da ich nicht wirklich viel ahnung von shell programmierung habe


vielen dank im voraus
gruß
jan

Code: Alles auswählen

#!/bin/sh -e

tripwire=/usr/sbin/tripwire
sendmail=/usr/sbin/sendmail

echo "Starte Tripwire cron..."

$tripwire --check --quiet > /root/trip_report.log
$sendmail root < /root/trip_report.log
rm /root/trip_report.log


Benutzeravatar
Duff
Beiträge: 6321
Registriert: 22.03.2005 14:36:03
Wohnort: /home/duff

Beitrag von Duff » 05.12.2007 17:27:51

Verwende zwar privat kein sendmail, aber denke mal, dass du noch weiter Parameter mit angeben musst (Empfänger, Subject, usw.).

Hast du denn sendmail überhaupt konfiguriert?
Kannst du per Kommandoaufruf Mails mit sendmail versenden?
Oh, yeah!

jan_dortmund
Beiträge: 7
Registriert: 03.12.2007 12:45:32

Beitrag von jan_dortmund » 05.12.2007 17:47:06

wenn ich sendmail root < trip_report.log von der kommandozeile eingebe funktioniert alles wunderbar

das 2. kuriose ist ja auch, warum er die datei am ende vom script nicht löscht

jhr-online
Beiträge: 2186
Registriert: 18.09.2005 15:52:02
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Beitrag von jhr-online » 05.12.2007 19:53:47

Ich versuche mal eine Möglichkeit... :)

sendmail liegt vielleicht gar nicht in /usr/sbin, sondern in /usr/bin. Da der Befehl einen non-zero Status zurückgibt, wird rm auch nicht mehr ausgeführt, denn

Code: Alles auswählen

-e  Exit immediately if a command exits with a non-zero status.
Setz doch die Pfade automatisch...

Code: Alles auswählen

tripwire=`which tripwire`
sendmail=`which sendmail`
Ist aber geraten...

jhr
Desktop: Intel Core2Quad Q8300 2.5GHz, 256GB SSD + 1 TB HDD, 8 GB RAM, Debian Sid, Kernel 3.13

Antworten