Script per Crontab starten klappt nicht ???

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von mehlbox, 08.11.2005.

  1. #1 mehlbox, 08.11.2005
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    :hilfe2:
    Hallo zusammen,

    habe einige scripts erstellt und wollte diese per crontab starten. Habe sie auch in der crontab eingerichtet und wenn ich sie per Hand starte funktionieren sie auch, wenn sie per cron gestartet werden bekomme ich immer folgende Fehlermdeldungen:

    Message 1:
    From root@DV09FTP01 Mon Nov 7 16:30:00 2005
    Date: Mon, 7 Nov 2005 16:30:00 +0100
    From: root@DV09FTP01 (Cron Daemon)
    To: root@DV09FTP01
    Subject: Cron <root@DV09FTP01> run-parts /opt/scripts/sendftp/infowerk_1
    X-Cron-Env: <SHELL=/bin/bash>
    X-Cron-Env: <PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/scripts:/opt:/opt/scripts/wartung:/opt/scripts/sendftp:>
    X-Cron-Env: <MAILTO=root>
    X-Cron-Env: <HOME=/>
    X-Cron-Env: <LOGNAME=root>

    Not a directory: /opt/scripts/sendftp/infowerk_1

    Die crontab sieht so aus:

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/scripts:/opt:/opt/scripts/wartung:/opt/scripts/sendftp:
    MAILTO=root
    HOME=/

    # run-parts
    01 * * * * root run-parts /etc/cron.hourly
    02 4 * * * root run-parts /etc/cron.daily
    22 4 * * 0 root run-parts /etc/cron.weekly
    42 4 1 * * root run-parts /etc/cron.monthly
    21 4 * * 5 root run-parts /opt/scripts/wartung/wartung.sh |mail -s "Statusbericht DV09FTP01" admin@test
    0,30 * * * 1-5 root run-parts /opt/scripts/sendftp/infowerk_1
    15,45 * * * 1-5 root run-parts /opt/scripts/sendftp/insole_1 2> /dev/null

    Ich benutze Redhat ES3 Version 4
    Vielen Dank für Eure Hilfe.

    Gruß Mehlbox
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. insker

    insker Entdecker

    Dabei seit:
    04.11.2005
    Beiträge:
    13
    Zustimmungen:
    0
    Hi,

    es sieht ganz so aus als würde der Path zu deinem Script oder der Name nicht stimmem.
    Überprüfe nochmal die schreibweise genau.

    Manchmal ist es nur ein kleiner Tipfehler, da in der Meldung ja steht das
    ""Not a directory: /opt/scripts/sendftp/infowerk_1""

    Sonst sehe ich keinen Fehler in der crontab.

    Gruß insker
     
  4. #3 mehlbox, 08.11.2005
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo grüß Dich,

    habe jeden einzelnen Buchstaben überprüft und die Schreibweise stimmt, auch alle Ordner und Dateien sind da??

    Ich weiss nicht mehr weiter???

    Danke und Gruß Mehlbox
     
  5. #4 Wolfgang, 08.11.2005
    Zuletzt bearbeitet: 08.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Ist /opt/scripts/sendftp/infowerk_1 eine ausführbare Datei?
    Auch wenn die Dateiendung .sh nicht zwingend nötig ist, schaut es so aus als ob
    du nur das Verzeichnis angegeben hättest, in welchem möglicherweise dein Script liegt.
    Will sagen, dass ich hier nur mal spekuliere, weil die Meisten die Endung .sh für Scripte verwenden.

    Wichtig ist aber, dass das Skript selbst ausführbar ist, oder der Interpreter selbst angegeben wird.

    Schau dir also mal die o.g. Datei genau an.

    Gruß Wolfgang
    EDIT//
    Schreib doch mal, was
    cat /opt/scripts/sendftp/infowerk_1 ausgibt.
    Ist das ein bash-script?
     
  6. #5 mehlbox, 08.11.2005
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    [root@DV09FTP01 etc]# cat /opt/scripts/sendftp/infowerk_1
    # Script erzeugt eine Dateiliste ueber Dateien mit der Erweiterung *.zip
    # Diese wird anschliesend abgearbeitet und fuer jede Datei eine
    # FTP-Uebertragung aufgerufen.

    # Mit dem Aufruf "insole_1 2> /dev/null" wird STDERR des Skripts uns NULL geleitet

    # Funktionen deklarieren
    No_Files()
    {
    echo
    echo " Es stehen keine Dateien zur Uebertragung bereit!!"
    echo
    exit 2
    }

    # In richtiges Verzeichnis springen und Dateiliste anlegen
    cd /ftp/fotobuch/infowerk
    # ls *.zip >../INFOWERK "Einfache Dateiliste ohne Endung zu entfernen!!"
    # Erzeugt eine Dateiliste aller Dateien mit Endung "zip"
    # und entfernt diese Endung in der Dateiliste
    ls *.zip > /dev/null
    if test $? -ge 1
    then
    # Logfileintrag schreiben
    LOG=`date +%Y%m%d`";"`date +%H%M%S`";Keine Datei vorhanden;0"
    echo $LOG >> /var/log/infowerk
    No_Files
    fi
    ls *.zip | sed -e 's/\.[^\.]*$//' >../INFOWERK

    # Dateiliste zeilenweise einlesen und pro Dateiname
    # die aktionen in der Schleife ausfuehren
    for i in `cat /ftp/fotobuch/INFOWERK`;do
    # Fuer Infowerk werden die Dateien vorher in *.pria umbenannt
    mv -f $i.zip $i.pria
    # FTP-Script fuer die Uebertragung aufrufen
    /opt/scripts/sendftp/infowerk_2 $i.pria
    if test $? -ge 1
    then
    echo
    echo " Fehler bei FTP-Uebertragung !!"
    echo
    exit 1
    fi
    # Nach Uebertragung erzwungenes umbenennen "-f"
    # Vorhandene Dateien werden ueberschrieben
    mv -f $i.pria $i.old
    # Logfileintrag schreiben
    LOG=`date +%Y%m%d`";"`date +%H%M%S`";"$i".old"";"`wc -c < "$i.old"`
    echo $LOG >> /var/log/infowerk
    # Mailversand fuer Uebertragung Fotobuch
    mail -s "yyy $i an xxx gesendet" root@system.de< '/opt/scripts/dummy'
    done
     
  7. #6 Wolfgang, 08.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    Wo ist deine shebang?
    Füge mal als erste Zeile:
    #!/bin/bash
    ein und setze das x-bit.
    chmod 755 /opt/scripts/sendftp/infowerk_1
    Gegebenenfalls anpassen, um es für den User unter welchem der
    cronjob läuft ausführbar zu machen.
    Alternativ kannst du im cronjob auch den Eintrag so ändern, dass du den Interpreter mit angibst:
    Beispiel:
    0,30 * * * 1-5 root run-parts /bin/bash /opt/scripts/sendftp/infowerk_1
    Damit verfütterst du das script an den richtigen Interpreter.

    HTH
    Gruß Wolfgang
     
  8. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Hi,

    Ich nehme an, dass Du bei der Verwaltung von RH falsch abgeguckt hast.
    Das Skript run-parts, dass in der Crontab erwaehnt wird, erwartet ein Verzeichnis. Ich nehme an, dass es alle Skripte, die es in dem entsprechenden Verzeichnis (/etc/crontab.hourly/ etc.) findet, ausfuehrt.

    Wenn Du nun crontab mit Deinem eigenen Skript ausfuehrst, lasse das 'run-parts' weg, da es Dein Skript nicht interpretiert:

    SHELL=/bin/bash
    PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/scripts:/opt:/opt/scripts/wartung:/opt/scripts/sendftp:
    MAILTO=root
    HOME=/

    # run-parts
    01 * * * * root run-parts /etc/cron.hourly
    02 4 * * * root run-parts /etc/cron.daily
    22 4 * * 0 root run-parts /etc/cron.weekly
    42 4 1 * * root run-parts /etc/cron.monthly
    21 4 * * 5 /opt/scripts/wartung/wartung.sh |mail -s "Statusbericht \ DV09FTP01" admin@test
    0,30 * * * 1-5 /opt/scripts/sendftp/infowerk_1
    15,45 * * * 1-5 /opt/scripts/sendftp/insole_1 2> /dev/null


    Keine Ahnung, was das 'root' vor dem run-parts noch soll, ist vermutlich auch eine Redhat-Erweiterung. Ich benutze selber kein RH, deswegen ist das nur eine Vermutung, also probier's einfach mal aus.
     
  9. #8 Wolfgang, 08.11.2005
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Hallo
    @rikola
    Dass das Skript in der falschen (nämlich systemweiten) crontab steht, ist hier eine andere Sache.
    Klar wär es besser, wenn das Script in der user-crontab stehen (eingetragen) würde.
    crontab -u user -e
    Es ist allerdings keine RH eigene Sache:

    Debian Sarge:

    cat /etc/crontab

    # /etc/crontab: system-wide crontab
    # Unlike any other crontab you don't have to run the `crontab'
    # command to install the new version when you edit this file.
    # This file also has a username field, that none of the other crontabs do.

    ...


    Ungeachtet dessen, wird es ausgeführt, wenn es alle Pfade und
    den Interpreter kennt bzw. das richtige X-Bit gesetzt ist.
    In der hier genannten crontab wird das Problemskript ja auch garnicht mit run-part gestartet.
    Das Feld für user ist übrigens nur in der systemweiten crontab vorhanden!
    Meine Hinweise dazu habe ich ja geschrieben.
    Mal sehen ob eine Rückmeldung kommt, ob es denn nun ging.

    Gruß Wolfgang
     
  10. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  11. #9 mehlbox, 08.11.2005
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo zusammen,

    habe nun alles getestet wie es hier steht root run-parts weggenommen usw. leider alles kein erfolg, werde nun mal ein testsystemn aufsetzen mit fedora core uind dort mal die scripte testen.

    Melde mich dann später wieder. . .

    Erstmal danke bnis nachher. . .

    Gruß mehlbox
     
  12. #10 mehlbox, 10.11.2005
    mehlbox

    mehlbox Eroberer

    Dabei seit:
    11.10.2005
    Beiträge:
    61
    Zustimmungen:
    0
    Ort:
    NRW
    Hallo zusammen,

    es lag irgendwie an webmin, der hat die crontab immer wieder überschrieben, habe nun alles auf der Konsole eingetippt und ohne root und run-parts und mit den richten shebang #!/bin/bash in den scripten und nun läufts.

    Vielen Dank an allen die mir mit ihren Tps den richtigen Weg gezeigt haben.

    Gruß mehlbox
     
Thema: Script per Crontab starten klappt nicht ???
Besucher kamen mit folgenden Suchen
  1. freetz crontap php datei aufrufen

    ,
  2. freetz cron lynx

    ,
  3. python datei startet nicht in cronjob

    ,
  4. python skript im crontab ausführbar machen
Die Seite wird geladen...

Script per Crontab starten klappt nicht ??? - Ähnliche Themen

  1. sed im script per crontab

    sed im script per crontab: hallo und nen schönen Tag wünsche ich, Ich bin dabei ein script zu schreiben das mir die daten in eine log-datei schreibt. Das klappt auch soweit...
  2. Script ohne Crontab

    Script ohne Crontab: Moin an alle ich hab da ein Problem mit deinem Script das Script lässt sich manuell ausführen aber über die crontab funnnzt es nicht alle rechte...
  3. crontab: wie am best .php script aufrufen? wget oder lynx?

    crontab: wie am best .php script aufrufen? wget oder lynx?: hallo, muss zur regelmässigen kontrolle/reparatur einiger datenbanken per crontab ein paar .php urls aufrufen - wie mache ich das am besten?...
  4. Mit Shellscript einen CronTab manipulieren

    Mit Shellscript einen CronTab manipulieren: Hi Leute, Ich hätt mal ne Frage, weil ich auch noch recht frisch mit der Materie herumkämpfe. Ich habe heute eh schon viel gelernt und würde...
  5. Crontab über PHP Script ändern

    Crontab über PHP Script ändern: Hallo, ich habe ein PHP Script mit dem ich einen Eintrag in der Crontab ändern möchte. Wie gehe ich da vor? Welche Befehle benötige ich...