Anzeige:
Ergebnis 1 bis 15 von 24

Thema: Script arbeitet von shell aus ok, aber nicht per cronjob

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Poste doch mal das Script.

    Der Hauptunterschied der oft Probleme macht zwischen "normal Ausführen" und Cronjob ist dass beim Cronjob die PATH-Variable nicht gesetzt ist - d.h. du verwendest absolute Pfade zu den Programmen oder setzt die Variable am Scriptanfang selber.

    Allerdings verstehe ich die Fehlermeldung so auch nicht.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  2. #2
    Registrierter Benutzer
    Registriert seit
    20.09.2004
    Beiträge
    38
    Hm Pfadangaben teste ich schnell mal aber moment das Programm findet er ja

    Hier mal das script:

    #!/bin/sh
    wget -q http://checkip.dyndns.org/index.html --output-document=/root/bin/neu.ip --timeout=3
    if [ "`cat /root/bin/neu.ip`" = "`cat /root/bin/alt.ip`" ]
    then echo No new IP;
    else updatedd dyndns USER:PASS HOST; echo "New IP";
    fi
    rm /root/bin/alt.ip
    mv /root/bin/neu.ip /root/bin/alt.ip

    Bin grad auch noch am feilen um die ganzen file Operationen gegen Parameter
    zu ersetzen, aber primär jetzt mal das updatedd im cron ans laufen zu kriegen.

  3. #3
    Registrierter Benutzer
    Registriert seit
    20.09.2004
    Beiträge
    38
    Ich könnt sowas von kotzen, ich hab jetzt hier eine Woche mit diesem
    miniscript verschissen und jetzt gehts nur weil ich #!/bin/bash verwende
    anstatt #!/bin/sh . *argh*

    Hoffe es hilft wenigstens jemand anderem der ein ähnliches Problem hat.

    mfg Navy

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Aber /bin/sh ist bei mir zumindest ein Symlink auf /bin/bash

    Oder liegts eventuell gerade daran? Dass Cron keine Programme via Symlinks starten will?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer Avatar von fs111
    Registriert seit
    23.03.2002
    Beiträge
    594
    Zitat Zitat von peschmae
    Aber /bin/sh ist bei mir zumindest ein Symlink auf /bin/bash
    MfG Peschmä
    Das ist aber nur unter Linux so, andere Unices haben da die echte Bourne Shell.

    fs111

  6. #6
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Zitat Zitat von fs111
    Das ist aber nur unter Linux so, andere Unices haben da die echte Bourne Shell.
    Ich weiss, das war auch nicht "da point" von dem Satz

    Danke@Roli

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  7. #7
    Registrierter Benutzer Avatar von Hans-Georg Normann
    Registriert seit
    04.03.2000
    Ort
    Uetersen
    Beiträge
    571
    gibt da so einiges was man machen könnte.

    set -xv in das script einbauen. Damit erhält man eine Ablaufverfolgung. Läuft sowohl in der bash als auch in der sh. Hier mal ein Beispielscript:
    Code:
    echo $(date); sleep 1;
    echo $(date); sleep 1;
    set -xv
    echo $(date); sleep 1;
    echo $(date); sleep 1;
    echo $(date); sleep 1;
    Hier kommt die Ausgabe:
    Code:
    [hans@rosi tmp]$ ./xyz.sh
    Do Sep 23 21:07:37 CEST 2004
    Do Sep 23 21:07:38 CEST 2004
    echo $(date); sleep 1;
    date
    +++ date
    ++ echo Do Sep 23 21:07:39 CEST 2004
    Do Sep 23 21:07:39 CEST 2004
    ++ sleep 1
    echo $(date); sleep 1;
    date
    +++ date
    ++ echo Do Sep 23 21:07:40 CEST 2004
    Do Sep 23 21:07:40 CEST 2004
    ++ sleep 1
    echo $(date); sleep 1;
    date
    +++ date
    ++ echo Do Sep 23 21:07:41 CEST 2004
    Do Sep 23 21:07:41 CEST 2004
    ++ sleep 1
    [hans@rosi tmp]$
    Wenn du die Standardausgabe nicht ins Nirwana schickst, dann bekommst du eine Mail von der cron.

    set > /tmp/irgendwas.txt

    Listet alle Variablen in der Datei /tmp/irgendwas.txt. Da sieht man dann was in der cron fehlt.

    Hans
    Geändert von Hans-Georg Normann (23-09-2004 um 20:14 Uhr)
    333 Mhz, 466 MHz, neee, ich hab was neues zuhause.....

  8. #8
    Registrierter Benutzer
    Registriert seit
    07.06.2004
    Ort
    Stammheim
    Beiträge
    43
    Programme mit Cron via Symlink starten klappt bei mir jedenfalls Bestens...

    Roli
    date "+60ss%Sls%M*+lsd*r-p" | dc

Lesezeichen

Berechtigungen

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