Shell Script schreibt kein Log, wenn über Cronjob gestartet

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.
Das Script läuft, wenn du interaktiv angemeldet bist und per crond nicht?
Wenn ja, ruf interaktiv "echo $PATH" auf und nimm genau diesen Pfad 1:1 mit "PATH=..." gefolgt von "export PATH" in das Script am Anfang auf.
 
Es wäre evtl. für andere hilfreich, wenn du die Lösung, zumindest den Anfang des Scripts, hier posten würdest.
 
Achso, ja, klar. Sorry. :)

Scripts:
Rich (BBCode):
# /etc/duply/backup_extern_full.sh
# full backup
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH
/opt/bin/duply backupextern purge-full --force > /volume1/homes/nas-admin/backup/logs/duply_backupextern_purgefull_$(date "+%Y-%m-%dT%H:%M:%SZ").log 2>&1
/opt/bin/duply backupextern full --allow-source-mismatch > /volume1/homes/nas-admin/backup/logs/duply_backupextern_full_$(date "+%Y-%m-%dT%H:%M:%SZ").log 2>&1

Rich (BBCode):
# /etc/duply/backup_extern_inc.sh
# incremental backup
PATH=/opt/bin:/opt/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/syno/sbin:/usr/syno/bin:/usr/local/sbin:/usr/local/bin
export PATH
/opt/bin/duply backupextern purge --force > /volume1/homes/nas-admin/backup/logs/duply_backupextern_purge_$(date "+%Y-%m-%dT%H:%M:%SZ").log 2>&1
/opt/bin/duply backupextern backup --allow-source-mismatch > /volume1/homes/nas-admin/backup/logs/duply_backupextern_inc_$(date "+%Y-%m-%dT%H:%M:%SZ").log 2>&1

Crontab:
Rich (BBCode):
#minute hour    mday    month   wday    who     command
0       2      *       *       *       root    /etc/duply/scripts/backup_extern_inc.sh
0       2       1       1,6     *       root    /etc/duply/scripts/backup_extern_full.sh
 
Danke.
Noch ein kleiner Tipp am Rande:
Ich würde die Ausgabeumlenkung in die Logs nicht innerhalb der Scripts unterbringen, sondern eher in der /etc/crontab. Das macht die Scripts wesentlich lesbarer, die crontab aber etwas komplizierter.
Aber egal, Hauptsache es funktioniert.
 
Zuletzt bearbeitet:
Danke.
Noch ein kleiner Tipp am Rande:
Ich würde die Ausgabeumlenkung in die Logs nicht innerhalb der Scripts unterbringen, sondern eher in der /etc/crontab. Das macht die Scripts wesentlich lesbarer, die crontab aber etwas komplizierter.
Aber egal, Hauptsache es funktioniert.

Das klingt jetzt interessant. Könnte man damit das Script ohne Logging aufrufen und das Logging wird nur von der Crontab aktiviert? Wie kann ich das in der crontab einfügen?
 
Du kannst auch in der crontab Einträge wie
Code:
#minute hour    mday    month   wday    who     command
0       2      *       *       *       root    /etc/duply/scripts/backup_extern_inc.sh >.../irgendwas.log 2>&1
setzen, musst aber aufpassen, dass bei Verwendung von 'date' zur Bildung des Log-Files wieder Pfad-Abhängigheiten existieren.
Oder du machst halt
Code:
#minute hour    mday    month   wday    who     command
0       2      *       *       *       root    /etc/duply/scripts/backup_extern_inc.sh >>/etc/duply/scripts/backup_extern_inc.log 2>&1
und hängst immer an (nicht probiert, sollte ab so oder so ähnlich funktionieren)
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat