raspiBackup - Sichere Deine Raspberry regelmäßig im laufenden Betrieb

  • Hallo,

    leider ist das Verzeichnis syslog nicht Vorhanden.

    Das habe ich eingetragen:

    30 17 * * * root /usr/local/bin/raspiBackupWrapper.sh &>>/var/log/syslog/raspiBackupCron.log

    Da das Verzeichnis nicht vorhanden ist, habe ich die Zeile geändert in: (syslog entfernt)

    05 18 * * * root /usr/local/bin/raspiBackupWrapper.sh &>>/var/log/raspiBackupCron.log

    jetzt hat er die .log geschrieben, aber leer(0Bytes).

    Gruß Andreas

    2 Mal editiert, zuletzt von Hicki (12. Mai 2020 um 18:09)

  • raspiBackup - Sichere Deine Raspberry regelmäßig im laufenden Betrieb? Schau mal ob du hier fündig wirst!

  • Wg syslog - sorry - war mein Fehler.

    Ist merkwuerdig. Zeige doch mal den Namen und den Inhalt der Datei in der Du das definiert hast.

    Name der Datei:

    /etc/cron.d/raspiBackup

    der Inhalt:

    Code
    # Crontab entry for raspiBackup.sh
    #
    # (C) 2017-2019 framp at linux-tips-and-tricks dot de
    #
    # Create a backup once a week on Sunday morning at 5 am (default)
    #
    #46 12 * * * root /usr/local/bin/raspiBackup.sh
    44 18 * * * root /usr/local/bin/raspiBackupWrapper.sh &>>/var/log/raspiBackupCron.log
    • Offizieller Beitrag

    für manuell starte ich so und läuft ohne Probleme:


    sudo bash /usr/local/bin/raspiBackupWrapper.sh

    Ist die Datei raspiBackupWrapper.sh ausführbar gemacht worden?

    Ansonsten ein Versuch mit:

    Code
    44 18 * * * root /bin/bash /usr/local/bin/raspiBackupWrapper.sh &>>/var/log/raspiBackupCron.log


    //Edit: framp Die Crondatei ist doch von Dir... Wie wäre es wenn Du die zu verwendende Shell als Variable darin vorgibst?

    Code
     SHELL=/bin/bash
    • Offizieller Beitrag

    Noch etwas zum Thema:

    Die Verwendung von &> leitet sowohl stdout als auch stderr in die angegebene Datei um. Das ist hilfreich u.a. in Bash-Skripten, in denen lediglich der Rückgabewert von Befehlen interessiert, nicht aber der Ausgabetext. Diese Funktionalität ist nicht verfügbar in der sh.

    Die Crontabs werden per default mit sh ausgeführt, deshalb funkioniert die Umleitung oben vermutlich nicht, trotz das die Datei erstellt wurde.

  • Jetzt hat es funktioniert, aber die /var/log/raspiBackupCron.log hat immer noch 0 Bytes.

    es gibt aber nun im Speicherordner die Log-Datei. Das Backup ist zwar noch nicht fertig, aber ich zeig schon mal den bisherigen Inhalt.

  • so, hier noch die fertige raspiBackup.msg

  • hier die Ausgabe von:

    ls -la $(which raspiBackupWrapper.sh)


  • Danke. Aber... das ist nicht was ich erwartet haben :conf:

    Was gibt denn

    Code
    ls -la /usr/local/bin/raspiBackupWrapper.sh

    Ausgabe:

    Code
    pi@raspberrypi:~ $ ls -la /usr/local/bin/raspiBackupWrapper.sh
    -rw-r--r-- 1 root root 6642 Mai 11 17:12 /usr/local/bin/raspiBackupWrapper.sh
    pi@raspberrypi:~ $
  • Ok. Das passt. Also ist raspiBackupWrapper.sh wirklich wie hyle vermutete nicht ausfuehrbar und wird durch /bin/bash vorweg ausgefuehrt. Ich muss gestehen dass ich immer davon ausgehe dass ein Script ausfuehrbar gemacht wurde bevor es benutzt wird. Der raspiBackupInstaller macht raspiBackup.sh ausfuehrbar und das wird standardmaessig in der raspiBackup crontab aufgerufen. Dass jemand dort ein Script eintraegt welches nicht ausfuehrbar ist habe ich nicht erwartet :no_sad:

    Hicki Fuer die Zukunft: Scripts werden i.d.R. nicht mit bash aufgerufen sondern direkt mit ihrem Namen. Damit das funktioniert muessen sie ausfuehrbar gemacht werden. In Deinem Falle geht das mit

    Code
    chmod +x /usr/local/bin/raspiBackupWrapper.sh

    :)

    Nun frage ich mich wie ich solch ein Problem zukuentig verhindern kann. Es ist Standard ein Script executable zu setzen. Ich koennte /bin/bash in der raspiBackup Crontab setzen. Das ist aber ziemlich noobig :denker: Ich werde es so lassen wie es ist.

    hyle

    /bin/bash in die Crontab zu schreiben ist nicht notwendig da raspiBackup #!/bin/bash in der ersten Zeile stehen hat. Dass aber keinerlei Meldung wie 'Cannot execute raspiBackupWrappe.sh' im Log auftaucht finde ich schon sehr crude :-/

    Hicki

    Wieso bist Du auf die Idee gekommen das Wrapperscript mit vorangestelltem bash aufzurufen? Das ist absolut unueblich.

  • chmod +x /usr/local/raspiBackupWrapper.sh

    muss es nicht so heißen:

    Code
    chmod +x /usr/local/bin/raspiBackupWrapper.sh


    Hallo framp und Hyle,

    vielen Dank für Eure Hilfen.

    Wenn ich die Datei ausführbar gemacht habe, kann ich die Datei wieder in der alten Version schreiben?

    Code
    44 18 * * * root /usr/local/bin/raspiBackupWrapper.sh

    Gruß Andreas

  • Jupp, es fehlt ein /bin. Ich habe es eben oben editiert. Ausserdem habe ich den Oneliner um raspiBackup zu installieren von

    Code
    curl -sSLO https://www.linux-tips-and-tricks.de/raspiBackupInstallUI.sh && sudo bash ./raspiBackupInstallUI.sh

    in

    Code
    curl -sSLO https://www.linux-tips-and-tricks.de/raspiBackupInstallUI.sh && chmod +x ./raspiBackupInstallUI.sh && sudo ./raspiBackupInstallUI.sh

    geandert da ich denke dass Du daher dachtest man muesste ein bash voranschreiben. Liege ich da richtig?

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!