Cronjob startet nicht

Von: , Frage gestellt am Do, 3. Mai 2007

Hallo,

ich habe folgendes Problem:

Ich möchte folgendes Skript per Cronjob einmal täglich um 2 Uhr starten

#Datum in Variable schreiben
DATUM=`date +%Y-%m-%d-%H%M`

#Variablen
BACKUPDIR=/backup/backupskript/dateisystem
VERZ1=/home
VERZ2=/var

#Anlegen des Ordners mit Datum
mkdir $BACKUPDIR/$DATUM

#Setzen der Rechte
chown root $BACKUPDIR/$DATUM
chmod 744 $BACKUPDIR/$DATUM


#Backup der Verzeichnisse
cp -p -r $VERZ1 $VERZ2 $BACKUPDIR/$DATUM

[/CODE]

Dazu habe ich mit crontab -e folgenden Eintrag gemacht

00 3 * * * root sh -c /backup/backupskript/backup.sh


Wenn ich den Befehl sh -c /backup..... manuell in der shell ausführe läuft das Skript ohne Probleme, der cronjob startet ihn jedoch leider nicht.

Kann mir jemand sagen, woran das liegen kann?


Grüße,
Sebastian

4 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: Cronjob startet nicht

    Hallo TheWombat,

    du kannst (leider) nicht davon ausgehen, das ein Job, der unter cron laufen soll, über dieselben Einstellungen der Umgebungsvariablen verfügt, wie deine (interaktive) Shell. Teste mal, ob $PATH (und ggf. weitere verwendte Variablen) wie von dir benötigt gesetzt ist. Im Zweifel solltest du die verwendeten Programme (date, cp) mit absoluten Pfaden (/usr/bin/dateno.ä.) spezifizieren.

    HTH
    bernhard

    • Antwort von nach 4 Stunden 0 hilfreich
      Re^2: Cronjob startet nicht

      Hallo,

      kannst du das vielleicht etwas weiter spezifizieren? Wie muss ich das Skript konkret erweitern?
      Ich bin erst am Beginn meiner "Linux Karriere" und dies ist mein erstes Skript, was ich per cron laufen lassen möchte.

      Grüße,
      Sebastian [Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

      • Antwort von nach 19 Stunden 0 hilfreich
        Re^3: Cronjob startet nicht

        Hallo,

        kannst du das vielleicht etwas weiter spezifizieren? Wie muss
        ich das Skript konkret erweitern?
        Ich bin erst am Beginn meiner "Linux Karriere" und dies ist
        mein erstes Skript, was ich per cron laufen lassen möchte.

        Grüße,
        Sebastian

        Hi Sebastian,

        bist du dir auch sicher, dass dein crontab-Eintrag richtig ist (dein 6. Feld ist roor??? - siehe Auszug aus 'man crontab' unten)? Soll das Skript als root laufen (ggf. besser mit sudo arbeiten)?

        Du könntest zuallererst mal versuchen, dass Script mit 'ksh -x' zu starten, um zu sehen was funktioniert und welche Stellen als fehlerhaft angemeckert werden - also z.B. mit

        ksh -x -c /backup/backupskript/backup.sh >Pfad_zur_Logdatei 2>&1
        


        Wahrscheinlich steht dann im Log, dass einige der angesprochenen Programme (cp, chown, chmod?) nicht gefunden werden. Dann solltest du in deinem Skript zunaechst die PATH-Variable so setzen, dass diese Programme gefunden werden können (also mit export PATH=$PATH:<Directory, in dem die zusaetzlich benoetigten Prg liegen>).

        Wenn du nicht weiterkommst, poste mal die Logdatei-Ausgabe vom ksh -x.


        gruss
        bernhard

        Auszug 'man crontab' (Solaris)
        A crontab file consists of lines of  six  fields  each.  The
        fields  are  separated by spaces or tabs. The first five are
        integer patterns that specify the following:
        minute (0-59),
        hour (0-23),
        day of the month (1-31),
        month of the year (1-12),
        day of the week (0-6 with 0=Sunday).
        The sixth field of a line in a crontab file is a string that
        is  executed  by the shell at the specified times. A percent
        character in this field (unless escaped by \) is  translated
        to a NEWLINE character.
        

        • Antwort von nach einem Tag 0 hilfreich
          Re^4: Cronjob startet nicht

          Hallo,

          ich wollte mir gerade das Skript nochmal zu gemüte führen, und siehe da, der Server hat letzte Nacht wie gewünscht ein Backup gemacht - ohne am Skript etwas zu ändern.

          Wie das jetzt sein kann weiss ich nicht, davor habe ich es mehrfach probiert und es hat nicht funktioniert...

          Trotzdem danke für eure Tips.

          Grüße,
          Sebastian

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!