Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
buhtz
Beiträge: 1205
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von buhtz » 26.06.2023 21:52:29

Es gibt eine GUI Anwendung (reales Beispiel: Debianbackintime-qt), die regelmäßige Aufgaben erledigt und sich daher selbstständig in "crontab" einträgt. Genauer gesagt crontab -e, also /var/spool/cron/crontab/user.

Gleichzeitig gibt es jedoch Situationen, in denen der User manuell, per crontab -e, Jobs mit der gleichen Anwenung anlegt; beispielsweise, wenn er bestimmte "exotische" Zeitintervale benötigt, die in der GUI der Anwendung nicht abgebildet sind.

Nun möchte ich, diese Zeilen in der "crontab" voneinander unterscheiden können. Bisher ist es tatsächlich so gelöst, dass vo r jeder crontab Zeile, die von der Anwendung erzeugt wurde, eine Kommentarzeile steht.

Nun frage ich mich, ob es eine elegantere Lösung dafür gibt?

Ich dachte zu erst, ich könnte für die Anwendungseigenen Jobs einfach eine eigene crontab in /etc/cron.d ablegen. Da darf aber nur root dran. Dieser Ordner ist ja laut Debian Doku auch genau für die "Pakete" gedacht. Aber manche Pakete haben halt nur Userspace Anwendungen.

Gibt es auf Dateisystem Ebene eine Lösungsmöglichkeit?

Kommen euch noch andere Lösungsansätze in den Sinn?
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

VS2FreeUsers
Beiträge: 58
Registriert: 26.06.2023 09:09:40
Lizenz eigener Beiträge: GNU General Public License

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von VS2FreeUsers » 27.06.2023 07:53:33

Hi,

ein kleines Script machen welches unter Einschränkungen Files unter /etc/cron.d erstellen kann und dann den jeweiligen user per sudo freischalten also nur das Script. Also das wäre mein denk Ansatz.
vs2-free-users community

#vs2-free-users #VS2FreeUsers

buhtz
Beiträge: 1205
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von buhtz » 27.06.2023 09:02:46

VS2FreeUsers hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 07:53:33
dann den jeweiligen user per sudo freischalten also nur das Script.
Dafür also die Eingabe eines Passworts von Nöten, richtig? Keine Option für meine User.
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

VS2FreeUsers
Beiträge: 58
Registriert: 26.06.2023 09:09:40
Lizenz eigener Beiträge: GNU General Public License

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von VS2FreeUsers » 27.06.2023 09:06:06

Hi,

nein das geht auch ohne mit NOPASSWD .
vs2-free-users community

#vs2-free-users #VS2FreeUsers

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

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von mat6937 » 27.06.2023 09:08:25

buhtz hat geschrieben: ↑ zum Beitrag ↑
26.06.2023 21:52:29
Bisher ist es tatsächlich so gelöst, dass vo r jeder crontab Zeile, die von der Anwendung erzeugt wurde, eine Kommentarzeile steht.
Wie ist die Ausgabe von:

Code: Alles auswählen

crontab -l
?
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

buhtz
Beiträge: 1205
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von buhtz » 27.06.2023 09:16:35

VS2FreeUsers hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:06:06
nein das geht auch ohne mit NOPASSWD .
Ist das eine Anwendung? Kann dir nicht ganz folgen. Warum sudo, wenn ich dann doch kein Passwort eingeben muss?
mat6937 hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:08:25
Wie ist die Ausgabe von:

Code: Alles auswählen

crontab -l
Hier komplett und ungefiltert. Der zweite Job (7:25) ist nutzerdefiniert. Der dritte Job (0:13 Wochentag 7) ist automatisch von der Anwendung (Debianbackintime) erzeugt. Die möchte ich unterscheiden können, ohne nach Kommentaren parsen zu müssen.

Code: Alles auswählen

#hyperorg_roam
40 9,16 * * *   /home/user/.local/bin/hyperorg -v --hardlinks /home/user/ownCloud/my.org-roam /home/user/ownCloud/my.html-roam


7 25 * * * /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null


#Back In Time system entry, this will be edited by the gui:
0 13 * * 7 /usr/bin/nice -n19 /usr/bin/ionice -c2 -n7 /usr/bin/backintime backup-job >/dev/null
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

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

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von mat6937 » 27.06.2023 09:20:57

buhtz hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:16:35
Warum sudo, wenn ich dann doch kein Passwort eingeben muss?
In der user-crontab wird sudo nicht benötigt.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

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

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von mat6937 » 27.06.2023 09:24:07

buhtz hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:16:35
Die möchte ich unterscheiden können, ohne nach Kommentaren parsen zu müssen.
Du könntest _in der gleichen Zeile_ vom usereintrag, einen Kommentar setzen. Z. B.:

Code: Alles auswählen

* * * * *	logger "testcrontab" # user-eintrag
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

VS2FreeUsers
Beiträge: 58
Registriert: 26.06.2023 09:09:40
Lizenz eigener Beiträge: GNU General Public License

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von VS2FreeUsers » 27.06.2023 09:36:45

mat6937 hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:24:07
buhtz hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:16:35
Die möchte ich unterscheiden können, ohne nach Kommentaren parsen zu müssen.
Du könntest _in der gleichen Zeile_ vom usereintrag, einen Kommentar setzen. Z. B.:

Code: Alles auswählen

* * * * *	logger "testcrontab" # user-eintrag
Hi,

genau das geht auch der kommentar muss aber wie im Beispiel am Ende sein. Sonst wird ab der raute der Code nicht mehr ausgeführt.
vs2-free-users community

#vs2-free-users #VS2FreeUsers

buhtz
Beiträge: 1205
Registriert: 04.12.2015 17:54:49
Kontaktdaten:

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von buhtz » 27.06.2023 09:39:48

Code: Alles auswählen

* * * * *	logger "testcrontab" # user-eintrag
:facepalm: :hail:

Herrlich! So schön einfach!

Dazu eine kleine AddOn-Frage auf Unix & Linux StackExchange, weil die crontab manpage diese Form scheinbar verbietet ("not allowed").
Debian 11 & 12; Desktop-PC, Headless-NAS, Raspberry Pi 4
Teil des Upstream Betreuer Teams von Back In Time (Debianbackintime)

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

Re: Nutzerdefinierte cronjobs von "automatisch" erzeugten unterscheiden

Beitrag von mat6937 » 27.06.2023 11:48:52

buhtz hat geschrieben: ↑ zum Beitrag ↑
27.06.2023 09:39:48
[..., weil die crontab manpage diese Form scheinbar verbietet ("not allowed").
Der Kommentar (in der Zeile) darf/soll _nicht_ vor oder innerhalb des "cron commands" sein.
Debian 12.8 mit LXDE, OpenBSD 7.6 mit i3wm, FreeBSD 14.1 mit Xfce

Antworten