crontab will nicht starten

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
pcace
Beiträge: 231
Registriert: 28.08.2011 01:08:55

crontab will nicht starten

Beitrag von pcace » 27.05.2023 08:33:23

Hi,

ich möchte hier ein shell script per cronjob ausführen. das ist der crontab eintrag:

@daily /bin/bash /opt/scripts/hugobackup.sh


das ist das Script:

Code: Alles auswählen

#!/bin/bash

# FTP Share Informationen
export SMB_SERVER="192.168.1.1"
export SMB_USER="user"
export SMB_PASS="pass"
export SMB_PATH="/Hugo/"

# Mountpunkt für SMB Share
export SMB_MOUNT="/mnt/hugo_backup"

# Borg Backup Repository Informationen
export REPO_USER="user"
export REPO_HOST="storage.de"
export REPO_PORT="23"
export REPO_PATH="/hugo_backup"
export BORG_PASSPHRASE="secure"

# unmount before trying to mount
umount $SMB_MOUNT

# Mounten des FTP Shares
# curlftpfs -o user=$FTP_USER:$FTP_PASS $FTP_SERVER $SMB_MOUNT
mount -t cifs //192.168.1.1/Hugo $SMB_MOUNT -o user=$SMB_USER,pass=$SMB_PASS,dom=domain,noserverino

REPO_NAME=$(date +"%m_%d_%Y_%M_%S")

# Backup mit Borg erstellen
borg create --verbose --progress --stats --list \
    --files-cache=ctime,size \
    ssh://$REPO_USER@$REPO_HOST:$REPO_PORT/.$REPO_PATH::$REPO_NAME \
    $SMB_MOUNT/hugoData/Hugo/

# Entfernen von Backups, die älter als 7 Tage sind
borg prune --list ssh://$REPO_USER@$REPO_HOST:$REPO_PORT/.$REPO_PATH \
    --keep-daily=7 \
    --keep-weekly=4 \
    --keep-monthly=12 \
    --keep-yearly=-1

# Umount des FTP Shares
umount $SMB_MOUNT

leider wird das script nicht ausgeführt. Warum? Ich bekomme keine fehlermeldung whatsoever. Wenn ich das direkt ausführe funktionierts.

Wie bekomme ich den fehler eingegrenzt? Oder sieht vllt jemand direkt was das Problem ist?

Gruß und Dank!

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: crontab will nicht starten

Beitrag von Meillo » 27.05.2023 08:49:13

Was genau heisst, dass es nicht ausgefuehrt wird? Erkennst du das daran, dass der Borg-Befehl nicht gelaufen ist, oder pruefst du tatsaechlich, dass das Script nicht aufgerufen wird?

Fuege mal z.B. sowas am Scriptbeginn ein, dann siehst du, ob es aufgerufen wird:

Code: Alles auswählen

date >/tmp/test
Du kannst auch `set -x' aktivieren, dann solltest du den Aufruf aller Befehle per Email bekommen.

Verwende statt `@daily' z.B. `@hourly', dann musst du nicht so lange warten.
Use ed once in a while!

pcace
Beiträge: 231
Registriert: 28.08.2011 01:08:55

Re: crontab will nicht starten

Beitrag von pcace » 27.05.2023 08:57:50

Hi, hab den crontab mal 8:55 ausführen lassen (also grad eben) mit "date >/tmp/test"
und siehe da es existiert.. :/

also scheint das Problem irgendwo im script zu liegen.
wie meinst du das mit dem set-x? ich habe keinen mail dienst /client installiert und konfiguriert:

Code: Alles auswählen

mail
-bash: mail: command not found
Gruß

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: crontab will nicht starten

Beitrag von mat6937 » 27.05.2023 08:58:05

pcace hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 08:33:23
Warum? ... Wenn ich das direkt ausführe funktionierts.
Meistens liegt es an der PATH-Variable. Versuch mal mit absoluten Pfaden, im Script.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: crontab will nicht starten

Beitrag von Meillo » 27.05.2023 09:40:48

pcace hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 08:57:50
Hi, hab den crontab mal 8:55 ausführen lassen (also grad eben) mit "date >/tmp/test"
und siehe da es existiert.. :/
Also wird das Script ausgefuehrt. Das ist ein gutes Zeichen. :-)

pcace hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 08:57:50
ich habe keinen mail dienst /client installiert und konfiguriert:
Ein lokaler MTA (der nur lokal Mails zustellt) wuerde schon Sinn machen, dann bekommst du auch ensprechende Fehlermeldungen:

Code: Alles auswählen

From:    root (Cron Daemon)
To:      meillo
Subject: Cron <meillo@quagga> /bin/sh /tmp/a

/tmp/a: 3: /tmp/a: foobar: not found
Vielleicht reicht es auch schon wenn du `mailx-heirloom' installierst, um die Mails zugestellt zu bekommen und lesen zu koennen. Oder schaue mal, ob es die Datei /var/mail/pcace gibt.


Die Loesung des konkreten Problems liegt vermutlich, wie mat6937 schreibt, in einer absoluten Pfadangabe fuer `borg'.
Use ed once in a while!

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: crontab will nicht starten

Beitrag von tobo » 27.05.2023 09:46:53

borg liegt wohl unter /usr/bin. Die "%" im date (anstatt \%) werden aber so ganz sicher nicht funktionieren.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: crontab will nicht starten

Beitrag von Meillo » 27.05.2023 10:09:48

tobo hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 09:46:53
Die "%" im date (anstatt \%) werden aber so ganz sicher nicht funktionieren.
Welche meinst du? Ich sehe nur welche im Script, wo es kein Problem ist, und keine im Crontab-Eintrag, wo sie speziell interpretiert werden wuerden. Aber vielleicht uebersehe ich auch etwas.
Use ed once in a while!

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: crontab will nicht starten

Beitrag von JTH » 27.05.2023 11:11:27

Auch im Skript müssen sie, meine ich, speziell behandelt – escaped – werden, wie tobo schreibt:
man crontab.5 hat geschrieben: The ``sixth'' field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the crontab file. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.
Manchmal bekannt als Just (another) Terminal Hacker.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: crontab will nicht starten

Beitrag von Meillo » 27.05.2023 11:19:53

JTH hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 11:11:27
Auch im Skript müssen sie, meine ich, speziell behandelt – escaped – werden, wie tobo schreibt:
man crontab.5 hat geschrieben: The ``sixth'' field (the rest of the line) specifies the command to be run. The entire command portion of the line, up to a newline or % character, will be executed by /bin/sh or by the shell specified in the SHELL variable of the crontab file. Percent-signs (%) in the command, unless escaped with backslash (\), will be changed into newline characters, and all data after the first % will be sent to the command as standard input.
Im Script sicher nicht. Das wuerde doch keinen Sinn machen. Dann muesste man ja jedes Script ueberarbeiten, wenn man es per Cron einbinden will. :-D

Das Prozentzeichen ist nur im Befehl in der Crontab speziell. Der Hintergrund dieser Eigenart ist, dass man damit `mail' praktisch nutzen kann, wie in den Beispielen in der Manpage zu sehen:

Code: Alles auswählen

# run at 10 pm on weekdays, annoy Joe
0 22 * * 1-5    mail -s "It's 10pm" joe%Joe,%%Where are your kids?%
Use ed once in a while!

JTH
Moderator
Beiträge: 3023
Registriert: 13.08.2008 17:01:41
Wohnort: Berlin

Re: crontab will nicht starten

Beitrag von JTH » 27.05.2023 13:09:04

Meillo hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 11:19:53
Im Script sicher nicht. Das wuerde doch keinen Sinn machen. Dann muesste man ja jedes Script ueberarbeiten, wenn man es per Cron einbinden will. :-D
Öhm, völlig richtig. Hätte wohl genauer lesen sollen :oops: 8)
Manchmal bekannt als Just (another) Terminal Hacker.

tobo
Beiträge: 1993
Registriert: 10.12.2008 10:51:41

Re: crontab will nicht starten

Beitrag von tobo » 27.05.2023 15:00:17

Ihr habt da schon recht - da hat voll die Fehlerassoziation cron-date-% bei mir durchgeschlagen...

pcace
Beiträge: 231
Registriert: 28.08.2011 01:08:55

Re: crontab will nicht starten

Beitrag von pcace » 27.05.2023 19:53:56

Leider immernoch nicth so recht. ich hab jetzt mal die Pfade angepasst:

Code: Alles auswählen

which borg
/usr/local/bin/borg
und dann das ins script gepackt. keine besserung. ich versuch mal einen lokalen mta zu installieren. eigentlich wollte ich das system so schlank wie möglich halten. Aber gut... so ists jetzt eben

mat6937
Beiträge: 2953
Registriert: 09.12.2014 10:44:00

Re: crontab will nicht starten

Beitrag von mat6937 » 27.05.2023 22:54:18

pcace hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 19:53:56
Leider immernoch nicth so recht. ich hab jetzt mal die Pfade angepasst:

Code: Alles auswählen

which borg
/usr/local/bin/borg
und dann das ins script gepackt. keine besserung.
"Die" Pfade oder _alle_ Pfade angepasst/benutzt? Weißt Du was mit _absolute_ Pfade benutzen, gemeint ist?

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: crontab will nicht starten

Beitrag von Meillo » 28.05.2023 09:41:28

pcace hat geschrieben: ↑ zum Beitrag ↑
27.05.2023 19:53:56
keine besserung. ich versuch mal einen lokalen mta zu installieren. eigentlich wollte ich das system so schlank wie möglich halten. Aber gut... so ists jetzt eben
So wie ich die Manpage crontab(5) verstehe, reicht es auch aus, wenn du ein /bin/mail hast, also z.B. indem du Debianmailx-heirloom installierst. Dann brauchst du keinen ganzen MTA.


Falls du nur wegen absoluten Pfaden testen willst, dann kannst du das Script auch einfach manuell als User mit einem minimalen PATH aufrufen, z.B. so:

Code: Alles auswählen

PATH=/usr/bin:/bin dein-script.sh
Oder noch extremer so:

Code: Alles auswählen

PATH= dein-script.sh
Use ed once in a while!

Antworten