Cronjob

Dieses Thema im Forum "Shell-Skripte" wurde erstellt von Freehawk, 12.02.2007.

  1. #1 Freehawk, 12.02.2007
    Freehawk

    Freehawk Jungspund

    Dabei seit:
    05.02.2004
    Beiträge:
    11
    Zustimmungen:
    0
    Ort:
    Wolfegg
    Hallo zusammen,

    ich habe irgendwie Probleme mein Backup-Script mittels cronjob zu starten.

    Ich habe schon einiges ausprobiert.

    Ich hab den Job unter /etc/crontab eingetragen und zwar so wie es hier im Forum schon öfters erklärt wurde.

    Ich habe den Job mit dem Befehl crontab probiert einzutragen.

    Der cron Deämon läuft auch das hab ich mit cron status getestet und den habe ich auch öfters neu gestartet.

    An was kann das noch liegen? Distri ist übrigens SUSE 10.0.

    Ich hoffe Ihr könnt mir weiterhelfen!

    DANKE

    Gruß
    Markus
     
  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. KRiusd

    KRiusd Jungspund

    Dabei seit:
    25.04.2005
    Beiträge:
    23
    Zustimmungen:
    0
    Hallo,

    kannst du einen Syntaxfehler ausschließen?
    Ansonsten poste doch bitte mal den Cronjob.

    Grüße KRiusd
     
  4. #3 Schlaubi_fi.de, 12.02.2007
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Hallo,

    wie auch schon hier öfters erwähnt Mail der cron bei einer Ausgabe,
    egal ob Stdout oder Stderr - also solltest Du vor allem mal die Mails
    des Users checken, dessen crontab Du editiert hast.
    Ein Blick in /var/log/messages hat auch so manchmal schon geholfen *g

    Ansonsten schließe ich mich meinem Vorredner an - bitte mal die Ausgabe
    von crontab -l posten!
     
  5. #4 Wolfgang, 13.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Wenn der Cronjob nicht ausgeführt wird, aber das gleiche Script in der Shell funktioniert, ist zu 99% der fehlende Pfad schuld.
    Ein Cronjob läuft nicht in der gleichen Umgebung wie in der Shell!
    Also entweder die angebotene Lösung des cron selbst nutzen, oder im Script den Pfad selbst definieren bzw. alle Programme mit vollem Pfad aufrufen.

    Gruß Wolfgang
     
  6. #5 Freehawk, 13.02.2007
    Freehawk

    Freehawk Jungspund

    Dabei seit:
    05.02.2004
    Beiträge:
    11
    Zustimmungen:
    0
    Ort:
    Wolfegg
    So Hallo,

    also hier mal mein Script. Das mit der Pfaden zu den Kommandos hab ich auch gelesen und da hat es geheißen ich muss oben die PATH Variable angeben. Das habe ich auch gemacht.

    Code:
    #!/bin/bash
    
    # geschrieben von Markus Rost
    # Version 0.5 - in Entwicklung
    
    # Dies ist ein automatisches Backup-Script
    # in der Datei die in $paradat angegeben wird
    # muss in der ersten Zeile der Ablageort der
    # tar-Archive angegeben werden. Die Pfade muessen
    # unbedingt mit / aufhoeren. In der zweite
    # Zeile die Anzahl der Sicherung die erhalten
    # bleiben sollen. In der dritten Zeile die eMail-
    # Addresse des Systemadministrators und darunter
    # die Pfade die gesichert werden sollen.
    # Unter $countdat wird die Datei fuer den internen
    # Counter abgelegt
    
    # Pfade setzten
    PATH=/sbin:/bin:/usr/bin:/usr/sbin:/usr/bin/X11:
    
    # Variablen Definition:
    
    # Ablageort und Name der Parameterdatei
    paradat=./parameter.txt
    
    # Ablageort und Name der Counterdatei
    countdat=/tmp/.count
    
    # Ablageort und Name temporaeen Datei 
    liste=/tmp/.liste
    error=/tmp/.error
    
    
    # Script-Code:
    
    # Ueberpruefen ob eine $paradat vorhanden ist wenn
    # nicht wird eine Mail abgesetzt und das Script beendet
    if [ ! -s $paradat ] ; then
      t1="Sie haben keine Parameterdatei angegeben."
      t2="Deshalb konnte das Script nicht ausgeführt werden."
      t3="Bitte geben Sie ein Parameterdatei an!"
      echo $t1 $t2 $t3 | mail -s "Ihr Backup Script" $mail
      exit 1
    fi
    
    # Ueberpruefen ob eine $countdat vorhanden ist
    # wenn nicht eine anlegen und 1 reinschreiben
    if [ ! -r $countdat ] ; then
      echo 1 > $countdat
    fi
    
    # einlesen des Inhalts von $countdat in $count
    count=`more $countdat`
    
    # einlesen des Inhalts von $paradat
    # Inhalt wird in $i ausgeben
    n=0
    for i in $(cut -d: -f1 $paradat); do
      n=$(( $n + 1 ))
    
    # Auslesen der ersten Zeile und verschieben in $ziel
      if [ $n == 1 ] ; then
        ziel=$i
    
    # Ueberpruefen ob Zielverzeichnis vorhanden ist
    # wenn nicht wird das Verzeichnis angelegt
        if [ ! -d $ziel ] ; then
          mkdir $ziel
        fi
      fi
    
    # Auslesen der zweiten Zeile und verschieben in $anzahl
      if [ $n == 2 ] ; then
        anzahl=$i
      fi
    
    # Auslesen der dritten Zeile und verschieben in $mail
      if [ $n == 3 ] ; then
        mail=$i
      fi
    
    # Auslesen der sonstigen Zeilen und verschieben in $para
      if [ $n -ge 4 ] ; then
        para=$i
        cd $ziel  
    
    # Ueberpruefen ob jetztige Verzeichnis vorhanden ist
    # (Nummer aus $countdat)
        if [ ! -d $count ] ; then
          mkdir $count
        fi
    
    # tar-Befehl zum Packen der Dateien absetzten
    # Dateinamen ist Schleifenzaehler + .tar.gz
    # Fehler werden in ein Datei geschrieben
        cd $para
        tar -czf $ziel$count/$n.tgz * 2>>$error 
      fi
    
    done
    
    # Zahl in $count + +1 und in $countdat ablegen
    count=$(( $count + 1 ))
    echo $count > $countdat
    
    # Verzeichnis $ziel auslesen und in $liste schreiben
    cd $ziel
    ls > $liste
    
    # Errechnen welche Ordner zu alt sind
      loesche=$(( $count - $anzahl ))
    
    # zeilenweises Einlesen der Datei $liste
    n=0
    for i in $(cut -d: -f1 $liste); do
      n=$(( $n + 1 ))
    
    # Vergleichen welche Ordner geloescht werden sollen
    # und diese loeschen
      if [ $i -lt $loesche ] ; then
        rm -r $i
      fi
    
    done
    
    # Loeschen der Hilfsdatei $liste
    rm $liste
    
    # Beenden des Scriptes
    # und absetzen einer Erfolgsmail oder einer Mail
    # mit Fehlermeldungen vom TAR-Befehl
    if [ ! -s $error ] ; then
      t1="Backup Script erfolgreich ausgeführt!"
      t2=`date`
      echo $t1 $t2 | mail -s "Ihr Backup Script" $mail
      exit 0
    else
      t1=`more $error`
      echo $t1 | mail -s "Ihr Backup Script" $mail
      rm $error
      exit 1
    fi
    
    und in der CRONTAB habe ich das so angegeben:

    Code:
    1 0 * * * /root/scripte/backup/backup
    Ich meine mal das müsste so passen, aber wissen tu ich das nicht.

    Ich bin mal gespannt was ich falsch gemacht habe.

    Gruß
    Markus
     
  7. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Es fehlen immer noch die Fehlermeldungen.
     
  8. #7 Schlaubi_fi.de, 13.02.2007
    Schlaubi_fi.de

    Schlaubi_fi.de Mac OS X User

    Dabei seit:
    22.12.2004
    Beiträge:
    304
    Zustimmungen:
    0
    Genau...und die gibts entweder per "mail" oder "less /var/log/messages"...
     
  9. #8 Freehawk, 14.02.2007
    Freehawk

    Freehawk Jungspund

    Dabei seit:
    05.02.2004
    Beiträge:
    11
    Zustimmungen:
    0
    Ort:
    Wolfegg
    Das ist ja das seltsame ich kann in den Mails und in den messages nichts finden.

    Gruß
    Markus
     
  10. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
    Und in /var/log/syslog?
     
  11. #10 Wolfgang, 14.02.2007
    Wolfgang

    Wolfgang Foren Gott

    Dabei seit:
    24.04.2005
    Beiträge:
    3.978
    Zustimmungen:
    0
    Ort:
    Erfurt
    Auf was ist denn mail in der Crontab gesetzt?

    Desweiteren ist das keine Option die eine Mail erzeugt:
    $mail ist zu diesem Zeitpunkt undefiniert.
    Also geht an dieser Stelle auch keine Mail vom Skript aus weg.
    Es stirbt leise...

    Was passiert denn in der Shell, wenn du das selber startest?

    Gruß Wolfgang
     
  12. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  13. #11 Freehawk, 14.02.2007
    Freehawk

    Freehawk Jungspund

    Dabei seit:
    05.02.2004
    Beiträge:
    11
    Zustimmungen:
    0
    Ort:
    Wolfegg
    Hallo Wolfgang,

    wenn ich es Shell aufrufe wird keine mail abgesetzt stimmt. Aber die Parameterdatei ist vorhanden.

    Also müsste das Script ja weiterlaufen.

    Wenn ich nur in der Shell das Script aufrufe, dann funktioniert alles.

    Es wird nämlich auch kein Prozess erzeugt zu dem Zeitpunkt wo das Script laufen sollte.

    Gruß
    Markus
     
  14. Xanti

    Xanti Mouse Organist

    Dabei seit:
    05.09.2004
    Beiträge:
    1.855
    Zustimmungen:
    0
Thema:

Cronjob

Die Seite wird geladen...

Cronjob - Ähnliche Themen

  1. Bräuchte Hilfe bei Backupscript mittels Bash und cronjob

    Bräuchte Hilfe bei Backupscript mittels Bash und cronjob: Es soll für bestimmte Ordner Archivierung aller Dateien(Logfiles), die älter als 30 Tage sind machen. Am besten einmal täglich nachts irgendwann....
  2. Cronjob

    Cronjob: Hallo Bin mir nicht sicher ob dass so Möglich ist... Ich möchte dass ein Job von 02:00 Uhr Nachts bis 03:00 Uhr Nachts NICHT läuft. *...
  3. Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen

    Cronjob um Dateien und Ordner die älter als 7 Tage sind löschen: Hallo, ich habe auf einem Server einen HTTP File-Explorer installiert (AjaXplorer), auf dem User Dateien hochladen und verschicken können....
  4. Cronjob mit Root-Rechten

    Cronjob mit Root-Rechten: Hallo zusammen. Ich habe ein Backup-Skript (Shell-Skript) erstellt, das alle relevanten Daten via ssh auf einen Server lädt. Das Skript wird...
  5. script wird von cronjob nicht korrekt ausgeführt - Centos 5

    script wird von cronjob nicht korrekt ausgeführt - Centos 5: Guten Morgen, und hallo ins Forum. Ich habe ein Problem mit meinem Sicherungsserver: ich möchte zur täglichen inkrimentellen Sicherung...