Anzeige:
Ergebnis 1 bis 4 von 4

Thema: Shell zähler schleife im script geht nicht per cron job

  1. #1
    Registrierter Benutzer
    Registriert seit
    Sep 2003
    Ort
    Rostock
    Beiträge
    193

    Question Shell zähler schleife im script geht nicht per cron job

    hi alle, ich hab da was komischen und weiss nicht weiter:

    habe ein script "AutoUpdate" gebaut und im /bin als ausführbar gespeichert.

    Inhalt:

    cd /tmp/;wget --http-user=max --http-passwd=muster http://test.de/UPD/update_info_version
    if ! test -f /tmp/update_info_version; then exit; fi;
    if ! test -f /bin/update_info_version; then echo "1" > /bin/update_info_version; fi;
    Aktuell=`cat /bin/update_info_version`; Server=`cat /tmp/update_info_version`
    if [ "$Server" > "$Aktuell" ]; then
    N=$Aktuell
    N=$[$N+1]
    while [ $N -le $Server ] ; do
    wget --http-user=max--http-passwd=test http://test.de/UPD/$N
    if test -f /tmp/$N; then chmod 777 /tmp/$N; fi;
    if test -f /tmp/$N; then ./$N; echo "$N" > /bin/update_info_version; rm $N; fi;
    N=$[$N+1]
    done
    fi
    rm /tmp/update_info_version*



    wenn ich es selbst aufrufe als root mit AutoUpdate, dann geht es normal. es läd eine info datei runter wo eine zahl, d.h. versionsnummer auf dem server drin ist. dann kuckt es local ob die eigene datei eine kleinere versionsnummer hat und läuft dann eine schleife durch von localer nummer bis verfügbare.


    nun habe ich einen cronjob in /etc/cron.d erstellt.
    */1 * * * * root cd /tmp/; /bin/AutoUpdate;

    dieser ruft das script auf (dasist sicher!!) aber läuft die scheife nicht durch weil der wert "N" nicht die zahl ein oder zwei oder drei, etc. ist sondern scheinbar der string [1+1]+1 ist

    also wenn ich wie gesagt es selbst starte aus der konsole ist N wirklich eine zahl, aber ruft cron daemon es auf ist n eben " [1+1]+1"


    könnt ihr da ein beeseres beispiel für eine schleife geben??

  2. #2
    Registrierter Benutzer
    Registriert seit
    Jan 2008
    Beiträge
    2.551
    Inkrementiere N mit

    Code:
    N=`/bin/echo "$N + 1" | /usr/bin/bc -l`
    Geändert von Aqualung (05.02.09 um 18:41 Uhr)

  3. #3
    Flachinformatiker Avatar von MiGo
    Registriert seit
    Oct 2002
    Ort
    Heidelberg
    Beiträge
    5.270
    also wenn ich wie gesagt es selbst starte aus der konsole ist N wirklich eine zahl, aber ruft cron daemon es auf ist n eben " [1+1]+1"
    Schreib' mal in das Script rein, welche Shell es verwenden soll (die in der Konsole, in der das Script ja läuft findest du mit "echo $SHELL" raus) und bastle es mit ganzem Pfad zur Shell an den Anfang des Scriptes
    #!/usr/bin/zsh (z.B.)
    Ich würde mal vermuten, dass deine normale Shell halt einfach mehr kann, als die default-mäßg verwendete "sh".
    "Da steht sowas ähnliches wie" oder "das funzt net!!" ist keine Fehlermeldung!

  4. #4
    Java Fanboy Avatar von comrad
    Registriert seit
    Mar 2001
    Ort
    Delmenhorst
    Beiträge
    4.052
    In der Crontab selbst kann auch auch nochmal definieren, welche Shell es zum Aufrufen verwenden soll.

Ähnliche Themen

  1. XFS vs. EXT3
    Von daniel11 im Forum Linux als Server
    Antworten: 0
    Letzter Beitrag: 19.08.08, 08:03
  2. Cron Script
    Von ottscho im Forum System installieren und konfigurieren
    Antworten: 9
    Letzter Beitrag: 25.09.07, 08:52
  3. per script internetverbindung prüfen und mail schicken
    Von Benuk im Forum Anbindung an die Aussenwelt
    Antworten: 6
    Letzter Beitrag: 27.04.07, 13:48
  4. Script unter bestimmten Benutzer per Shell starten
    Von BSDknecht im Forum Anwendungen Allgemein, Software
    Antworten: 6
    Letzter Beitrag: 28.03.07, 14:12
  5. Cron Job funktioniert nicht
    Von Josh83 im Forum System installieren und konfigurieren
    Antworten: 4
    Letzter Beitrag: 01.03.07, 14:16

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •