Anzeige:
Ergebnis 1 bis 8 von 8

Thema: Fehler im Script per Crontab

  1. #1
    Registrierter Benutzer
    Registriert seit
    Apr 2017
    Beiträge
    9

    Fehler im Script per Crontab

    Hallo liebe Gemeinde,

    ich habe ein Problem in diesem Skript:
    Wenn ich es direkt mit bash script.sh starte, funktioniert das Skript.
    Wenn es über den Crontab */3 * * * * bash /script.sh gestartet wird, wird nur ein leerer Ordner angelegt.
    Sieht jemand den Fehler?
    Es muss was mit dem mv zu tun haben, aber da alles funktioniert bei einem direkten Start, fällt mir nichts mehr ein :-(

    Code:
    #!/bin/bash
    
    # BACKUP ERSTELLEN
    koha-dump kohadb
    sleep 5s
    echo "Backup vom " $(date +%Y-%m-%d-%H-%M-%S) " wurde angelegt"
    
    
    # BACKUPS IN ORDNER VERSCHIEBEN
    DESTINATION=/root/neu-dump
    DATE=$(date +%Y-%m-%d-%H-%M-%S)
    
    if [ -d $DESTINATION ]; then
    mkdir -p $DESTINATION
    fi
    
    mkdir -p $DESTINATION/$DATE
    ls -la  /var/spool/koha/kohadb/
    /bin/mv /var/spool/koha/kohadb/* $DESTINATION/$DATE/
    ls -la  /var/spool/koha/kohadb/
    sleep 3s
    
    # ORDNER LÖSCHEN
    #find /root/neu-dump/ -type d -mmin +30 -exec rm -rf {} \;
    VG, TribbleX

  2. #2
    Universaldilletant Avatar von fork
    Registriert seit
    Dec 2001
    Ort
    Frankfurt/Main
    Beiträge
    1.085
    Trage Dein Script so in die crontab so ein, dass Du die Fehler siehst.

    Code:
    */3 * * * * bash /script.sh 2>/tmp/script-fehler.txt
    Im Übrigen:

    • Dein Script liegt wirklich in / ? Das wäre kein guter Stil.
    • Du willst Dein Backup wirklich alle 3 Minuten ausführen?
    Geändert von fork (21.11.17 um 15:45 Uhr)

  3. #3
    Fieses Frettchen Avatar von DrunkenFreak
    Registriert seit
    Dec 2003
    Beiträge
    3.172
    Eine Möglichkeit ist, dass nach 3 Minuten noch keine Dateien in /var/spool/koha/kohadb vorhanden sind, die verschoben werden könnten.

    Ansonsten die üblichen Verdächtigen wie fehlende Umgebung ausschließen. bash muss nicht unbedingt in einem Cronjob gefunden werden. Einfach ganz weg lassen und dem Skript Ausführrechte geben. Eine Shebang hast du ja.

  4. #4
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    20.565
    ich tipp ja eher drauf, daß
    Code:
    koha-dump kohadb
    nicht in $PATH von crond liegt...
    Ich bin root - ich darf das.

  5. #5
    Registrierter Benutzer
    Registriert seit
    Apr 2017
    Beiträge
    9
    Hallo, marce hatte recht. Der Code muss so sein:
    /usr/sbin/koha-dump kohadb
    Der verliert wohl über den Crontab irgendwo den Pfad.

    Das mit den 3 Minuten und der Ort der Dateien war ja nur zum Testen.

    Vielen Dank für die Tipps

  6. #6
    Registrierter Benutzer
    Registriert seit
    Dec 2003
    Ort
    Dettenhausen
    Beiträge
    20.565
    Zitat Zitat von TribbleX Beitrag anzeigen
    Der verliert wohl über den Crontab irgendwo den Pfad.
    Nö.

    $PATH ist eine Umgebungsvariable - und deren Wert ändert sich eben je nach Umgebung - sprich welcher Benutzer ist angemeldet, Login-Shell oder nicht, was vererbt oder nicht, ...

    ... und die Umgebung im Cron-Kontext ist eben eine andere als im Login-Kontext.

    Lass mal env oder set ausgeben im Cronjob und vergleich es mit dem, was in einer Login-Konsole heraus kommt...
    Ich bin root - ich darf das.

  7. #7
    Registrierter Benutzer Avatar von Huhn Hur Tu
    Registriert seit
    Nov 2003
    Ort
    Karlsruhe
    Beiträge
    1.962
    Guter Stil ist, verwendete Binaries oder Skripte per voll qualifiziertem Pfad anzugeben.
    Damit muss man sich nicht auf Pfad Variablen verlassen.
    Zwischen anonym sein wollen und seine Daten nicht verkaufen wollen, liegen zwei Welten. Wenn man sich einen kostenpflichtigen Dienst sucht, dann meist, weil man für diese Dienstleistung zahlt und nicht selbst das Produkt sein will.


  8. #8
    Registrierter Benutzer
    Registriert seit
    Apr 2017
    Beiträge
    9
    Zitat Zitat von marce Beitrag anzeigen
    Lass mal env oder set ausgeben im Cronjob und vergleich es mit dem, was in einer Login-Konsole heraus kommt...
    Das kann ich im Moment noch nicht umsetzen.
    Soweit bin ich noch nicht.
    Bin noch ein Padawan ...

Ähnliche Themen

  1. shell script crontab problem
    Von ZyRa im Forum Linux Allgemein
    Antworten: 2
    Letzter Beitrag: 07.07.08, 11:05
  2. script über crontab nur bei neustart..
    Von Faber38 im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 31.01.08, 05:56
  3. Crontab per bash-Script füllen?
    Von der_dicke_alex im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 07.11.07, 10:51
  4. Script funzt so, aber in crontab nicht
    Von Russel-Athletic im Forum Linux Allgemein
    Antworten: 6
    Letzter Beitrag: 26.04.04, 21:10
  5. den crontab-sheduler per script configurieren
    Von echo im Forum System installieren und konfigurieren
    Antworten: 3
    Letzter Beitrag: 25.03.03, 13:26

Lesezeichen

Berechtigungen

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