[Gelöst] Cronjob geht nicht

Probleme mit Samba, NFS, FTP und Co.
Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

[Gelöst] Cronjob geht nicht

Beitrag von desputin » 15.08.2020 21:02:05

Hallo Ihr,
wenn ich mit

Code: Alles auswählen

mcedit /etc/crontab
einen cronjob einrichte, funktioniert das anscheinend unter Debian nicht. Warum?
In der Datei steht nämlich so etwas drin:

Code: Alles auswählen

*/7 * * * * /home/user/script1.sh
Wenn ich aber crontab -e eingebe, steht da was anderes! Warum?!

Edit: Aktuellste Lösung, siehe auch hier:
viewtopic.php?t=178332&start=15#p1288474
Zuletzt geändert von desputin am 27.11.2021 22:02:24, insgesamt 1-mal geändert.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

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

Re: Cronjob geht nicht

Beitrag von whisper » 15.08.2020 21:10:20

Code: Alles auswählen

apt search mcedit
Sortierung... Fertig
Volltextsuche... Fertig
Da ich nicht weiß was mcedit ist, kann ich nicht helfen

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

Re: Cronjob geht nicht

Beitrag von tobo » 15.08.2020 21:24:07

desputin hat geschrieben: ↑ zum Beitrag ↑
15.08.2020 21:02:05
Hallo Ihr,
wenn ich mit

Code: Alles auswählen

mcedit /etc/crontab
einen cronjob einrichte, funktioniert das anscheinend unter Debian nicht. Warum?
Das sollte eigentlich mit jedem Editor funktionieren!?
In der Datei steht nämlich so etwas drin:

Code: Alles auswählen

*/7 * * * * /home/user/script1.sh
Wenn ich aber crontab -e eingebe, steht da was anderes! Warum?!
Weil crontab -e die userspezifische und /etc/crontab die systemspezifische Crontab ist.

Benutzeravatar
MSfree
Beiträge: 10686
Registriert: 25.09.2007 19:59:30

Re: Cronjob geht nicht

Beitrag von MSfree » 15.08.2020 22:14:19

desputin hat geschrieben: ↑ zum Beitrag ↑
15.08.2020 21:02:05
wenn ich mit

Code: Alles auswählen

mcedit /etc/crontab
einen cronjob einrichte, funktioniert das anscheinend unter Debian nicht. Warum?
Weil man mit einem Editor nunmal keinen cron-Job einrichten kann. Man kann nur eine Datei editieren, die man cron "zum Fraß" vorwerfen kann, damit der später von cron ausgeführt wird.

Ich verfahre da immer so:

Code: Alles auswählen

crontab -l > jobs
vi jobs
crontab jobs
Also erstmal die bestehenden Jobs in eine Datei schreiben (hier jobs), Dann die Datei editieren, von mir aus auch mit mcedit, und dann die editierte Datei cron wieder zuführen.
whisper hat geschrieben: ↑ zum Beitrag ↑
15.08.2020 21:10:20

Code: Alles auswählen

apt search mcedit...

Code: Alles auswählen

apt-file search mcedit
manpages-pl: /usr/share/man/pl/man1/mcedit.1.gz
mc: /etc/mc/mcedit.menu
mc: /usr/bin/mcedit
mc: /usr/share/applications/mcedit.desktop
mc: /usr/share/pixmaps/mcedit.xpm
mc-data: /usr/share/man/man1/mcedit.1.gz
:wink:

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

Re: Cronjob geht nicht

Beitrag von tobo » 15.08.2020 22:56:16

MSfree hat geschrieben: ↑ zum Beitrag ↑
15.08.2020 22:14:19
Ich verfahre da immer so:

Code: Alles auswählen

crontab -l > jobs
vi jobs
crontab jobs
Also erstmal die bestehenden Jobs in eine Datei schreiben (hier jobs), Dann die Datei editieren, von mir aus auch mit mcedit, und dann die editierte Datei cron wieder zuführen.
Ist das an Umständlichkeit zu überbieten? Was ist der Vorteil gegenüber einem schnöden crontab -e?

Benutzeravatar
TRex
Moderator
Beiträge: 8038
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Cronjob geht nicht

Beitrag von TRex » 15.08.2020 22:58:26

MSfree hat geschrieben: ↑ zum Beitrag ↑
15.08.2020 22:14:19
Weil man mit einem Editor nunmal keinen cron-Job einrichten kann.
crontab -e tut genau das. Der wichtige Unterschied und vermutlich auch die Fehlerquelle wurde oben bereits genannt, aber wohl nicht deutlich genug.

Die user-crontab hat kein Feld für den user (weil der Kontext ja schon gegeben ist), die /etc/crontab hat das jedoch.

@desputin

Code: Alles auswählen

*/7 * * * * /home/user/script1.sh
enthält keinen user, du willst es aber als /etc/crontab speichern.

Klar nun?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: Cronjob geht nicht

Beitrag von desputin » 16.08.2020 00:37:36

Hallo Ihr,
ich hab jetzt einfach crontab -e verwendet. Hat jetzt auch mit mcedit (mein Standardeditor) gut geklappt. Erstmal hatte er sich geweigert, den Crontab abzuspeichern, weil ich nach der letzten Zeile nicht noch mit Enter eine Leerzeile eingefügt habe. Echt kompliziert.
Wie schön wäre es doch, wenn das Ganze etwas verständlicher/intuitiver wäre. Muß man wahrscheinlich ein Informatiker oder Autist sein, um auf solche Systeme zu kommen....

Danke Euch noch mal für die Antworten!
viele Grüße desputin
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

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

Re: Cronjob geht nicht

Beitrag von tobo » 16.08.2020 01:41:30

desputin hat geschrieben: ↑ zum Beitrag ↑
16.08.2020 00:37:36
Hallo Ihr,
ich hab jetzt einfach crontab -e verwendet. Hat jetzt auch mit mcedit (mein Standardeditor) gut geklappt. Erstmal hatte er sich geweigert, den Crontab abzuspeichern, weil ich nach der letzten Zeile nicht noch mit Enter eine Leerzeile eingefügt habe. Echt kompliziert.
Nein, echt super! Eine Warnung, bevor du eine Datei syntaktisch im inkonsistenten Zustand hinterlässt.
Wie schön wäre es doch, wenn das Ganze etwas verständlicher/intuitiver wäre.
Das ist ein Betriebssystem?!
Muß man wahrscheinlich ein Informatiker oder Autist sein, um auf solche Systeme zu kommen....
Hier wird jeden Tag gezeigt, dass es reicht, google bedienen zu können, um halbwegs als Experte angesehen zu werden!? Egal - hast du den Unterschied user/system-Crontab verstanden? Das war der Punkt...

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: Cronjob geht nicht

Beitrag von desputin » 16.08.2020 10:10:07

Wie dem auch sei. Auf jeden Fall scheint mein Cron nicht aktiv zu sein, obwohl alles in crontab -e (ausgeführt als root) korrekt aussieht. Also der Befehl wird nicht ausgeführt. Keine Ahnung, woran das liegen kann.

Code: Alles auswählen

*/7 * * * * /home/user/script1.sh
Das Script an sich funktioniert, hab ich gerade getestet.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

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

Re: Cronjob geht nicht

Beitrag von tobo » 16.08.2020 11:00:24

desputin hat geschrieben: ↑ zum Beitrag ↑
16.08.2020 10:10:07
Keine Ahnung, woran das liegen kann.
Vermutlich an PATH, daran liegt es immer!? Ansonsten erschlagen einen fast die Informationen.
https://wiki.ubuntuusers.de/Cron/#Haeufige-Fehler

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: Cronjob geht nicht

Beitrag von desputin » 16.08.2020 11:39:59

Ok, danke. So scheint es zu klappen:

Code: Alles auswählen

*/7 * * * * /bin/bash --login /home/user/script1.sh
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

cronoik
Beiträge: 2049
Registriert: 18.03.2012 21:13:42
Lizenz eigener Beiträge: GNU Free Documentation License

Re: Cronjob geht nicht

Beitrag von cronoik » 16.08.2020 11:51:49

desputin hat geschrieben: ↑ zum Beitrag ↑
16.08.2020 10:10:07
obwohl alles in crontab -e (ausgeführt als root)
Muss das Skript denn als root laufen?
Hilf mit unser Wiki zu verbessern!

Benutzeravatar
TRex
Moderator
Beiträge: 8038
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Cronjob geht nicht

Beitrag von TRex » 16.08.2020 11:53:56

Ist das Script denn ausführbar?
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: Cronjob geht nicht

Beitrag von desputin » 16.08.2020 12:37:05

Es ist ausführbar, ich hatte es ja schon getestet. Nein, als Root hätte es nicht unbedingt laufen müssen, ist in meinem Fall egal, denk ich, weil ich alleine am Rechner arbeite. Wie gesagt, mit /bin/bash --login davor in der Crontab geht es ja jetzt.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
TRex
Moderator
Beiträge: 8038
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Cronjob geht nicht

Beitrag von TRex » 16.08.2020 14:37:24

Ich meine damit, ob es das executable-bit hat.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: Cronjob geht nicht

Beitrag von desputin » 27.11.2021 14:45:25

Kleines Update. Jetzt mit der aktuellen Stable-Version von Debian ging es irgendwie nicht. Deswegen hab ich die Zeilen in
crontab -e eingetragen. Wichtig hier aber seltsamerweise, eine Leerzeile ganz am Ende einzugeben. Sonst geht das irgendwie nicht.

Allerdings mußte ich erstmal meinen Lieblings-Editor einstellen:

Code: Alles auswählen

sudo update-alternatives --config editor
Nano ist ja unbedienbar, wenn man nicht mit ihm aufgewachsen ist...

Und dann wie gehabt das hier eintragen:

Code: Alles auswählen

*/7 * * * * /bin/bash --login /home/user/script1.sh
und dann am Ende:

Code: Alles auswählen

 [Leerzeile, also nur Enter drücken nach der Zeile oben] 
Zuletzt geändert von desputin am 27.11.2021 22:04:30, insgesamt 3-mal geändert.
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

Benutzeravatar
TRex
Moderator
Beiträge: 8038
Registriert: 23.11.2006 12:23:54
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: KA

Re: Cronjob geht nicht

Beitrag von TRex » 27.11.2021 15:26:39

desputin hat geschrieben: ↑ zum Beitrag ↑
27.11.2021 14:45:25
eine Leerzeile ganz am Ende einzugeben. Sonst geht das irgendwie nicht.
Das war bei crontab aber schon immer so, siehe man crontab:
crontab(1) hat geschrieben: cron requires that each entry in a crontab end in a newline character. If the last entry in a crontab is
missing the newline, cron will consider the crontab (at least partially) broken and refuse to install it.
Jesus saves. Buddha does incremental backups.
Windows ist doof, Linux funktioniert nichtDon't break debian!Wie man widerspricht

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: [Gelöst] Cronjob geht nicht

Beitrag von desputin » 16.07.2023 00:23:50

Hm, warum geht schon wieder ein cronjob bei mir nicht?
Ich wollte, daß er um 22:42 jeden Tag losgeht und habe um 22:40 das hier eingerichtet (mit sudo crontab -e

Code: Alles auswählen

*/42 22 * * * /bin/bash --login /home/user/scripts/script1.sh
Hat aber nichts bewirkt. Hm....
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

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

Re: [Gelöst] Cronjob geht nicht

Beitrag von mat6937 » 16.07.2023 00:36:31

desputin hat geschrieben: ↑ zum Beitrag ↑
16.07.2023 00:23:50
Hat aber nichts bewirkt. Hm....
Versuch mal mit:

Code: Alles auswählen

42 22 * * * /bin/bash --login /home/user/scripts/script1.sh
BTW: Wenn Du nicht weißt wie es geht, dann den Guru fragen: https://crontab.guru/

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

Re: [Gelöst] Cronjob geht nicht

Beitrag von tobo » 16.07.2023 00:54:11

Das mit den Minuten ist ungewöhnlich formuliert, aber ok so. Ich frage mich, wieso du das mit sudo absetzt, wenn das Skript doch beim User liegt. Ansonsten, protokolliere mal, ob das Skript ausgeführt wird. "Hat nichts bewirkt" ist nämlich ziemlich unaussagekräftig...

Benutzeravatar
desputin
Beiträge: 1272
Registriert: 24.04.2015 17:16:34

Re: [Gelöst] Cronjob geht nicht

Beitrag von desputin » 16.07.2023 00:57:32

Danke. Hm, nein, hat leider nicht geklappt. Die anderen Zeilen gehen ja auch zuverlässig und die fangen alle so an */[Zahl]
https://www.daswirdmanjawohlnochsagenduerfen.de
https://www.neoliberalyse.de - Über die Ökonomisierung aller Lebensbereiche. |

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

Re: [Gelöst] Cronjob geht nicht

Beitrag von mat6937 » 16.07.2023 09:09:09

desputin hat geschrieben: ↑ zum Beitrag ↑
16.07.2023 00:57:32
Hm, nein, hat leider nicht geklappt.
Wie hast Du getestet, denn 22:42 Uhr war ja schon vorbei?
Versuch mal mit:

Code: Alles auswählen

29 9 * * *	logger "test: `date`"  # Uhrzeit evtl. anpassen

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

Re: [Gelöst] Cronjob geht nicht

Beitrag von tobo » 16.07.2023 10:08:43

mat6937 hat geschrieben: ↑ zum Beitrag ↑
16.07.2023 09:09:09
Wie hast Du getestet, denn 22:42 Uhr war ja schon vorbei?
Nicht beim ersten Mal: "*/42 22 * * *" bedeutet ab 22:00 Uhr alle 42 Minuten, also 22:00 und 22:42. Das kann man im Zweifel auch einfach selbst kurz testen.
Versuch mal mit:

Code: Alles auswählen

29 9 * * *	logger "test: `date`"  # Uhrzeit evtl. anpassen
Um die Richtigkeit seiner Zeile zu beweisen/widerlegen macht es irgendwie wenig Sinn, etwas völlig anderes zu testen. Interessanter ist da bestimmt: warum schreibt er in die Crontab von root und wurde das Skript ausgeführt (ist es ausführbar und angelaufen).

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

Re: [Gelöst] Cronjob geht nicht

Beitrag von mat6937 » 16.07.2023 10:23:44

tobo hat geschrieben: ↑ zum Beitrag ↑
16.07.2023 10:08:43
Um die Richtigkeit seiner Zeile zu beweisen/widerlegen macht es irgendwie wenig Sinn, etwas völlig anderes zu testen.
Das ist nichts anderes bzw. das ist der 1. Schritt - die Uhrzeit. Wenn er weiß wie und ob das funktioniert. kommt evtl. der 2. Schritt, mit der root-crontab, Script, shell, etc.

BTW: Wenn er _nur_ 22:42 Uhr haben will, braucht er keinen Eintrag, der um 22:00 Uhr und um 22:42 Uhr ausführt (... und genau das sagt ihm auch der crontab-guru).

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

Re: [Gelöst] Cronjob geht nicht

Beitrag von tobo » 16.07.2023 10:43:49

mat6937 hat geschrieben: ↑ zum Beitrag ↑
16.07.2023 10:23:44
tobo hat geschrieben: ↑ zum Beitrag ↑
16.07.2023 10:08:43
Um die Richtigkeit seiner Zeile zu beweisen/widerlegen macht es irgendwie wenig Sinn, etwas völlig anderes zu testen.
Das ist nichts anderes bzw. das ist der 1. Schritt - die Uhrzeit. Wenn er weiß wie und ob das funktioniert. kommt evtl. der 2. Schritt, mit der root-crontab, Script, shell, etc.
Ah, ich dachte du fängst noch vorher an: Läuft cron überhaupt? Hat denn außer dir jemand Zweifel, dass die gezeigte Uhrzeit (um 22:42) funktioniert? Wenn du die Richtigkeit in Frage stellst, dann kannst du das doch selbst kurz nachlesen oder bei deinem Guru testen.

Antworten