Cronjobs hauen nicht hin

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 17:59:08

Liebe Forengemeinde,

ich habe ein Problem mit den Cron jobs in Debian 10. Ich wollte einen job erstellen der ein BackupScript ausführt, in diesem Fall 17:45 täglich. Ich habe dazu crontab -e gestartet und dort unten den Job eingetragen, das sah dann so aus:

Code: Alles auswählen

Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
54 17 * * * /bin/sh /usr/local/bin/scripts/backup_script.sh
#

Leider passiert so überhaupt nichts, das script ist am angegeben Pfad und auch 777 gemoddet, bin am Verzweifeln. Hoffe jemand weiss BEscheid

lg und schönen Abend ncoh


Casi

chrbr
Beiträge: 550
Registriert: 29.10.2022 15:53:26

Re: Cronjobs hauen nicht hin

Beitrag von chrbr » 06.10.2023 18:51:33

Du kannst in der ersten Zeile dafür sorgen, dass das Skript mit sh gestartet wird. Dazu sieht die Zeile wie folgt aus.

Code: Alles auswählen

#!/bin/sh
...
Dann kannst du das /bin/sh in der Cronjob Datei einfach weglassen. Das wäre dann

Code: Alles auswählen

54 17 * * * /usr/local/bin/scripts/backup_script.sh
Dann kannst du die 777 wieder auf etwas passendes zurück setzten.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 18:59:42

Danke, habe ich aber drin im script, das ich das im cron eingefügt habe ist der Tatsache geschuldet dass es vorher nicht ging, kann ich also weglassen, aber geht trotzdem nicht. Er will die cron datei auch immer im tmp verzeichnis speichern, ob dass das Problem ist weiss ich nicht. Mein Script ist ganz simpel, schaut so aus:

#!/bin/bash

# Verzeichnis für die Tar-Datei
backup_dir="/home/BACKS"

# Verzeichnisse, die gesichert werden sollen
source_dirs=("/var/www" "/etc/apache2")

# Datum im Format JJJJMMTT
current_date=$(date +%Y%m%d)

# Name für das Tar-Archiv
tar_filename="Backup_$current_date.tar.gz"

# Tar-Befehl ausführen
tar -czvf "$backup_dir/$tar_filename" "${source_dirs[@]}"

# Ausgabe
echo "Die Sicherung wurde in $backup_dir/$tar_filename abgelegt."

# Nur die 5 neuesten Dateien behalten, andere löschen
cd "$backup_dir" || exit
ls -t | tail -n +6 | xargs -I {} rm {}

echo "Nur die 5 neuesten Backups wurden beibehalten."
lg

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Cronjobs hauen nicht hin

Beitrag von Livingston » 06.10.2023 19:13:01

Code: Alles auswählen

Backup_$current_date.tar.gz
Ich frage mich, ob die Variable richtig erkannt wird. Sicher wäre:

Code: Alles auswählen

Backup_${current_date}.tar.gz
Würde ich ohnehin für jede Variable empfehlen.

Dann fällt mir noch echo auf: Wo soll das hinschreiben, wenn keine Konsole offen ist? Ich würde das ersetzen durch logger und dann im log nachschauen. echo dürfte das script zwar nicht crashen, aber die Ausgabe verschwindet im Nichts.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 19:30:04

danke für die Tips, wie gesagt das Script wird manuel ohne Beanstandung ausgeführt, es muss am cron liegen, auch ein simples
12 18 * * 1 tar -zcf /var/backups/home.tgz /home/
funktioniert nicht, dieses sollte ja um 18:12 das Verzeichnis home packen, aber nichts passiert

lg

Benutzeravatar
whisper
Beiträge: 3193
Registriert: 23.09.2002 14:32:21
Lizenz eigener Beiträge: GNU Free Documentation License
Kontaktdaten:

Re: Cronjobs hauen nicht hin

Beitrag von whisper » 06.10.2023 19:34:11

Reden wir hier über die crontab für root, oder als User?
Wenn als User,: Ist /home/BACKS denn als user beschreibbar?

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 19:39:08

also ich möchte dass der job automatisch zu einer bestimmten Zeit ausgeführt wird, ich habe ihn zumindest als root angelegt, wahrscheinlich war das der Fehler?

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Cronjobs hauen nicht hin

Beitrag von Livingston » 06.10.2023 19:39:35

casu4711 hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 19:30:04
12 18 * * 1
Warum denn nur montags? Heute ist Freitag -> 5
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 19:45:22

jeden Tag, also sollte es wohl 12 18 * * * heissen?
Dann checke ich da noch mal

lg

Benutzeravatar
Livingston
Beiträge: 1454
Registriert: 04.02.2007 22:52:25
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: 127.0.0.1

Re: Cronjobs hauen nicht hin

Beitrag von Livingston » 06.10.2023 19:45:47

yes :mrgreen:

Übrigens steht noch die Frage von whisper im Raum, ob es um die globale crontab oder die private im Home-Verzeichnis geht.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams

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

Re: Cronjobs hauen nicht hin

Beitrag von mat6937 » 06.10.2023 19:56:10

Livingston hat geschrieben: ↑ zum Beitrag ↑
06.10.2023 19:45:47
..., ob es um die globale crontab oder die private im Home-Verzeichnis geht.
Die systemweite (globale) /etc/crontab ist es nicht, denn der TE schreibt in seinem 1. Beitrag:
Ich habe dazu crontab -e gestartet und dort unten den Job eingetragen
Die Frage ist, hat er als root oder als normaler user, "crontab -e" gestartet?

Code: Alles auswählen

whoami
crontab -l
date
?
Zuletzt geändert von mat6937 am 06.10.2023 19:58:47, insgesamt 2-mal geändert.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 19:57:06

so hab jetzt beide Jobs wie folgt:

55 18 * * * /bin/sh /usr/local/bin/scripts/backup_script.sh
55 18 * * * tar -zcf /var/backups/home.tgz /home/

Nichts wurde ausgeführt, Schade

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

Re: Cronjobs hauen nicht hin

Beitrag von tobo » 06.10.2023 20:12:52

casu4711 hat geschrieben:

Code: Alles auswählen

55 18 * * * /bin/sh /usr/local/bin/scripts/backup_script.sh
Das Skript musst du durch die Bash starten lassen, da die Dash keine Arrays kennt.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 22:32:12

sorry, hatte ich noch drinn, aber nu hab ichs wieder wie vorher, und nix geht, ich flipp noch aus

50 22 * * * /usr/local/bin/scripts/backup_script.sh
50 22 * * * tar -zcf /var/backups/home.tgz /home/



muss dies crontab datei nicht eigentlich in /etc/crontab sich wieder finden, ich mein nur der speichert immer in einen tmp Pfad, das versteh ich nicht

lg und schönen Abend noch
Zuletzt geändert von casu4711 am 06.10.2023 22:49:12, insgesamt 1-mal geändert.

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

Re: Cronjobs hauen nicht hin

Beitrag von tobo » 06.10.2023 22:46:27

Dass die 1. Zeile deiner Crontab keine Kommentarzeile ist ist ein copy&paste-Fehler? Die "55 18 * * *" stehen da jetzt nur symbolisch?
Mach mal minütlich draus (* * * * *) und setze mal in die erste Zeile nach #!/bin/bash ein `touch /home/<USER>/FILE; exit' (mit angepasstem <USER> fürs Home-Verzeichnis) und schaue, ob die Datei FILE danach dort existiert.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 23:02:22

Ja war nur symbolisch, hatte natürlich jetzt die aktuelle Zeit drin. Habe jetzt die crontab so (sogar mit abschliessender zeile):

Code: Alles auswählen

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').
#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
* * * * * /usr/local/bin/scripts/backup_script.sh
* * * * * tar -zcf /var/backups/home.tgz /home/
#

Das Script auch angepasst:

Code: Alles auswählen

#!/bin/bash
touch /home/root/File; exit
# Verzeichnis für die Tar-Datei
backup_dir="/home/BACKS/fileback"

# Verzeichnisse, die gesichert werden sollen
source_dirs=("/var/www" "/etc/apache2")

# Datum im Format JJJJMMTT
current_date=$(date +%Y%m%d)

# Name für das Tar-Archiv
tar_filename="Backup_$current_date.tar.gz"

# Tar-Befehl ausführen
tar -czvf "$backup_dir/$tar_filename" "${source_dirs[@]}"

# Ausgabe
echo "Die Sicherung wurde in $backup_dir/$tar_filename abgelegt."

# Nur die 5 neuesten Dateien behalten, andere löschen
cd "$backup_dir" || exit
ls -t | tail -n +6 | xargs -I {} rm {}

echo "Nur die 5 neuesten Backups wurden beibehalten."
Jetzt müsste ja minütlich was passieren, aber wieder nothing:( Darf ich das Zielverzeichnis nicht im home haben oder muss ich in der cron noch root hinter den ***** schreiben?

recht herzlichen Dank noch mal

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

Re: Cronjobs hauen nicht hin

Beitrag von tobo » 06.10.2023 23:08:26

Dann als Root, zeige die kopierten Ausgaben von:

Code: Alles auswählen

ls -l /usr/local/bin/scripts/backup_script.sh
ls -l /home/root/File
Die Crontab hast du als Root edititert und du hast ein Verzeichnis /home/root/ (anstatt nur /root/)?
Zuletzt geändert von tobo am 06.10.2023 23:12:55, insgesamt 1-mal geändert.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 23:12:14

Hier sind meine Ausgaben:
root@s19457989:~# ls -l /usr/local/bin/scripts/backup_script.sh
-rwxrwxrwx 1 root root 617 Oct 6 15:40 /usr/local/bin/scripts/backup_script.sh
root@s19457989:~# ^C
root@s19457989:~# ls -l /home/root/File
ls: cannot access '/home/root/File': No such file or directory
mein script liegt in /home/script ? ich habe kein verzeichnis home/root
Zuletzt geändert von casu4711 am 06.10.2023 23:14:59, insgesamt 1-mal geändert.

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

Re: Cronjobs hauen nicht hin

Beitrag von tobo » 06.10.2023 23:14:11

Ich habe darüber nochmal editiert! Was ist mit /home/root?
Was das Zielverzeichnis angeht, da ist /home bestimmt kein guter Ort. Aber die 2. Zeile kannst du eh erst mal aus der Crontab nehmen...
Zuletzt geändert von tobo am 06.10.2023 23:18:17, insgesamt 1-mal geändert.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 23:18:14

wie erwähnt ich habe kein Unterverzeichnis root, mein Homeverzeichnis sieht so aus

Code: Alles auswählen


/home
├── BACKS
│   ├── fileback
│   ├── sqlback
│   │   └── koha_bib_backup_20231006203031.sql
│   └── Vollbackup
├── crontab
├── etc
│   └── Neues Textdokument (2).txt
├── import
│   └── koha_bib_140923.sql
├── lost+found
└── script
    ├── back_komplett.sh
    ├── backup_script.sh
    ├── backup_script_time.sh
    └── mysqlSicherung_bib_koha.sh


root ist doch das übergeordnete Verzeichnis, zumindest meines bescheidenen Wissens

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

Re: Cronjobs hauen nicht hin

Beitrag von tobo » 06.10.2023 23:20:51

Wie willst du denn nach /home/root/FILE schreiben, wenn kein /home/root existiert? Suche dir einen Ort der existiert, trage den ein und schaue, ob es dann dort folgend eine Datei File gibt.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 23:22:58

ok da hatte ich mich schon gewundert, also in home ein File namens File erzeugen und das im script anpassen, richtig verstanden?
Hab jetzt in home FILE erzeugt

und die 2te zeile im script auf /home/FILE geändert, noch immer nix :(

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

Re: Cronjobs hauen nicht hin

Beitrag von tobo » 06.10.2023 23:31:32

Nein, jetzt mal langsam: Es geht jetzt darum herauszufinden, ob dein Cronjob überhaupt läuft (ziemlich sicher tut er das). Dazu legt der Cronjob (mittels touch DATEI) eine Datei an, das wäre dann der Beweis dafür. Der Cronjob wurde in die Root-Crontab geschrieben, läuft also auch im Root-Kontext. Das heißt, du darfst praktisch überall hinschreiben, nur muss das Verzeichnis halt existieren. mit /home/<USER>/FILE meinte ich also dein normales Benutzer-Heimatverzeichnis, welches ich in deinem Listing nicht bestimmen kann. Das ist vermutlich das Verzeichnis, was deinem normalen Benutzernamen entspricht. Alternativ kannst du aber auch jetzt unterhalt von #!/bin/bash in der Crontab z.B. /root/FILE oder /FILE oder /home/FILE für das touch angeben und dann halt dort überprüfen.

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 23:37:38

ok dann hab ich dich falsch verstanden,

dann darf ich die datei FILE nicht manuell erzeugen im /home, habe sie wieder gelöscht, und kommt aber kein neues FILE, für mich ein Beweis dass der job eher nicht läuft:( Das kann doch wohl nicht sein dass das so kompliziert ist in Debian einen job anzulegen

casu4711
Beiträge: 317
Registriert: 16.10.2011 19:05:11

Re: Cronjobs hauen nicht hin

Beitrag von casu4711 » 06.10.2023 23:44:22

Das ist ja interessant, mein script liegt in /home/scripts er greift aber anscheinend auf /usr/local/bin/scripts zu, dort noch mal zu gefügt und nun schreibt er das FILE, aber den Rest macht er wie gehabt nicht

na super jetzt funktioniert das script auchmanuel nicht mehr obwohl nur eine zeile eingefügt

Antworten