ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
878
878
EMPFEHLEN
-
Hallo Zusammen,
ich hoffe hier im Forum kann mir jemand helfen, denn ich bin so langsam am verzweifeln...
Folgendes Problem / Aufgabenstellung:
Ein Script soll eine Datei *.gz per http downloaden und anschließend entacken und convertieren. Das ganze soll automatisiert ablaufen per crontab.
Wenn ich dieses Script nun manuell starte, läuft es durch und alles funktioniert.
Per crontab läuft noch der Download korrekt ab, aber entpacken funktioniert schon nicht, da hier vermutlich, aufgrund der anderen Umgebung im crontab, ein Problem auftritt. Wird der Download und das Entpacken in zwei unterschiedlichen Cronjobs nacheinander ausgeführt, läuft alles. Das Skript soll aber in einem einzigen crontab ausgeführt werden, somit kommt das in als Lösung in frage.
Das Problem liegt vermutlich daran, dass auf die heruntergeladene Datei wohl nicht korrekt zugegriffen werden kann. Auch ein sync-Befehl nach dem Download und ein sleep brachte keinen Erfolg.
Als Problemlösung habe ich versucht dass sich der Cronjob per ssh auf user01@localhost connected, jedoch gleicher Fehler. Manuell funktioniert alles wieder. Per atjob habe ich auch wieder den gleichen Fehler.
hier der crontab (wird von einem user ausgeführt / nicht root):
Code :1 2 3 4 5 6
SHELL=/bin/bash # m h dom mon dow command 30 02 * * * /home/user1/script/start.sh #------------------------
hier mein Script:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
#!/bin/bash cd /home/user1/script/workfolder echo "$(date +%Y%m%d%H%M%S) RUN...start downloading now..." >> /var/www/output/log/$(date +%Y%m).log wget http://*.*.*.*/pub/latest.gz -O latest_$(date +%Y%m%d).gz echo "$(date +%Y%m%d%H%M%S) OK...download complete!" >> /var/www/output/log/$(date +%Y%m).log echo "$(date +%Y%m%d%H%M%S) RUN...start unzipping now..." >> /var/www/output/log/$(date +%Y%m).log /bin/gzip -dfv latest_$(date +%Y%m%d).gz echo "$(date +%Y%m%d%H%M%S) RUN...converting files now..." >> /var/www/output/log/$(date +%Y%m).log /usr/local/bin/converttool-1.554.1/convert latest_$(date +%Y%m%d) -O latest_$(date +%Y%m%d).txt mv latest_$(date +%Y%m%d).txt /var/www/output echo "$(date +%Y%m%d%H%M%S) OK...success" >> /var/www/output/log/$(date +%Y%m).log
-
03.03.11 13:10 #2
- Registriert seit
- Jun 2005
- Beiträge
- 8.168
Hi.
Finde heraus welche Fehler auftreten!
Modularisierung wäre eine gute Idee, schreibe eine Funktion für das Logging. Verwende eine Variable für die Dateinamen statt ständig $(date ...) aufzurufen.
Breche die Ausführung des Skriptes ab wenn ein Fehler auftritt:
Wenn das Skript mit einem Fehler beendet, solltest du auch eine Mail mit der Fehlermeldung bekommen. Ansonsten, leite alle Fehler in eine Log-Datei um:Code bash:1 2 3 4 5 6 7 8 9 10
LOGFILE=/var/www/output/log/$(date +%Y%m).log function error() { echo "ERROR - $(date ...) - $1" >> "$LOGFILE" exit 1 } ... wget [url]http://.[/url].. -O .. || error "downloading failed" gzip -dfv ... || error "decompress failed" ...
GrußCode bash:1
exec 2>> error.log
If at first you don't succeed, try again. Then quit. No use being a damn fool about it.
-
Vielen dank füre die Hilfe ich werde es mal versuchen---
Schönes Wochenende
Ähnliche Themen
-
Crontab problem! (hier: Aufruf einer php-Datei)
Von MC-René im Forum Linux & UnixAntworten: 4Letzter Beitrag: 29.07.08, 13:58 -
Scriptausführung pausieren
Von Geflügel im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 30.08.07, 17:47 -
probleme bei der scriptausführung in einigen neuen Browsern
Von p-flash im Forum Javascript & AjaxAntworten: 3Letzter Beitrag: 30.05.06, 19:23 -
bei erfolgreicher scriptausführung neue seite aufrufen?
Von sevi im Forum PHPAntworten: 7Letzter Beitrag: 07.05.05, 23:10 -
weiterleitung nach scriptausführung
Von dPo2000 im Forum PHPAntworten: 6Letzter Beitrag: 29.12.01, 22:22





Zitieren
Login





