tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
2
ZUGRIFFE
878
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    haraldSol haraldSol ist offline Mitglied
    Registriert seit
    Feb 2011
    Beiträge
    17
    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
     

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    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:
    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"
    ...
    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
    
    exec 2>> error.log
    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    haraldSol haraldSol ist offline Mitglied
    Registriert seit
    Feb 2011
    Beiträge
    17
    Vielen dank füre die Hilfe ich werde es mal versuchen---
    Schönes Wochenende
     

Ähnliche Themen

  1. Crontab problem! (hier: Aufruf einer php-Datei)
    Von MC-René im Forum Linux & Unix
    Antworten: 4
    Letzter Beitrag: 29.07.08, 13:58
  2. Scriptausführung pausieren
    Von Geflügel im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 30.08.07, 17:47
  3. probleme bei der scriptausführung in einigen neuen Browsern
    Von p-flash im Forum Javascript & Ajax
    Antworten: 3
    Letzter Beitrag: 30.05.06, 19:23
  4. Antworten: 7
    Letzter Beitrag: 07.05.05, 23:10
  5. weiterleitung nach scriptausführung
    Von dPo2000 im Forum PHP
    Antworten: 6
    Letzter Beitrag: 29.12.01, 22:22