Main /

Installation Cronie

Installation Cronie

Installation Cronie per Hand

Aber nur, weil Solus es nicht per Default mit liefert.

Cronie from Scratch

Sourcen holen:

 git clone https://github.com/cronie-crond/cronie

bauen

Was hab ich gemacht:

 ./autogen.sh
 ./configure
 make
 sudo make install

bauen ging fehlerfrei durch, so liebt man es!

Crond wird per Default nach /usr/local/bin/ installiert, es sei den man gibt bei configure an wo es liegen soll.

starten

Jetzt lässt sich crond einfach starten, erst mal mit '--help', um die Parameter zu verstehen.

 /usr/local/bin/crond --help

Dann im Vordergrund starten, mal sehen, was geht.

 /usr/local/bin/crond -n -x ext,sch,proc,pars,load,misc,test,bit

Start schlägt noch fehl, weil wohl das Environment fehlt.

 sudo touch /etc/sysconfig/crond

Es kommt jede Menge Output und das so einiges fehlt. Leider habe ich keine einfache Anleitung gefunden, die beim Fehlen von Einstellungen alles einfach mal installiert.

Konfiguration von Hand

Also hier mal Hardcore, was ich gemacht habe, damit crontabs endlich fehlerfrei laufen:

In der /etc/passwd den User "cron" eintragen, falls noch nicht vorhanden.

 cron:x:16:16:A user for sys-process/cronbase:/usr/local/var/spool/cron:/sbin/nologin

Gibt auch ein useradd dazu, ist mir nur gerade entfallen winking smiley Trage ich mal nach...

In der /etc/group zwei neue Gruppen eintragen:

 cron:x:16:
 crontab:x:1003:

Bei der 1003 eine Nummer eintragen, die frei ist, oder das Tool verwenden, weiß gerade selbst nicht, welches das ist.

Noch ein paar Dateien kopieren, anlegen

 /usr/local/etc/cron.allow         # enthält die Usernamen, die crontab starten dürfen
 /usr/local/etc/cron.d/0hourly     # beide aus dem contrib Verzeichnis kopieren
                       dailyjobs

Und ein paar Verzeichnisse anlegen (als root) und wo es dran steht mit Rechten versehen.

 /usr/local/etc/cron.daily/         # Anlegen
                cron.hourly/
                cron.monthly/
                cron.weekly/        
 /usr/local/var/run/
 /usr/local/var/spool/anacron/
 /usr/local/var/spool/cron/crontabs/ # chgrp crontab .. -R
 /usr/local/var/spool/cron/lastrun/

Jetzt sollte per crontab -l angezeigt werden, das man für crontabs bereit ist. Auch als nicht root! Wenn man in der cron.allow namentlich erwähnt wird.

Eine crontab bearbeiten geht mit crontab -e dann wird ein Editor geöffnet und man kann ein Programm regelmäßig starten lassen.

 */1 * * * * echo "Heute ist $(date)" >hallo.txt

Das erstellt mir jede Minute eine Datei "hallo.txt" in meinem Home-Verzeichnis mit dem aktuellen Datum. Ist sinnfrei und nur ein Test.

Und das alles nur, weil Solus keine Crontabs mehr bietet, man hätte ja Systemd-Timer, vergäßt es. Systemd ist und bleibt schlecht!

Crond als Service starten

Da wir aber systemd haben, sollte crond als Service gestartet werden. Also folgenden Inhalt in die Datei /etc/systemd/system/crond.service kopieren

 [Unit]
 Description=Command Scheduler
 After=auditd.service systemd-user-sessions.service time-sync.target

 [Service]
 EnvironmentFile=/etc/sysconfig/crond
 ExecStart=/usr/local/sbin/crond -n $CRONDARGS
 ExecReload=/bin/kill -HUP $MAINPID
 KillMode=process
 Restart=on-failure
 RestartSec=30s

 [Install]
 WantedBy=multi-user.target

Starten: systemctl start crond und dann noch "enablen", damit crond auch nach einem Reboot noch läuft: systemctl enable crond

Frische Änderungen | Menü editieren
zuletzt geändert am 23.06.2023 08:45 Uhr von Lars
Edit Page | Page History