Shell Script schreibt kein Log, wenn über Cronjob gestartet

Status
Für weitere Antworten geschlossen.

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
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.
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
Es wäre evtl. für andere hilfreich, wenn du die Lösung, zumindest den Anfang des Scripts, hier posten würdest.
 

DerMetty

Benutzer
Mitglied seit
12. Sep 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
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
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
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:

DerMetty

Benutzer
Mitglied seit
12. Sep 2015
Beiträge
13
Punkte für Reaktionen
0
Punkte
0
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?
 

Benares

Benutzer
Sehr erfahren
Mitglied seit
27. Sep 2008
Beiträge
14.064
Punkte für Reaktionen
3.882
Punkte
488
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