# GLPI Cronjobs unter Debian/YunoHost richtig einrichten ## Problem - GLPI-Automatikjobs (z. B. Mailabruf, Benachrichtigungen, SLAs) liefen nicht automatisch.\ - **Ursache:** - Cronjobs waren entweder im *GLPI-Modus* (laufen nur bei Webzugriff) oder\ - System-Cron war falsch konfiguriert bzw. konnte nicht schreiben. ------------------------------------------------------------------------ ## Lösungsschritte ### 1. PHP-Version prüfen ``` bash php -v sudo -u glpi php -v ``` → Beide müssen die gleiche Version zeigen (z. B. PHP 8.2). ------------------------------------------------------------------------ ### 2. System-Cronjob anlegen Datei `/etc/cron.d/glpi` erstellen mit folgendem Inhalt (letzte Zeile **leer** lassen!): ``` cron * * * * * glpi cd /var/www/glpi && /usr/bin/php8.2 front/cron.php >> /var/www/glpi/files/_log/cron_stdout.log 2>&1 ``` > `glpi` ist der Benutzer, unter dem die YunoHost-App GLPI läuft.\ > Pfad `/usr/bin/php8.2` ggf. anpassen. Danach: ``` bash sudo chmod 644 /etc/cron.d/glpi sudo chown root:root /etc/cron.d/glpi sudo systemctl restart cron ``` ------------------------------------------------------------------------ ### 3. Rechte reparieren (falls nötig) ``` bash sudo chown -R glpi:www-data /var/www/glpi/files sudo find /var/www/glpi/files -type d -exec chmod 770 {} \; sudo find /var/www/glpi/files -type f -exec chmod 660 {} \; ``` ------------------------------------------------------------------------ ### 4. Automatische Aktionen in GLPI konfigurieren Im Webinterface: **Setup → Automatische Aktionen**\ Für jeden wichtigen Job einstellen: - **Status:** Geplant\ - **Ausführungsmodus:** CLI\ - **Frequenz:** passend wählen (z. B. Mailjobs 1--5 Min, SLAs 10 Min, Cleanups 1 Tag) Beispiele: - `mailgate` (E-Mail-Abruf): 1--5 Min\ - `queuednotification` (Benachrichtigungen): 1--5 Min\ - `alertnotclosed` / `slaticket`: 10--15 Min\ - `cleanoldlogs` / Backups: 1 Tag ------------------------------------------------------------------------ ### 5. Funktion prüfen Manuell starten: ``` bash sudo -u glpi /usr/bin/php8.2 /var/www/glpi/front/cron.php ``` Logs ansehen: ``` bash sudo -u glpi tail -n 50 /var/www/glpi/files/_log/cron.log sudo -u glpi tail -n 50 /var/www/glpi/files/_log/cron_stdout.log ``` Im Webinterface → „Letzte Ausführung" sollte hochzählen. ------------------------------------------------------------------------ ## Ergebnis - Cron läuft minütlich als User `glpi`.\ - GLPI startet die als **CLI/Geplant** markierten Jobs exakt nach ihrer Frequenz.\ - „Letzte Ausführung" im Webinterface aktualisiert sich zuverlässig.\ - Problem gelöst ✅ ------------------------------------------------------------------------ ### Troubleshooting - Meldung *„Nichts zu starten"* → kein Job auf CLI oder `nextrun` noch nicht erreicht.\ - Rechtefehler → sicherstellen, dass `glpi` User Besitzer von `/var/www/glpi/files` ist.\ - Kein Cronlauf sichtbar → prüfen mit: ``` bash sudo tail -n 50 /var/log/syslog | grep glpi ```