PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : shell script crontab problem



ZyRa
07.07.08, 08:31
Script:


#!/bin/bash
datum=$(date "+%y%m%d-%H%M")
tar czfv log_arch/bak.tar.gz test/communication_error_log.txt test/billing_log.txt test/download_log.txt test/wtok_validation_log.txt test/download_error_log.txt
mv /kunden/homepages/...../htdocs/temp/log_arch/bak.tar.gz /kunden/homepages/...../htdocs/temp/log_arch/$datum.bak.tar.gz
echo "Neue logfiles vorhanden! Download:
http://www.url/log_arch/$datum.bak.tar.gz" | mail -s "Neue Logfiles" mail@domain.net
if [ -f /kunden/homepages/......./htdocs/temp/log_arch/$datum.bak.tar.gz ]
then
rm -f /kunden/homepages/......./htdocs/temp/test/communication_error_log.txt
touch /kunden/homepages/......./htdocs/temp/test/communication_error_log.txt
chmod 644 /kunden/homepages/......./htdocs/temp/test/communication_error_log.txt
rm -f /kunden/homepages/......./htdocs/temp/test/billing_log.txt
touch /kunden/homepages/......./htdocs/temp/test/billing_log.txt
chmod 644 /kunden/homepages/......./htdocs/temp/test/billing_log.txt
rm -f /kunden/homepages/......./htdocs/temp/test/download_log.txt
touch /kunden/homepages/......./htdocs/temp/test/download_log.txt
chmod 644 /kunden/homepages/......./htdocs/temp/test/download_log.txt
rm -f /kunden/homepages/......./htdocs/temp/test/wtok_validation_log.txt
touch /kunden/homepages/......./htdocs/temp/test/wtok_validation_log.txt
chmod 644 /kunden/homepages/......./htdocs/temp/test/wtok_validation_log.txt
rm -f /kunden/homepages/......./htdocs/temp/test/download_error_log.txt
touch /kunden/homepages/......./htdocs/temp/test/download_error_log.txt
chmod 644 /kunden/homepages/......./htdocs/temp/test/download_error_log.txt
else
echo "Fehler beim Packen der Daten" | mail -s "Error Logfiles" technik@domain.com
fi

Crontab:


0 0 1 * * sh /kunden/homepages/......./htdocs/temp/logfiles.sh


Wenn ich das script manuell ausführe, werden die Logs ordentlich gepackt und mir per email eine Nachricht zugesendet.
Sollte es jedoch über den crontab gestartet werden, so schlägt es fehl.
Hat hier jemand eine Idee woran es liegen könnte?

Theo Retisch
07.07.08, 08:55
Wird ein Script über die Crontab ausgeführt, stehen die Umgebungsvariablen (beispielsweise $PATH) nicht zur Verfügung.

Daher sollte man benötigte Variablen am Anfang des Scripts definieren.

Ich denke, dass in Deinem Script einfach die Tools (tar, mail) nicht gefunden werden.

Gruß
Theo

CharlyP
07.07.08, 10:05
Stimmt, die Umgebungsvariablen sind nicht da, dafür kannst Du aber eine Loginshell per crontab benutzen (dann hast Du auch die Vars.)

bash --login -c "<Pfad zum Skript>/skript.bash"