ILIAS 8 Install Tutorial for Ubuntu 22.04

crontrashReset

touch /opt/scripts/crontrashReset
chmod +x /opt/scripts/crontrashReset
nano /opt/scripts/crontrashReset
#!/bin/bash
 
# Konfigurierbare Variablen
CRON_PHP_PATH="/var/www/html/ilias/cron/cron.php" # Pfad zur cron.php
CLIENT_ID="iliasschoolmaster" # Client-ID für den Cronjob
USER="root" # Benutzer für den Cronjob
LOGFILE="/opt/iliasdata/log/crontrash.log" # Logdatei für die Cronjob-Ausgabe
 
# Datenbankkonfiguration
DATABASE="Qiliasmaster_kivinan"
 
# Überprüfen, ob das Skript als root ausgeführt wird
if [ "$EUID" -ne 0 ]; then
echo "Bitte das Skript als root ausführen."
exit 1
fi
 
# Überprüfe den Status des Cronjobs sysc_trash
echo "Überprüfe den Status des Cronjobs sysc_trash..."
STATUS_OUTPUT=$(mysql -D $DATABASE -sse "SELECT job_status, job_result_status, running_ts, alive_ts, job_status_ts, job_result_message FROM cron_job WHERE job_id = 'sysc_trash';")
 
# Überprüfe, ob die Abfrage erfolgreich war
if [ -z "$STATUS_OUTPUT" ]; then
echo "Cronjob sysc_trash wurde nicht gefunden. Bitte den Namen überprüfen."
exit 1
fi
 
# Status aus der Datenbankabfrage extrahieren
read -r JOB_STATUS JOB_RESULT_STATUS RUNNING_TS ALIVE_TS JOB_STATUS_TS JOB_RESULT_MSG <<< "$STATUS_OUTPUT"
 
echo "Aktueller Jobstatus: job_status = '$JOB_STATUS', job_result_status = '$JOB_RESULT_STATUS', running_ts = '$RUNNING_TS', alive_ts = '$ALIVE_TS', job_status_ts = '$JOB_STATUS_TS'"
echo "Job Ergebnisnachricht: $JOB_RESULT_MSG"
 
# Überprüfen, ob der Cronjob im Fehlerzustand oder in einem ungültigen Zustand ist
if [[ "$JOB_RESULT_STATUS" -eq 4 || "$RUNNING_TS" -gt 0 ]]; then
echo "Cronjob sysc_trash befindet sich in einem Fehlerzustand oder wurde unterbrochen."
 
# Setze den Cronjob zurück
echo "Setze den Cronjob sysc_trash zurück..."
mysql -D $DATABASE -e "
UPDATE cron_job
SET job_status = 1,
job_result_status = 0,
running_ts = 0,
alive_ts = 0,
job_status_ts = UNIX_TIMESTAMP(),
job_result_ts = UNIX_TIMESTAMP() - 86400
WHERE job_id = 'sysc_trash';
"

if [ $? -eq 0 ]; then
echo "Cronjob sysc_trash wurde erfolgreich zurückgesetzt."
else
echo "Fehler beim Zurücksetzen des Cronjobs sysc_trash."
exit 1
fi
 
# Versuche, den Cronjob neu zu starten
echo "Versuche, den Cronjob neu zu starten..."
/usr/bin/php $CRON_PHP_PATH run-jobs $USER $CLIENT_ID > $LOGFILE 2>&1
if [ $? -eq 0 ]; then
echo "Cronjob sysc_trash wurde erfolgreich neu gestartet."
else
echo "Fehler beim Starten des Cronjobs sysc_trash."
exit 1
fi
else
echo "Cronjob sysc_trash läuft oder befindet sich nicht in einem Fehlerzustand."
fi
 
echo "Skript abgeschlossen."
nano /etc/crontab
 
#Cronjob Reset for Trash-Job
*/5 * * * * root /bin/bash /opt/scripts/crontrashReset > /opt/iliasdata/log/crontrash.log
 
#Delete Logfile once a day
0 0 * * * root /usr/bin/find /opt/iliasdata/log/crontrash.log -type f -exec rm -f {} \;
 
 
#Check /var/log/syslog


No comment has been posted yet.