<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://superxhosting.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrek</id>
	<title>SuperX - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://superxhosting.de/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Andrek"/>
	<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php/Spezial:Beitr%C3%A4ge/Andrek"/>
	<updated>2026-05-05T16:57:28Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.39.11</generator>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15481</id>
		<title>Kernmodul Regelbetrieb</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15481"/>
		<updated>2025-12-17T08:33:02Z</updated>

		<summary type="html">&lt;p&gt;Andrek: /* Mailversand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BI Maintenance=&lt;br /&gt;
&lt;br /&gt;
==Ziel und Überblick==&lt;br /&gt;
Die hier bereitgestellten Skripte ermöglichen es, in der BI-Umgebung von HISinOne und in Zukunft auch von SuperX (aktuell können die Scripte in SuperX leider noch nicht verwendet werden) Modul-Updates und -Upgrades zuverlässig über die Shell auszuführen – automatisiert per Cronjob oder manuell.  Sie orientieren sich bewusst am bisherigen Vorgehen aus SuperX, wurden jedoch erweitert:&lt;br /&gt;
&lt;br /&gt;
* Ausführung der BI-Modul-Updates/-Upgrades über Java (&#039;&#039;ComponentAdminCLI&#039;&#039;).&lt;br /&gt;
* Vollständige Protokollierung in Logdateien.&lt;br /&gt;
* Optional: Protokollierung der Läufe in der Tabelle &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Automatischer Mailversand über ein konfigurierbares Mailprogramm.&lt;br /&gt;
* Optional: Erkennen interner Fehler im Batch-Job (auch wenn Java Exitcode 0 liefert).&lt;br /&gt;
* Möglichkeit, Logdateien automatisch an Mails anzuhängen (erfolgreiche und fehlerhafte Module).&lt;br /&gt;
&lt;br /&gt;
==Installation aus dem git Repository==&lt;br /&gt;
&lt;br /&gt;
Führen Sie folgenden Shell-Befehl aus:&lt;br /&gt;
&lt;br /&gt;
 git clone https://git.campussource.de/git/SuperX/BI_Maintenance.git&lt;br /&gt;
&lt;br /&gt;
Die weitere Konfiguration wird im Folgenden beschrieben. Alle Einstellungen erfolgen zentral in der Datei &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;, die als Template &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
==Umgebungsvariablen in der BI_ENV==&lt;br /&gt;
&lt;br /&gt;
===BI_ENV.sam – Template und lokale BI_ENV===&lt;br /&gt;
Die Datei &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; wird als Muster ausgeliefert. &lt;br /&gt;
&lt;br /&gt;
Sie muss vor Ort:&lt;br /&gt;
&lt;br /&gt;
# in &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; kopiert/umbenannt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp BI_ENV.sam BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# an die lokalen Gegebenheiten angepasst werden (Pfade, Module, Mailadressen usw.).&lt;br /&gt;
# mit restriktiven Rechten versehen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 600 BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skripte binden diese Datei später mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zu/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bedeutung der Variablen===&lt;br /&gt;
Im Folgenden die wichtigsten Variablen, die angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
====Java-Konfiguration====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64&lt;br /&gt;
export JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
JRE_HOME=$JAVA_HOME&lt;br /&gt;
export JRE_HOME&lt;br /&gt;
&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
export PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Variablen stellen sicher, dass die BI-Jobs mit dem vorgesehenen Java (empfohlen: Java 17) ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Java-Optionen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;-Xmx1520M -Djava.awt.headless=true ... --add-opens ...&amp;quot;&lt;br /&gt;
export JAVA_OPTS&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pfade zur SuperX-BI-Installation====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
WEBAPP=/var/lib/tomcat10/webapps/superx&lt;br /&gt;
export WEBAPP&lt;br /&gt;
&lt;br /&gt;
SUPERX_DIR=$WEBAPP/WEB-INF/conf/edustore&lt;br /&gt;
export SUPERX_DIR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Pfade müssen an lokale Tomcat-Installation und SuperX-Verzeichnisstruktur angepasst werden.&lt;br /&gt;
&lt;br /&gt;
====Modulsteuerung====&lt;br /&gt;
Für die Update- und Upgrade-Skripte werden die zu bearbeitenden Module festgelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export BI_UPDATE_MODULES=&amp;quot;sos kenn zul&amp;quot;&lt;br /&gt;
export BI_UPGRADE_MODULES=&amp;quot;kenn&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis:  &lt;br /&gt;
Die Modulkürzel müssen klein geschrieben sein (z. B. &amp;lt;code&amp;gt;sos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kenn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zul&amp;lt;/code&amp;gt;) und mit Leerzeichen getrennt aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
====Logging====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LOGPFAD=$WEBAPP/WEB-INF/logs&lt;br /&gt;
export LOGPFAD&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Logpfad werden u. a. folgende Dateien erzeugt:&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_update.log&amp;lt;/code&amp;gt; – Sammellog des Updates&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_upgrade.log&amp;lt;/code&amp;gt; – Sammellog des Upgrades&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_update.log&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_upgrade.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Java-Batch-Jobs erzeugen ergänzende Logs in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailversand====&lt;br /&gt;
Folgende Variablen steuern Empfänger und Format der Benachrichtigungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export ERRORMAIL=&amp;quot;admin@hs.de&amp;quot;&lt;br /&gt;
export LOGMAIL=&amp;quot;$ERRORMAIL&amp;quot;&lt;br /&gt;
#export LOGMAIL=&amp;quot;admin@hs.de kollege@hs.de&amp;quot;   # mehrere Empfänger möglich&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ERRORMAIL&amp;lt;/code&amp;gt; – Empfänger für Fehlermails  &lt;br /&gt;
* &amp;lt;code&amp;gt;LOGMAIL&amp;lt;/code&amp;gt; – Empfänger für Erfolgs- und Statusmails  &lt;br /&gt;
Mehrere Adressen werden per Leerzeichen getrennt.&lt;br /&gt;
&lt;br /&gt;
Mailprogramm:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAILPROG=&amp;quot;s-nail --account=test1 -S ttycharset=utf-8 -S sendcharset=utf-8&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betreffzeilen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAIL_BETREFF_UPDATE=&amp;quot;BI Job Update&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_UPGRADE=&amp;quot;BI Job Upgrade&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_ERFOLGREICH=&amp;quot; - Erfolgreich&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_FEHLER=&amp;quot; - Fehler&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Datei:Kernmodul Regelbetrieb Mailversand.png|rand|links]]&lt;br /&gt;
&lt;br /&gt;
So könnten die Mails aussehen.&lt;br /&gt;
&lt;br /&gt;
====Steuerung der Log-Anhänge====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# error  = Logs nur bei Fehlern anhängen&lt;br /&gt;
# always = Logs immer anhängen (Erfolg + Fehler)&lt;br /&gt;
export MAIL_ATTACH_LOGS_MODE=&amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Prüfung der Modul-Logs====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# true  = zusätzlich Modul-Log auf interne Fehler prüfen&lt;br /&gt;
# false = nur Exitcode des Java-Calls verwenden&lt;br /&gt;
export CHECK_JOBLOG_FOR_ERRORS=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gerade bei dem Java Aufruf von ComponentAdminCLI empfehlenswert, da dieser aktuell noch trotz &amp;lt;code&amp;gt;status: FAILED&amp;lt;/code&amp;gt; oft Exitcode 0 liefert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Updates=&lt;br /&gt;
&lt;br /&gt;
==modules_update.sh – Hauptskript==&lt;br /&gt;
Dieses Skript führt alle Module aus &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; nacheinander aus.&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
# Startcheck: Sind &amp;lt;code&amp;gt;WEBAPP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOGPFAD&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; gesetzt?&lt;br /&gt;
# Falls verfügbar: DB-Protokollierung via &amp;lt;code&amp;gt;DOQUERY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Für jedes Modul:&lt;br /&gt;
## Logdatei anlegen&lt;br /&gt;
## Start in &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt; protokollieren (update_id = -10000)&lt;br /&gt;
## Java-Update starten:  &lt;br /&gt;
   &amp;lt;code&amp;gt;ComponentAdminCLI -e &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## Optional: Modul-Logdatei nach internen Fehlern durchsuchen&lt;br /&gt;
## Erfolg:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;SUCCESS_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10000)&lt;br /&gt;
## Fehler:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;ERROR_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10001)&lt;br /&gt;
## Zuletzt: Java-Joblogs aus &amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt; ermitteln&lt;br /&gt;
&lt;br /&gt;
# Nach Abschluss aller Module:&lt;br /&gt;
## Erfolgs- oder Fehlermail versenden&lt;br /&gt;
## Anhänge abhängig von &amp;lt;code&amp;gt;MAIL_ATTACH_LOGS_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==modules_update_cron.sh – Wrapper für Cron==&lt;br /&gt;
Damit Updates regelmäßig durchgeführt werden können, existiert ein einfaches Wrapper-Skript.&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
&lt;br /&gt;
# Beispieldatei kopieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp modules_update_cron.sh.sam modules_update_cron.sh&lt;br /&gt;
chmod +x modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Pfade zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; und zum Update-Skript anpassen.&lt;br /&gt;
# Cronjob eintragen, z. B. werktags um 18 Uhr:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0 18 * * 1-5 /pfad/zu/modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhaltlich:&lt;br /&gt;
* Laden der &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;&lt;br /&gt;
* Start des Skripts &amp;lt;code&amp;gt;modules_update.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Upgrades=&lt;br /&gt;
&lt;br /&gt;
==modules_upgrade.sh – Hauptskript==&lt;br /&gt;
Das Upgrade-Skript entspricht dem Update-Skript, unterscheidet sich aber in folgenden Punkten:&lt;br /&gt;
&lt;br /&gt;
* Es wird **manuell** ausgeführt – kein Cronjob vorgesehen.&lt;br /&gt;
* Es verwendet &amp;lt;code&amp;gt;BI_UPGRADE_MODULES&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das eigentliche Upgrade erfolgt über:  &lt;br /&gt;
  &amp;lt;code&amp;gt;ComponentAdminCLI -u &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nach Abschluss des Upgrades erfolgt ein Mailversand analog zum Update-Skript.&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/lib/tomcat10/webapps/superx/WEB-INF/bin/BI-Maintenance/update&lt;br /&gt;
./modules_upgrade.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorher muss zu Beginn des Skripts der Pfad zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; eingetragen sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zur/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Modulverwaltung=&lt;br /&gt;
&lt;br /&gt;
==Modulkürzel==&lt;br /&gt;
Die folgenden Modulkürzel sind in einer typischen BI-Installation relevant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 kuerzel |                         name                          &lt;br /&gt;
---------+-------------------------------------------------------&lt;br /&gt;
 astat   | Amtliche Statistik                                &lt;br /&gt;
 bau     | Gebäude, Räume, Flächen                           &lt;br /&gt;
 cob     | Kostenrechnung                                    &lt;br /&gt;
 erfolg  | Studienverlauf                                    &lt;br /&gt;
 fin     | Finanzrechnung                                    &lt;br /&gt;
 gang    | Studiengänge                                      &lt;br /&gt;
 ivs     | Inventar                                          &lt;br /&gt;
 kenn    | Kennzahlen                                        &lt;br /&gt;
 kern    | Administration                                    &lt;br /&gt;
 lm      | Leistungsmonitoring                               &lt;br /&gt;
 man     | Management                                        &lt;br /&gt;
 prom    | Promovierende                                     &lt;br /&gt;
 res     | Forschung                                         &lt;br /&gt;
 sos     | Studierende, Prüfungen                            &lt;br /&gt;
 sva     | Personal, Stellen                                 &lt;br /&gt;
 zul     | Bewerbung, Zulassung                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die aktiven Module der eigenen Installation können mit folgendem SQL abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT V.his_system AS kuerzel,&lt;br /&gt;
       S.name&lt;br /&gt;
  FROM db_version V&lt;br /&gt;
  JOIN systeminfo S&lt;br /&gt;
    ON S.tid = V.systeminfo_id&lt;br /&gt;
 ORDER BY 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15480</id>
		<title>Kernmodul Regelbetrieb</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15480"/>
		<updated>2025-12-17T08:32:28Z</updated>

		<summary type="html">&lt;p&gt;Andrek: /* Mailversand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BI Maintenance=&lt;br /&gt;
&lt;br /&gt;
==Ziel und Überblick==&lt;br /&gt;
Die hier bereitgestellten Skripte ermöglichen es, in der BI-Umgebung von HISinOne und in Zukunft auch von SuperX (aktuell können die Scripte in SuperX leider noch nicht verwendet werden) Modul-Updates und -Upgrades zuverlässig über die Shell auszuführen – automatisiert per Cronjob oder manuell.  Sie orientieren sich bewusst am bisherigen Vorgehen aus SuperX, wurden jedoch erweitert:&lt;br /&gt;
&lt;br /&gt;
* Ausführung der BI-Modul-Updates/-Upgrades über Java (&#039;&#039;ComponentAdminCLI&#039;&#039;).&lt;br /&gt;
* Vollständige Protokollierung in Logdateien.&lt;br /&gt;
* Optional: Protokollierung der Läufe in der Tabelle &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Automatischer Mailversand über ein konfigurierbares Mailprogramm.&lt;br /&gt;
* Optional: Erkennen interner Fehler im Batch-Job (auch wenn Java Exitcode 0 liefert).&lt;br /&gt;
* Möglichkeit, Logdateien automatisch an Mails anzuhängen (erfolgreiche und fehlerhafte Module).&lt;br /&gt;
&lt;br /&gt;
==Installation aus dem git Repository==&lt;br /&gt;
&lt;br /&gt;
Führen Sie folgenden Shell-Befehl aus:&lt;br /&gt;
&lt;br /&gt;
 git clone https://git.campussource.de/git/SuperX/BI_Maintenance.git&lt;br /&gt;
&lt;br /&gt;
Die weitere Konfiguration wird im Folgenden beschrieben. Alle Einstellungen erfolgen zentral in der Datei &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;, die als Template &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
==Umgebungsvariablen in der BI_ENV==&lt;br /&gt;
&lt;br /&gt;
===BI_ENV.sam – Template und lokale BI_ENV===&lt;br /&gt;
Die Datei &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; wird als Muster ausgeliefert. &lt;br /&gt;
&lt;br /&gt;
Sie muss vor Ort:&lt;br /&gt;
&lt;br /&gt;
# in &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; kopiert/umbenannt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp BI_ENV.sam BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# an die lokalen Gegebenheiten angepasst werden (Pfade, Module, Mailadressen usw.).&lt;br /&gt;
# mit restriktiven Rechten versehen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 600 BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skripte binden diese Datei später mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zu/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bedeutung der Variablen===&lt;br /&gt;
Im Folgenden die wichtigsten Variablen, die angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
====Java-Konfiguration====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64&lt;br /&gt;
export JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
JRE_HOME=$JAVA_HOME&lt;br /&gt;
export JRE_HOME&lt;br /&gt;
&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
export PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Variablen stellen sicher, dass die BI-Jobs mit dem vorgesehenen Java (empfohlen: Java 17) ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Java-Optionen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;-Xmx1520M -Djava.awt.headless=true ... --add-opens ...&amp;quot;&lt;br /&gt;
export JAVA_OPTS&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pfade zur SuperX-BI-Installation====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
WEBAPP=/var/lib/tomcat10/webapps/superx&lt;br /&gt;
export WEBAPP&lt;br /&gt;
&lt;br /&gt;
SUPERX_DIR=$WEBAPP/WEB-INF/conf/edustore&lt;br /&gt;
export SUPERX_DIR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Pfade müssen an lokale Tomcat-Installation und SuperX-Verzeichnisstruktur angepasst werden.&lt;br /&gt;
&lt;br /&gt;
====Modulsteuerung====&lt;br /&gt;
Für die Update- und Upgrade-Skripte werden die zu bearbeitenden Module festgelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export BI_UPDATE_MODULES=&amp;quot;sos kenn zul&amp;quot;&lt;br /&gt;
export BI_UPGRADE_MODULES=&amp;quot;kenn&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis:  &lt;br /&gt;
Die Modulkürzel müssen klein geschrieben sein (z. B. &amp;lt;code&amp;gt;sos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kenn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zul&amp;lt;/code&amp;gt;) und mit Leerzeichen getrennt aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
====Logging====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LOGPFAD=$WEBAPP/WEB-INF/logs&lt;br /&gt;
export LOGPFAD&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Logpfad werden u. a. folgende Dateien erzeugt:&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_update.log&amp;lt;/code&amp;gt; – Sammellog des Updates&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_upgrade.log&amp;lt;/code&amp;gt; – Sammellog des Upgrades&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_update.log&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_upgrade.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Java-Batch-Jobs erzeugen ergänzende Logs in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailversand====&lt;br /&gt;
Folgende Variablen steuern Empfänger und Format der Benachrichtigungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export ERRORMAIL=&amp;quot;admin@hs.de&amp;quot;&lt;br /&gt;
export LOGMAIL=&amp;quot;$ERRORMAIL&amp;quot;&lt;br /&gt;
#export LOGMAIL=&amp;quot;admin@hs.de kollege@hs.de&amp;quot;   # mehrere Empfänger möglich&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ERRORMAIL&amp;lt;/code&amp;gt; – Empfänger für Fehlermails  &lt;br /&gt;
* &amp;lt;code&amp;gt;LOGMAIL&amp;lt;/code&amp;gt; – Empfänger für Erfolgs- und Statusmails  &lt;br /&gt;
Mehrere Adressen werden per Leerzeichen getrennt.&lt;br /&gt;
&lt;br /&gt;
Mailprogramm:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAILPROG=&amp;quot;s-nail --account=test1 -S ttycharset=utf-8 -S sendcharset=utf-8&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betreffzeilen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAIL_BETREFF_UPDATE=&amp;quot;BI Job Update&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_UPGRADE=&amp;quot;BI Job Upgrade&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_ERFOLGREICH=&amp;quot; - Erfolgreich&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_FEHLER=&amp;quot; - Fehler&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Datei:Kernmodul Regelbetrieb Mailversand.png|rand|links]]&lt;br /&gt;
&lt;br /&gt;
So könnten Die Mails aussehen.&lt;br /&gt;
&lt;br /&gt;
====Steuerung der Log-Anhänge====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# error  = Logs nur bei Fehlern anhängen&lt;br /&gt;
# always = Logs immer anhängen (Erfolg + Fehler)&lt;br /&gt;
export MAIL_ATTACH_LOGS_MODE=&amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Prüfung der Modul-Logs====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# true  = zusätzlich Modul-Log auf interne Fehler prüfen&lt;br /&gt;
# false = nur Exitcode des Java-Calls verwenden&lt;br /&gt;
export CHECK_JOBLOG_FOR_ERRORS=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gerade bei dem Java Aufruf von ComponentAdminCLI empfehlenswert, da dieser aktuell noch trotz &amp;lt;code&amp;gt;status: FAILED&amp;lt;/code&amp;gt; oft Exitcode 0 liefert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Updates=&lt;br /&gt;
&lt;br /&gt;
==modules_update.sh – Hauptskript==&lt;br /&gt;
Dieses Skript führt alle Module aus &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; nacheinander aus.&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
# Startcheck: Sind &amp;lt;code&amp;gt;WEBAPP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOGPFAD&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; gesetzt?&lt;br /&gt;
# Falls verfügbar: DB-Protokollierung via &amp;lt;code&amp;gt;DOQUERY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Für jedes Modul:&lt;br /&gt;
## Logdatei anlegen&lt;br /&gt;
## Start in &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt; protokollieren (update_id = -10000)&lt;br /&gt;
## Java-Update starten:  &lt;br /&gt;
   &amp;lt;code&amp;gt;ComponentAdminCLI -e &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## Optional: Modul-Logdatei nach internen Fehlern durchsuchen&lt;br /&gt;
## Erfolg:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;SUCCESS_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10000)&lt;br /&gt;
## Fehler:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;ERROR_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10001)&lt;br /&gt;
## Zuletzt: Java-Joblogs aus &amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt; ermitteln&lt;br /&gt;
&lt;br /&gt;
# Nach Abschluss aller Module:&lt;br /&gt;
## Erfolgs- oder Fehlermail versenden&lt;br /&gt;
## Anhänge abhängig von &amp;lt;code&amp;gt;MAIL_ATTACH_LOGS_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==modules_update_cron.sh – Wrapper für Cron==&lt;br /&gt;
Damit Updates regelmäßig durchgeführt werden können, existiert ein einfaches Wrapper-Skript.&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
&lt;br /&gt;
# Beispieldatei kopieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp modules_update_cron.sh.sam modules_update_cron.sh&lt;br /&gt;
chmod +x modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Pfade zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; und zum Update-Skript anpassen.&lt;br /&gt;
# Cronjob eintragen, z. B. werktags um 18 Uhr:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0 18 * * 1-5 /pfad/zu/modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhaltlich:&lt;br /&gt;
* Laden der &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;&lt;br /&gt;
* Start des Skripts &amp;lt;code&amp;gt;modules_update.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Upgrades=&lt;br /&gt;
&lt;br /&gt;
==modules_upgrade.sh – Hauptskript==&lt;br /&gt;
Das Upgrade-Skript entspricht dem Update-Skript, unterscheidet sich aber in folgenden Punkten:&lt;br /&gt;
&lt;br /&gt;
* Es wird **manuell** ausgeführt – kein Cronjob vorgesehen.&lt;br /&gt;
* Es verwendet &amp;lt;code&amp;gt;BI_UPGRADE_MODULES&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das eigentliche Upgrade erfolgt über:  &lt;br /&gt;
  &amp;lt;code&amp;gt;ComponentAdminCLI -u &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nach Abschluss des Upgrades erfolgt ein Mailversand analog zum Update-Skript.&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/lib/tomcat10/webapps/superx/WEB-INF/bin/BI-Maintenance/update&lt;br /&gt;
./modules_upgrade.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorher muss zu Beginn des Skripts der Pfad zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; eingetragen sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zur/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Modulverwaltung=&lt;br /&gt;
&lt;br /&gt;
==Modulkürzel==&lt;br /&gt;
Die folgenden Modulkürzel sind in einer typischen BI-Installation relevant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 kuerzel |                         name                          &lt;br /&gt;
---------+-------------------------------------------------------&lt;br /&gt;
 astat   | Amtliche Statistik                                &lt;br /&gt;
 bau     | Gebäude, Räume, Flächen                           &lt;br /&gt;
 cob     | Kostenrechnung                                    &lt;br /&gt;
 erfolg  | Studienverlauf                                    &lt;br /&gt;
 fin     | Finanzrechnung                                    &lt;br /&gt;
 gang    | Studiengänge                                      &lt;br /&gt;
 ivs     | Inventar                                          &lt;br /&gt;
 kenn    | Kennzahlen                                        &lt;br /&gt;
 kern    | Administration                                    &lt;br /&gt;
 lm      | Leistungsmonitoring                               &lt;br /&gt;
 man     | Management                                        &lt;br /&gt;
 prom    | Promovierende                                     &lt;br /&gt;
 res     | Forschung                                         &lt;br /&gt;
 sos     | Studierende, Prüfungen                            &lt;br /&gt;
 sva     | Personal, Stellen                                 &lt;br /&gt;
 zul     | Bewerbung, Zulassung                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die aktiven Module der eigenen Installation können mit folgendem SQL abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT V.his_system AS kuerzel,&lt;br /&gt;
       S.name&lt;br /&gt;
  FROM db_version V&lt;br /&gt;
  JOIN systeminfo S&lt;br /&gt;
    ON S.tid = V.systeminfo_id&lt;br /&gt;
 ORDER BY 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15479</id>
		<title>Kernmodul Regelbetrieb</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15479"/>
		<updated>2025-12-17T08:31:26Z</updated>

		<summary type="html">&lt;p&gt;Andrek: /* Mailversand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BI Maintenance=&lt;br /&gt;
&lt;br /&gt;
==Ziel und Überblick==&lt;br /&gt;
Die hier bereitgestellten Skripte ermöglichen es, in der BI-Umgebung von HISinOne und in Zukunft auch von SuperX (aktuell können die Scripte in SuperX leider noch nicht verwendet werden) Modul-Updates und -Upgrades zuverlässig über die Shell auszuführen – automatisiert per Cronjob oder manuell.  Sie orientieren sich bewusst am bisherigen Vorgehen aus SuperX, wurden jedoch erweitert:&lt;br /&gt;
&lt;br /&gt;
* Ausführung der BI-Modul-Updates/-Upgrades über Java (&#039;&#039;ComponentAdminCLI&#039;&#039;).&lt;br /&gt;
* Vollständige Protokollierung in Logdateien.&lt;br /&gt;
* Optional: Protokollierung der Läufe in der Tabelle &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Automatischer Mailversand über ein konfigurierbares Mailprogramm.&lt;br /&gt;
* Optional: Erkennen interner Fehler im Batch-Job (auch wenn Java Exitcode 0 liefert).&lt;br /&gt;
* Möglichkeit, Logdateien automatisch an Mails anzuhängen (erfolgreiche und fehlerhafte Module).&lt;br /&gt;
&lt;br /&gt;
==Installation aus dem git Repository==&lt;br /&gt;
&lt;br /&gt;
Führen Sie folgenden Shell-Befehl aus:&lt;br /&gt;
&lt;br /&gt;
 git clone https://git.campussource.de/git/SuperX/BI_Maintenance.git&lt;br /&gt;
&lt;br /&gt;
Die weitere Konfiguration wird im Folgenden beschrieben. Alle Einstellungen erfolgen zentral in der Datei &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;, die als Template &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
==Umgebungsvariablen in der BI_ENV==&lt;br /&gt;
&lt;br /&gt;
===BI_ENV.sam – Template und lokale BI_ENV===&lt;br /&gt;
Die Datei &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; wird als Muster ausgeliefert. &lt;br /&gt;
&lt;br /&gt;
Sie muss vor Ort:&lt;br /&gt;
&lt;br /&gt;
# in &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; kopiert/umbenannt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp BI_ENV.sam BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# an die lokalen Gegebenheiten angepasst werden (Pfade, Module, Mailadressen usw.).&lt;br /&gt;
# mit restriktiven Rechten versehen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 600 BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skripte binden diese Datei später mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zu/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bedeutung der Variablen===&lt;br /&gt;
Im Folgenden die wichtigsten Variablen, die angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
====Java-Konfiguration====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64&lt;br /&gt;
export JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
JRE_HOME=$JAVA_HOME&lt;br /&gt;
export JRE_HOME&lt;br /&gt;
&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
export PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Variablen stellen sicher, dass die BI-Jobs mit dem vorgesehenen Java (empfohlen: Java 17) ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Java-Optionen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;-Xmx1520M -Djava.awt.headless=true ... --add-opens ...&amp;quot;&lt;br /&gt;
export JAVA_OPTS&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pfade zur SuperX-BI-Installation====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
WEBAPP=/var/lib/tomcat10/webapps/superx&lt;br /&gt;
export WEBAPP&lt;br /&gt;
&lt;br /&gt;
SUPERX_DIR=$WEBAPP/WEB-INF/conf/edustore&lt;br /&gt;
export SUPERX_DIR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Pfade müssen an lokale Tomcat-Installation und SuperX-Verzeichnisstruktur angepasst werden.&lt;br /&gt;
&lt;br /&gt;
====Modulsteuerung====&lt;br /&gt;
Für die Update- und Upgrade-Skripte werden die zu bearbeitenden Module festgelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export BI_UPDATE_MODULES=&amp;quot;sos kenn zul&amp;quot;&lt;br /&gt;
export BI_UPGRADE_MODULES=&amp;quot;kenn&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis:  &lt;br /&gt;
Die Modulkürzel müssen klein geschrieben sein (z. B. &amp;lt;code&amp;gt;sos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kenn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zul&amp;lt;/code&amp;gt;) und mit Leerzeichen getrennt aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
====Logging====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LOGPFAD=$WEBAPP/WEB-INF/logs&lt;br /&gt;
export LOGPFAD&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Logpfad werden u. a. folgende Dateien erzeugt:&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_update.log&amp;lt;/code&amp;gt; – Sammellog des Updates&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_upgrade.log&amp;lt;/code&amp;gt; – Sammellog des Upgrades&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_update.log&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_upgrade.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Java-Batch-Jobs erzeugen ergänzende Logs in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailversand====&lt;br /&gt;
Folgende Variablen steuern Empfänger und Format der Benachrichtigungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export ERRORMAIL=&amp;quot;admin@hs.de&amp;quot;&lt;br /&gt;
export LOGMAIL=&amp;quot;$ERRORMAIL&amp;quot;&lt;br /&gt;
#export LOGMAIL=&amp;quot;admin@hs.de kollege@hs.de&amp;quot;   # mehrere Empfänger möglich&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ERRORMAIL&amp;lt;/code&amp;gt; – Empfänger für Fehlermails  &lt;br /&gt;
* &amp;lt;code&amp;gt;LOGMAIL&amp;lt;/code&amp;gt; – Empfänger für Erfolgs- und Statusmails  &lt;br /&gt;
Mehrere Adressen werden per Leerzeichen getrennt.&lt;br /&gt;
&lt;br /&gt;
Mailprogramm:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAILPROG=&amp;quot;s-nail --account=test1 -S ttycharset=utf-8 -S sendcharset=utf-8&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betreffzeilen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAIL_BETREFF_UPDATE=&amp;quot;BI Job Update&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_UPGRADE=&amp;quot;BI Job Upgrade&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_ERFOLGREICH=&amp;quot; - Erfolgreich&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_FEHLER=&amp;quot; - Fehler&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Datei:Kernmodul Regelbetrieb Mailversand.png|rand|links]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Steuerung der Log-Anhänge====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# error  = Logs nur bei Fehlern anhängen&lt;br /&gt;
# always = Logs immer anhängen (Erfolg + Fehler)&lt;br /&gt;
export MAIL_ATTACH_LOGS_MODE=&amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Prüfung der Modul-Logs====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# true  = zusätzlich Modul-Log auf interne Fehler prüfen&lt;br /&gt;
# false = nur Exitcode des Java-Calls verwenden&lt;br /&gt;
export CHECK_JOBLOG_FOR_ERRORS=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gerade bei dem Java Aufruf von ComponentAdminCLI empfehlenswert, da dieser aktuell noch trotz &amp;lt;code&amp;gt;status: FAILED&amp;lt;/code&amp;gt; oft Exitcode 0 liefert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Updates=&lt;br /&gt;
&lt;br /&gt;
==modules_update.sh – Hauptskript==&lt;br /&gt;
Dieses Skript führt alle Module aus &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; nacheinander aus.&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
# Startcheck: Sind &amp;lt;code&amp;gt;WEBAPP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOGPFAD&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; gesetzt?&lt;br /&gt;
# Falls verfügbar: DB-Protokollierung via &amp;lt;code&amp;gt;DOQUERY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Für jedes Modul:&lt;br /&gt;
## Logdatei anlegen&lt;br /&gt;
## Start in &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt; protokollieren (update_id = -10000)&lt;br /&gt;
## Java-Update starten:  &lt;br /&gt;
   &amp;lt;code&amp;gt;ComponentAdminCLI -e &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## Optional: Modul-Logdatei nach internen Fehlern durchsuchen&lt;br /&gt;
## Erfolg:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;SUCCESS_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10000)&lt;br /&gt;
## Fehler:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;ERROR_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10001)&lt;br /&gt;
## Zuletzt: Java-Joblogs aus &amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt; ermitteln&lt;br /&gt;
&lt;br /&gt;
# Nach Abschluss aller Module:&lt;br /&gt;
## Erfolgs- oder Fehlermail versenden&lt;br /&gt;
## Anhänge abhängig von &amp;lt;code&amp;gt;MAIL_ATTACH_LOGS_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==modules_update_cron.sh – Wrapper für Cron==&lt;br /&gt;
Damit Updates regelmäßig durchgeführt werden können, existiert ein einfaches Wrapper-Skript.&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
&lt;br /&gt;
# Beispieldatei kopieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp modules_update_cron.sh.sam modules_update_cron.sh&lt;br /&gt;
chmod +x modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Pfade zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; und zum Update-Skript anpassen.&lt;br /&gt;
# Cronjob eintragen, z. B. werktags um 18 Uhr:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0 18 * * 1-5 /pfad/zu/modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhaltlich:&lt;br /&gt;
* Laden der &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;&lt;br /&gt;
* Start des Skripts &amp;lt;code&amp;gt;modules_update.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Upgrades=&lt;br /&gt;
&lt;br /&gt;
==modules_upgrade.sh – Hauptskript==&lt;br /&gt;
Das Upgrade-Skript entspricht dem Update-Skript, unterscheidet sich aber in folgenden Punkten:&lt;br /&gt;
&lt;br /&gt;
* Es wird **manuell** ausgeführt – kein Cronjob vorgesehen.&lt;br /&gt;
* Es verwendet &amp;lt;code&amp;gt;BI_UPGRADE_MODULES&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das eigentliche Upgrade erfolgt über:  &lt;br /&gt;
  &amp;lt;code&amp;gt;ComponentAdminCLI -u &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nach Abschluss des Upgrades erfolgt ein Mailversand analog zum Update-Skript.&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/lib/tomcat10/webapps/superx/WEB-INF/bin/BI-Maintenance/update&lt;br /&gt;
./modules_upgrade.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorher muss zu Beginn des Skripts der Pfad zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; eingetragen sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zur/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Modulverwaltung=&lt;br /&gt;
&lt;br /&gt;
==Modulkürzel==&lt;br /&gt;
Die folgenden Modulkürzel sind in einer typischen BI-Installation relevant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 kuerzel |                         name                          &lt;br /&gt;
---------+-------------------------------------------------------&lt;br /&gt;
 astat   | Amtliche Statistik                                &lt;br /&gt;
 bau     | Gebäude, Räume, Flächen                           &lt;br /&gt;
 cob     | Kostenrechnung                                    &lt;br /&gt;
 erfolg  | Studienverlauf                                    &lt;br /&gt;
 fin     | Finanzrechnung                                    &lt;br /&gt;
 gang    | Studiengänge                                      &lt;br /&gt;
 ivs     | Inventar                                          &lt;br /&gt;
 kenn    | Kennzahlen                                        &lt;br /&gt;
 kern    | Administration                                    &lt;br /&gt;
 lm      | Leistungsmonitoring                               &lt;br /&gt;
 man     | Management                                        &lt;br /&gt;
 prom    | Promovierende                                     &lt;br /&gt;
 res     | Forschung                                         &lt;br /&gt;
 sos     | Studierende, Prüfungen                            &lt;br /&gt;
 sva     | Personal, Stellen                                 &lt;br /&gt;
 zul     | Bewerbung, Zulassung                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die aktiven Module der eigenen Installation können mit folgendem SQL abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT V.his_system AS kuerzel,&lt;br /&gt;
       S.name&lt;br /&gt;
  FROM db_version V&lt;br /&gt;
  JOIN systeminfo S&lt;br /&gt;
    ON S.tid = V.systeminfo_id&lt;br /&gt;
 ORDER BY 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15478</id>
		<title>Kernmodul Regelbetrieb</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15478"/>
		<updated>2025-12-17T08:30:09Z</updated>

		<summary type="html">&lt;p&gt;Andrek: /* Mailversand */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BI Maintenance=&lt;br /&gt;
&lt;br /&gt;
==Ziel und Überblick==&lt;br /&gt;
Die hier bereitgestellten Skripte ermöglichen es, in der BI-Umgebung von HISinOne und in Zukunft auch von SuperX (aktuell können die Scripte in SuperX leider noch nicht verwendet werden) Modul-Updates und -Upgrades zuverlässig über die Shell auszuführen – automatisiert per Cronjob oder manuell.  Sie orientieren sich bewusst am bisherigen Vorgehen aus SuperX, wurden jedoch erweitert:&lt;br /&gt;
&lt;br /&gt;
* Ausführung der BI-Modul-Updates/-Upgrades über Java (&#039;&#039;ComponentAdminCLI&#039;&#039;).&lt;br /&gt;
* Vollständige Protokollierung in Logdateien.&lt;br /&gt;
* Optional: Protokollierung der Läufe in der Tabelle &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Automatischer Mailversand über ein konfigurierbares Mailprogramm.&lt;br /&gt;
* Optional: Erkennen interner Fehler im Batch-Job (auch wenn Java Exitcode 0 liefert).&lt;br /&gt;
* Möglichkeit, Logdateien automatisch an Mails anzuhängen (erfolgreiche und fehlerhafte Module).&lt;br /&gt;
&lt;br /&gt;
==Installation aus dem git Repository==&lt;br /&gt;
&lt;br /&gt;
Führen Sie folgenden Shell-Befehl aus:&lt;br /&gt;
&lt;br /&gt;
 git clone https://git.campussource.de/git/SuperX/BI_Maintenance.git&lt;br /&gt;
&lt;br /&gt;
Die weitere Konfiguration wird im Folgenden beschrieben. Alle Einstellungen erfolgen zentral in der Datei &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;, die als Template &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
==Umgebungsvariablen in der BI_ENV==&lt;br /&gt;
&lt;br /&gt;
===BI_ENV.sam – Template und lokale BI_ENV===&lt;br /&gt;
Die Datei &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; wird als Muster ausgeliefert. &lt;br /&gt;
&lt;br /&gt;
Sie muss vor Ort:&lt;br /&gt;
&lt;br /&gt;
# in &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; kopiert/umbenannt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp BI_ENV.sam BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# an die lokalen Gegebenheiten angepasst werden (Pfade, Module, Mailadressen usw.).&lt;br /&gt;
# mit restriktiven Rechten versehen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 600 BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skripte binden diese Datei später mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zu/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bedeutung der Variablen===&lt;br /&gt;
Im Folgenden die wichtigsten Variablen, die angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
====Java-Konfiguration====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64&lt;br /&gt;
export JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
JRE_HOME=$JAVA_HOME&lt;br /&gt;
export JRE_HOME&lt;br /&gt;
&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
export PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Variablen stellen sicher, dass die BI-Jobs mit dem vorgesehenen Java (empfohlen: Java 17) ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Java-Optionen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;-Xmx1520M -Djava.awt.headless=true ... --add-opens ...&amp;quot;&lt;br /&gt;
export JAVA_OPTS&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pfade zur SuperX-BI-Installation====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
WEBAPP=/var/lib/tomcat10/webapps/superx&lt;br /&gt;
export WEBAPP&lt;br /&gt;
&lt;br /&gt;
SUPERX_DIR=$WEBAPP/WEB-INF/conf/edustore&lt;br /&gt;
export SUPERX_DIR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Pfade müssen an lokale Tomcat-Installation und SuperX-Verzeichnisstruktur angepasst werden.&lt;br /&gt;
&lt;br /&gt;
====Modulsteuerung====&lt;br /&gt;
Für die Update- und Upgrade-Skripte werden die zu bearbeitenden Module festgelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export BI_UPDATE_MODULES=&amp;quot;sos kenn zul&amp;quot;&lt;br /&gt;
export BI_UPGRADE_MODULES=&amp;quot;kenn&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis:  &lt;br /&gt;
Die Modulkürzel müssen klein geschrieben sein (z. B. &amp;lt;code&amp;gt;sos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kenn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zul&amp;lt;/code&amp;gt;) und mit Leerzeichen getrennt aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
====Logging====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LOGPFAD=$WEBAPP/WEB-INF/logs&lt;br /&gt;
export LOGPFAD&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Logpfad werden u. a. folgende Dateien erzeugt:&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_update.log&amp;lt;/code&amp;gt; – Sammellog des Updates&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_upgrade.log&amp;lt;/code&amp;gt; – Sammellog des Upgrades&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_update.log&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_upgrade.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Java-Batch-Jobs erzeugen ergänzende Logs in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailversand====&lt;br /&gt;
Folgende Variablen steuern Empfänger und Format der Benachrichtigungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export ERRORMAIL=&amp;quot;admin@hs.de&amp;quot;&lt;br /&gt;
export LOGMAIL=&amp;quot;$ERRORMAIL&amp;quot;&lt;br /&gt;
#export LOGMAIL=&amp;quot;admin@hs.de kollege@hs.de&amp;quot;   # mehrere Empfänger möglich&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ERRORMAIL&amp;lt;/code&amp;gt; – Empfänger für Fehlermails  &lt;br /&gt;
* &amp;lt;code&amp;gt;LOGMAIL&amp;lt;/code&amp;gt; – Empfänger für Erfolgs- und Statusmails  &lt;br /&gt;
Mehrere Adressen werden per Leerzeichen getrennt.&lt;br /&gt;
&lt;br /&gt;
Mailprogramm:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAILPROG=&amp;quot;s-nail --account=test1 -S ttycharset=utf-8 -S sendcharset=utf-8&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betreffzeilen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAIL_BETREFF_UPDATE=&amp;quot;BI Job Update&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_UPGRADE=&amp;quot;BI Job Upgrade&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_ERFOLGREICH=&amp;quot; - Erfolgreich&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_FEHLER=&amp;quot; - Fehler&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Datei:Kernmodul Regelbetrieb Mailversand.png|rand|links]]&lt;br /&gt;
&lt;br /&gt;
====Steuerung der Log-Anhänge====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# error  = Logs nur bei Fehlern anhängen&lt;br /&gt;
# always = Logs immer anhängen (Erfolg + Fehler)&lt;br /&gt;
export MAIL_ATTACH_LOGS_MODE=&amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Prüfung der Modul-Logs====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# true  = zusätzlich Modul-Log auf interne Fehler prüfen&lt;br /&gt;
# false = nur Exitcode des Java-Calls verwenden&lt;br /&gt;
export CHECK_JOBLOG_FOR_ERRORS=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gerade bei dem Java Aufruf von ComponentAdminCLI empfehlenswert, da dieser aktuell noch trotz &amp;lt;code&amp;gt;status: FAILED&amp;lt;/code&amp;gt; oft Exitcode 0 liefert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Updates=&lt;br /&gt;
&lt;br /&gt;
==modules_update.sh – Hauptskript==&lt;br /&gt;
Dieses Skript führt alle Module aus &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; nacheinander aus.&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
# Startcheck: Sind &amp;lt;code&amp;gt;WEBAPP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOGPFAD&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; gesetzt?&lt;br /&gt;
# Falls verfügbar: DB-Protokollierung via &amp;lt;code&amp;gt;DOQUERY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Für jedes Modul:&lt;br /&gt;
## Logdatei anlegen&lt;br /&gt;
## Start in &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt; protokollieren (update_id = -10000)&lt;br /&gt;
## Java-Update starten:  &lt;br /&gt;
   &amp;lt;code&amp;gt;ComponentAdminCLI -e &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## Optional: Modul-Logdatei nach internen Fehlern durchsuchen&lt;br /&gt;
## Erfolg:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;SUCCESS_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10000)&lt;br /&gt;
## Fehler:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;ERROR_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10001)&lt;br /&gt;
## Zuletzt: Java-Joblogs aus &amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt; ermitteln&lt;br /&gt;
&lt;br /&gt;
# Nach Abschluss aller Module:&lt;br /&gt;
## Erfolgs- oder Fehlermail versenden&lt;br /&gt;
## Anhänge abhängig von &amp;lt;code&amp;gt;MAIL_ATTACH_LOGS_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==modules_update_cron.sh – Wrapper für Cron==&lt;br /&gt;
Damit Updates regelmäßig durchgeführt werden können, existiert ein einfaches Wrapper-Skript.&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
&lt;br /&gt;
# Beispieldatei kopieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp modules_update_cron.sh.sam modules_update_cron.sh&lt;br /&gt;
chmod +x modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Pfade zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; und zum Update-Skript anpassen.&lt;br /&gt;
# Cronjob eintragen, z. B. werktags um 18 Uhr:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0 18 * * 1-5 /pfad/zu/modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhaltlich:&lt;br /&gt;
* Laden der &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;&lt;br /&gt;
* Start des Skripts &amp;lt;code&amp;gt;modules_update.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Upgrades=&lt;br /&gt;
&lt;br /&gt;
==modules_upgrade.sh – Hauptskript==&lt;br /&gt;
Das Upgrade-Skript entspricht dem Update-Skript, unterscheidet sich aber in folgenden Punkten:&lt;br /&gt;
&lt;br /&gt;
* Es wird **manuell** ausgeführt – kein Cronjob vorgesehen.&lt;br /&gt;
* Es verwendet &amp;lt;code&amp;gt;BI_UPGRADE_MODULES&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das eigentliche Upgrade erfolgt über:  &lt;br /&gt;
  &amp;lt;code&amp;gt;ComponentAdminCLI -u &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nach Abschluss des Upgrades erfolgt ein Mailversand analog zum Update-Skript.&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/lib/tomcat10/webapps/superx/WEB-INF/bin/BI-Maintenance/update&lt;br /&gt;
./modules_upgrade.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorher muss zu Beginn des Skripts der Pfad zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; eingetragen sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zur/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Modulverwaltung=&lt;br /&gt;
&lt;br /&gt;
==Modulkürzel==&lt;br /&gt;
Die folgenden Modulkürzel sind in einer typischen BI-Installation relevant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 kuerzel |                         name                          &lt;br /&gt;
---------+-------------------------------------------------------&lt;br /&gt;
 astat   | Amtliche Statistik                                &lt;br /&gt;
 bau     | Gebäude, Räume, Flächen                           &lt;br /&gt;
 cob     | Kostenrechnung                                    &lt;br /&gt;
 erfolg  | Studienverlauf                                    &lt;br /&gt;
 fin     | Finanzrechnung                                    &lt;br /&gt;
 gang    | Studiengänge                                      &lt;br /&gt;
 ivs     | Inventar                                          &lt;br /&gt;
 kenn    | Kennzahlen                                        &lt;br /&gt;
 kern    | Administration                                    &lt;br /&gt;
 lm      | Leistungsmonitoring                               &lt;br /&gt;
 man     | Management                                        &lt;br /&gt;
 prom    | Promovierende                                     &lt;br /&gt;
 res     | Forschung                                         &lt;br /&gt;
 sos     | Studierende, Prüfungen                            &lt;br /&gt;
 sva     | Personal, Stellen                                 &lt;br /&gt;
 zul     | Bewerbung, Zulassung                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die aktiven Module der eigenen Installation können mit folgendem SQL abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT V.his_system AS kuerzel,&lt;br /&gt;
       S.name&lt;br /&gt;
  FROM db_version V&lt;br /&gt;
  JOIN systeminfo S&lt;br /&gt;
    ON S.tid = V.systeminfo_id&lt;br /&gt;
 ORDER BY 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Datei:Kernmodul_Regelbetrieb_Mailversand.png&amp;diff=15475</id>
		<title>Datei:Kernmodul Regelbetrieb Mailversand.png</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Datei:Kernmodul_Regelbetrieb_Mailversand.png&amp;diff=15475"/>
		<updated>2025-12-17T08:26:50Z</updated>

		<summary type="html">&lt;p&gt;Andrek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15471</id>
		<title>Kernmodul Regelbetrieb</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15471"/>
		<updated>2025-12-16T12:26:43Z</updated>

		<summary type="html">&lt;p&gt;Andrek: /* Ziel und Überblick */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BI Maintenance=&lt;br /&gt;
&lt;br /&gt;
==Ziel und Überblick==&lt;br /&gt;
Die hier bereitgestellten Skripte ermöglichen es, in der BI-Umgebung von HISinOne und in Zukunft auch von SuperX (aktuell können die Scripte in SuperX leider noch nicht verwendet werden) Modul-Updates und -Upgrades zuverlässig über die Shell auszuführen – automatisiert per Cronjob oder manuell.  Sie orientieren sich bewusst am bisherigen Vorgehen aus SuperX, wurden jedoch erweitert:&lt;br /&gt;
&lt;br /&gt;
* Ausführung der BI-Modul-Updates/-Upgrades über Java (&#039;&#039;ComponentAdminCLI&#039;&#039;).&lt;br /&gt;
* Vollständige Protokollierung in Logdateien.&lt;br /&gt;
* Optional: Protokollierung der Läufe in der Tabelle &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Automatischer Mailversand über ein konfigurierbares Mailprogramm.&lt;br /&gt;
* Optional: Erkennen interner Fehler im Batch-Job (auch wenn Java Exitcode 0 liefert).&lt;br /&gt;
* Möglichkeit, Logdateien automatisch an Mails anzuhängen (erfolgreiche und fehlerhafte Module).&lt;br /&gt;
&lt;br /&gt;
Alle Einstellungen erfolgen zentral in der Datei &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;, die als Template &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Umgebungsvariablen in der BI_ENV==&lt;br /&gt;
&lt;br /&gt;
===BI_ENV.sam – Template und lokale BI_ENV===&lt;br /&gt;
Die Datei &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; wird als Muster ausgeliefert. &lt;br /&gt;
&lt;br /&gt;
Sie muss vor Ort:&lt;br /&gt;
&lt;br /&gt;
# in &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; kopiert/umbenannt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp BI_ENV.sam BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# an die lokalen Gegebenheiten angepasst werden (Pfade, Module, Mailadressen usw.).&lt;br /&gt;
# mit restriktiven Rechten versehen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 600 BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skripte binden diese Datei später mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zu/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bedeutung der Variablen===&lt;br /&gt;
Im Folgenden die wichtigsten Variablen, die angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
====Java-Konfiguration====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64&lt;br /&gt;
export JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
JRE_HOME=$JAVA_HOME&lt;br /&gt;
export JRE_HOME&lt;br /&gt;
&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
export PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Variablen stellen sicher, dass die BI-Jobs mit dem vorgesehenen Java (empfohlen: Java 17) ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Java-Optionen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;-Xmx1520M -Djava.awt.headless=true ... --add-opens ...&amp;quot;&lt;br /&gt;
export JAVA_OPTS&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pfade zur SuperX-BI-Installation====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
WEBAPP=/var/lib/tomcat10/webapps/superx&lt;br /&gt;
export WEBAPP&lt;br /&gt;
&lt;br /&gt;
SUPERX_DIR=$WEBAPP/WEB-INF/conf/edustore&lt;br /&gt;
export SUPERX_DIR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Pfade müssen an lokale Tomcat-Installation und SuperX-Verzeichnisstruktur angepasst werden.&lt;br /&gt;
&lt;br /&gt;
====Modulsteuerung====&lt;br /&gt;
Für die Update- und Upgrade-Skripte werden die zu bearbeitenden Module festgelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export BI_UPDATE_MODULES=&amp;quot;sos kenn zul&amp;quot;&lt;br /&gt;
export BI_UPGRADE_MODULES=&amp;quot;kenn&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis:  &lt;br /&gt;
Die Modulkürzel müssen klein geschrieben sein (z. B. &amp;lt;code&amp;gt;sos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kenn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zul&amp;lt;/code&amp;gt;) und mit Leerzeichen getrennt aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
====Logging====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LOGPFAD=$WEBAPP/WEB-INF/logs&lt;br /&gt;
export LOGPFAD&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Logpfad werden u. a. folgende Dateien erzeugt:&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_update.log&amp;lt;/code&amp;gt; – Sammellog des Updates&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_upgrade.log&amp;lt;/code&amp;gt; – Sammellog des Upgrades&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_update.log&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_upgrade.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Java-Batch-Jobs erzeugen ergänzende Logs in:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailversand====&lt;br /&gt;
Folgende Variablen steuern Empfänger und Format der Benachrichtigungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export ERRORMAIL=&amp;quot;admin@hs.de&amp;quot;&lt;br /&gt;
export LOGMAIL=&amp;quot;$ERRORMAIL&amp;quot;&lt;br /&gt;
#export LOGMAIL=&amp;quot;admin@hs.de kollege@hs.de&amp;quot;   # mehrere Empfänger möglich&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ERRORMAIL&amp;lt;/code&amp;gt; – Empfänger für Fehlermails  &lt;br /&gt;
* &amp;lt;code&amp;gt;LOGMAIL&amp;lt;/code&amp;gt; – Empfänger für Erfolgs- und Statusmails  &lt;br /&gt;
Mehrere Adressen werden per Leerzeichen getrennt.&lt;br /&gt;
&lt;br /&gt;
Mailprogramm:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAILPROG=&amp;quot;s-nail --account=test1 -S ttycharset=utf-8 -S sendcharset=utf-8&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betreffzeilen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAIL_BETREFF_UPDATE=&amp;quot;BI Job Update&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_UPGRADE=&amp;quot;BI Job Upgrade&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_ERFOLGREICH=&amp;quot; - Erfolgreich&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_FEHLER=&amp;quot; - Fehler&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Steuerung der Log-Anhänge====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# error  = Logs nur bei Fehlern anhängen&lt;br /&gt;
# always = Logs immer anhängen (Erfolg + Fehler)&lt;br /&gt;
export MAIL_ATTACH_LOGS_MODE=&amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Prüfung der Modul-Logs====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# true  = zusätzlich Modul-Log auf interne Fehler prüfen&lt;br /&gt;
# false = nur Exitcode des Java-Calls verwenden&lt;br /&gt;
export CHECK_JOBLOG_FOR_ERRORS=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gerade bei dem Java Aufruf von ComponentAdminCLI empfehlenswert, da dieser aktuell noch trotz &amp;lt;code&amp;gt;status: FAILED&amp;lt;/code&amp;gt; oft Exitcode 0 liefert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Updates=&lt;br /&gt;
&lt;br /&gt;
==modules_update.sh – Hauptskript==&lt;br /&gt;
Dieses Skript führt alle Module aus &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; nacheinander aus.&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
# Startcheck: Sind &amp;lt;code&amp;gt;WEBAPP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOGPFAD&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; gesetzt?&lt;br /&gt;
# Falls verfügbar: DB-Protokollierung via &amp;lt;code&amp;gt;DOQUERY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Für jedes Modul:&lt;br /&gt;
## Logdatei anlegen&lt;br /&gt;
## Start in &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt; protokollieren (update_id = -10000)&lt;br /&gt;
## Java-Update starten:  &lt;br /&gt;
   &amp;lt;code&amp;gt;ComponentAdminCLI -e &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## Optional: Modul-Logdatei nach internen Fehlern durchsuchen&lt;br /&gt;
## Erfolg:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;SUCCESS_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10000)&lt;br /&gt;
## Fehler:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;ERROR_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10001)&lt;br /&gt;
## Zuletzt: Java-Joblogs aus &amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt; ermitteln&lt;br /&gt;
&lt;br /&gt;
# Nach Abschluss aller Module:&lt;br /&gt;
## Erfolgs- oder Fehlermail versenden&lt;br /&gt;
## Anhänge abhängig von &amp;lt;code&amp;gt;MAIL_ATTACH_LOGS_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==modules_update_cron.sh – Wrapper für Cron==&lt;br /&gt;
Damit Updates regelmäßig durchgeführt werden können, existiert ein einfaches Wrapper-Skript.&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
&lt;br /&gt;
# Beispieldatei kopieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp modules_update_cron.sh.sam modules_update_cron.sh&lt;br /&gt;
chmod +x modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Pfade zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; und zum Update-Skript anpassen.&lt;br /&gt;
# Cronjob eintragen, z. B. werktags um 18 Uhr:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0 18 * * 1-5 /pfad/zu/modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhaltlich:&lt;br /&gt;
* Laden der &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;&lt;br /&gt;
* Start des Skripts &amp;lt;code&amp;gt;modules_update.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Upgrades=&lt;br /&gt;
&lt;br /&gt;
==modules_upgrade.sh – Hauptskript==&lt;br /&gt;
Das Upgrade-Skript entspricht dem Update-Skript, unterscheidet sich aber in folgenden Punkten:&lt;br /&gt;
&lt;br /&gt;
* Es wird **manuell** ausgeführt – kein Cronjob vorgesehen.&lt;br /&gt;
* Es verwendet &amp;lt;code&amp;gt;BI_UPGRADE_MODULES&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das eigentliche Upgrade erfolgt über:  &lt;br /&gt;
  &amp;lt;code&amp;gt;ComponentAdminCLI -u &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nach Abschluss des Upgrades erfolgt ein Mailversand analog zum Update-Skript.&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/lib/tomcat10/webapps/superx/WEB-INF/bin/BI-Maintenance/update&lt;br /&gt;
./modules_upgrade.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorher muss zu Beginn des Skripts der Pfad zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; eingetragen sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zur/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Modulverwaltung=&lt;br /&gt;
&lt;br /&gt;
==Modulkürzel==&lt;br /&gt;
Die folgenden Modulkürzel sind in einer typischen BI-Installation relevant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 kuerzel |                         name                          &lt;br /&gt;
---------+-------------------------------------------------------&lt;br /&gt;
 astat   | Amtliche Statistik                                &lt;br /&gt;
 bau     | Gebäude, Räume, Flächen                           &lt;br /&gt;
 cob     | Kostenrechnung                                    &lt;br /&gt;
 erfolg  | Studienverlauf                                    &lt;br /&gt;
 fin     | Finanzrechnung                                    &lt;br /&gt;
 gang    | Studiengänge                                      &lt;br /&gt;
 ivs     | Inventar                                          &lt;br /&gt;
 kenn    | Kennzahlen                                        &lt;br /&gt;
 kern    | Administration                                    &lt;br /&gt;
 lm      | Leistungsmonitoring                               &lt;br /&gt;
 man     | Management                                        &lt;br /&gt;
 prom    | Promovierende                                     &lt;br /&gt;
 res     | Forschung                                         &lt;br /&gt;
 sos     | Studierende, Prüfungen                            &lt;br /&gt;
 sva     | Personal, Stellen                                 &lt;br /&gt;
 zul     | Bewerbung, Zulassung                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die aktiven Module der eigenen Installation können mit folgendem SQL abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT V.his_system AS kuerzel,&lt;br /&gt;
       S.name&lt;br /&gt;
  FROM db_version V&lt;br /&gt;
  JOIN systeminfo S&lt;br /&gt;
    ON S.tid = V.systeminfo_id&lt;br /&gt;
 ORDER BY 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15470</id>
		<title>Kernmodul Regelbetrieb</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Kernmodul_Regelbetrieb&amp;diff=15470"/>
		<updated>2025-12-15T12:51:39Z</updated>

		<summary type="html">&lt;p&gt;Andrek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=BI Maintenance=&lt;br /&gt;
&lt;br /&gt;
==Ziel und Überblick==&lt;br /&gt;
Die hier bereitgestellten Skripte ermöglichen es, in der BI-Umgebung von SuperX/HISinOne Modul-Updates und -Upgrades weiterhin zuverlässig über die Shell auszuführen – automatisiert per Cronjob oder manuell.  &lt;br /&gt;
Sie orientieren sich bewusst am bisherigen Vorgehen aus SuperX, wurden jedoch erweitert:&lt;br /&gt;
&lt;br /&gt;
* Ausführung der BI-Modul-Updates/-Upgrades über Java (&#039;&#039;ComponentAdminCLI&#039;&#039;).&lt;br /&gt;
* Vollständige Protokollierung in Logdateien.&lt;br /&gt;
* Optional: Protokollierung der Läufe in der Tabelle &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Automatischer Mailversand über ein konfigurierbares Mailprogramm.&lt;br /&gt;
* Optional: Erkennen interner Fehler im Batch-Job (auch wenn Java Exitcode 0 liefert).&lt;br /&gt;
* Möglichkeit, Logdateien automatisch an Mails anzuhängen (erfolgreiche und fehlerhafte Module).&lt;br /&gt;
&lt;br /&gt;
Alle Einstellungen erfolgen zentral in der Datei &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;, die als Template &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; ausgeliefert wird.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
==Umgebungsvariablen in der BI_ENV==&lt;br /&gt;
&lt;br /&gt;
===BI_ENV.sam – Template und lokale BI_ENV===&lt;br /&gt;
Die Datei &amp;lt;code&amp;gt;BI_ENV.sam&amp;lt;/code&amp;gt; wird als Muster ausgeliefert.  &lt;br /&gt;
Sie muss vor Ort:&lt;br /&gt;
&lt;br /&gt;
# in &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; kopiert/umbenannt werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp BI_ENV.sam BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# an die lokalen Gegebenheiten angepasst werden (Pfade, Module, Mailadressen usw.).&lt;br /&gt;
# mit restriktiven Rechten versehen werden:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
chmod 600 BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Skripte binden diese Datei später mit&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zu/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ein.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Bedeutung der Variablen===&lt;br /&gt;
Im Folgenden die wichtigsten Variablen, die angepasst werden müssen.&lt;br /&gt;
&lt;br /&gt;
====Java-Konfiguration====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64&lt;br /&gt;
export JAVA_HOME&lt;br /&gt;
&lt;br /&gt;
JRE_HOME=$JAVA_HOME&lt;br /&gt;
export JRE_HOME&lt;br /&gt;
&lt;br /&gt;
PATH=$JAVA_HOME/bin:$PATH&lt;br /&gt;
export PATH&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Variablen stellen sicher, dass die BI-Jobs mit dem vorgesehenen Java (empfohlen: Java 17) ausgeführt werden.&lt;br /&gt;
&lt;br /&gt;
Java-Optionen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
JAVA_OPTS=&amp;quot;-Xmx1520M -Djava.awt.headless=true ... --add-opens ...&amp;quot;&lt;br /&gt;
export JAVA_OPTS&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Pfade zur SuperX-BI-Installation====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
WEBAPP=/var/lib/tomcat10/webapps/superx&lt;br /&gt;
export WEBAPP&lt;br /&gt;
&lt;br /&gt;
SUPERX_DIR=$WEBAPP/WEB-INF/conf/edustore&lt;br /&gt;
export SUPERX_DIR&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Diese Pfade müssen an lokale Tomcat-Installation und SuperX-Verzeichnisstruktur angepasst werden.&lt;br /&gt;
&lt;br /&gt;
====Modulsteuerung====&lt;br /&gt;
Für die Update- und Upgrade-Skripte werden die zu bearbeitenden Module festgelegt:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export BI_UPDATE_MODULES=&amp;quot;sos kenn zul&amp;quot;&lt;br /&gt;
export BI_UPGRADE_MODULES=&amp;quot;kenn&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Hinweis:  &lt;br /&gt;
Die Modulkürzel müssen klein geschrieben sein (z. B. &amp;lt;code&amp;gt;sos&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;kenn&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;zul&amp;lt;/code&amp;gt;) und mit Leerzeichen getrennt aufgelistet werden.&lt;br /&gt;
&lt;br /&gt;
====Logging====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
LOGPFAD=$WEBAPP/WEB-INF/logs&lt;br /&gt;
export LOGPFAD&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Im Logpfad werden u. a. folgende Dateien erzeugt:&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_update.log&amp;lt;/code&amp;gt; – Sammellog des Updates&lt;br /&gt;
* &amp;lt;code&amp;gt;bi_upgrade.log&amp;lt;/code&amp;gt; – Sammellog des Upgrades&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_update.log&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;lt;modul&amp;amp;gt;_upgrade.log&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Java-Batch-Jobs erzeugen ergänzende Logs in:&lt;br /&gt;
&amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Mailversand====&lt;br /&gt;
Folgende Variablen steuern Empfänger und Format der Benachrichtigungen:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export ERRORMAIL=&amp;quot;admin@hs.de&amp;quot;&lt;br /&gt;
export LOGMAIL=&amp;quot;$ERRORMAIL&amp;quot;&lt;br /&gt;
#export LOGMAIL=&amp;quot;admin@hs.de kollege@hs.de&amp;quot;   # mehrere Empfänger möglich&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;ERRORMAIL&amp;lt;/code&amp;gt; – Empfänger für Fehlermails  &lt;br /&gt;
* &amp;lt;code&amp;gt;LOGMAIL&amp;lt;/code&amp;gt; – Empfänger für Erfolgs- und Statusmails  &lt;br /&gt;
Mehrere Adressen werden per Leerzeichen getrennt.&lt;br /&gt;
&lt;br /&gt;
Mailprogramm:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAILPROG=&amp;quot;s-nail --account=test1 -S ttycharset=utf-8 -S sendcharset=utf-8&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Betreffzeilen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export MAIL_BETREFF_UPDATE=&amp;quot;BI Job Update&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_UPGRADE=&amp;quot;BI Job Upgrade&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_ERFOLGREICH=&amp;quot; - Erfolgreich&amp;quot;&lt;br /&gt;
export MAIL_BETREFF_SUFFIX_FEHLER=&amp;quot; - Fehler&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Steuerung der Log-Anhänge====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# error  = Logs nur bei Fehlern anhängen&lt;br /&gt;
# always = Logs immer anhängen (Erfolg + Fehler)&lt;br /&gt;
export MAIL_ATTACH_LOGS_MODE=&amp;quot;error&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Optionale Prüfung der Modul-Logs====&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# true  = zusätzlich Modul-Log auf interne Fehler prüfen&lt;br /&gt;
# false = nur Exitcode des Java-Calls verwenden&lt;br /&gt;
export CHECK_JOBLOG_FOR_ERRORS=&amp;quot;true&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Gerade bei dem Java Aufruf von ComponentAdminCLI empfehlenswert, da dieser aktuell noch trotz &amp;lt;code&amp;gt;status: FAILED&amp;lt;/code&amp;gt; oft Exitcode 0 liefert.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Updates=&lt;br /&gt;
&lt;br /&gt;
==modules_update.sh – Hauptskript==&lt;br /&gt;
Dieses Skript führt alle Module aus &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; nacheinander aus.&lt;br /&gt;
&lt;br /&gt;
Ablauf:&lt;br /&gt;
&lt;br /&gt;
# Startcheck: Sind &amp;lt;code&amp;gt;WEBAPP&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;LOGPFAD&amp;lt;/code&amp;gt; und &amp;lt;code&amp;gt;BI_UPDATE_MODULES&amp;lt;/code&amp;gt; gesetzt?&lt;br /&gt;
# Falls verfügbar: DB-Protokollierung via &amp;lt;code&amp;gt;DOQUERY&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Für jedes Modul:&lt;br /&gt;
## Logdatei anlegen&lt;br /&gt;
## Start in &amp;lt;code&amp;gt;update_prot&amp;lt;/code&amp;gt; protokollieren (update_id = -10000)&lt;br /&gt;
## Java-Update starten:  &lt;br /&gt;
   &amp;lt;code&amp;gt;ComponentAdminCLI -e &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
## Optional: Modul-Logdatei nach internen Fehlern durchsuchen&lt;br /&gt;
## Erfolg:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;SUCCESS_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10000)&lt;br /&gt;
## Fehler:&lt;br /&gt;
### Modul-Log in &amp;lt;code&amp;gt;ERROR_LOG_FILES&amp;lt;/code&amp;gt;&lt;br /&gt;
### DB-Update (update_id = -10001)&lt;br /&gt;
## Zuletzt: Java-Joblogs aus &amp;lt;code&amp;gt;$WEBAPP/WEB-INF/logs/jobs&amp;lt;/code&amp;gt; ermitteln&lt;br /&gt;
&lt;br /&gt;
# Nach Abschluss aller Module:&lt;br /&gt;
## Erfolgs- oder Fehlermail versenden&lt;br /&gt;
## Anhänge abhängig von &amp;lt;code&amp;gt;MAIL_ATTACH_LOGS_MODE&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==modules_update_cron.sh – Wrapper für Cron==&lt;br /&gt;
Damit Updates regelmäßig durchgeführt werden können, existiert ein einfaches Wrapper-Skript.&lt;br /&gt;
&lt;br /&gt;
Vorgehen:&lt;br /&gt;
&lt;br /&gt;
# Beispieldatei kopieren:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cp modules_update_cron.sh.sam modules_update_cron.sh&lt;br /&gt;
chmod +x modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
# Pfade zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; und zum Update-Skript anpassen.&lt;br /&gt;
# Cronjob eintragen, z. B. werktags um 18 Uhr:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
0 18 * * 1-5 /pfad/zu/modules_update_cron.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Inhaltlich:&lt;br /&gt;
* Laden der &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt;&lt;br /&gt;
* Start des Skripts &amp;lt;code&amp;gt;modules_update.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Module Upgrades=&lt;br /&gt;
&lt;br /&gt;
==modules_upgrade.sh – Hauptskript==&lt;br /&gt;
Das Upgrade-Skript entspricht dem Update-Skript, unterscheidet sich aber in folgenden Punkten:&lt;br /&gt;
&lt;br /&gt;
* Es wird **manuell** ausgeführt – kein Cronjob vorgesehen.&lt;br /&gt;
* Es verwendet &amp;lt;code&amp;gt;BI_UPGRADE_MODULES&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Das eigentliche Upgrade erfolgt über:  &lt;br /&gt;
  &amp;lt;code&amp;gt;ComponentAdminCLI -u &amp;amp;lt;modul&amp;amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* Nach Abschluss des Upgrades erfolgt ein Mailversand analog zum Update-Skript.&lt;br /&gt;
&lt;br /&gt;
Aufruf:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
cd /var/lib/tomcat10/webapps/superx/WEB-INF/bin/BI-Maintenance/update&lt;br /&gt;
./modules_upgrade.sh&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vorher muss zu Beginn des Skripts der Pfad zur &amp;lt;code&amp;gt;BI_ENV&amp;lt;/code&amp;gt; eingetragen sein:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
. /pfad/zur/BI_ENV&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
=Modulverwaltung=&lt;br /&gt;
&lt;br /&gt;
==Modulkürzel==&lt;br /&gt;
Die folgenden Modulkürzel sind in einer typischen BI-Installation relevant:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
 kuerzel |                         name                          &lt;br /&gt;
---------+-------------------------------------------------------&lt;br /&gt;
 astat   | Amtliche Statistik                                &lt;br /&gt;
 bau     | Gebäude, Räume, Flächen                           &lt;br /&gt;
 cob     | Kostenrechnung                                    &lt;br /&gt;
 erfolg  | Studienverlauf                                    &lt;br /&gt;
 fin     | Finanzrechnung                                    &lt;br /&gt;
 gang    | Studiengänge                                      &lt;br /&gt;
 ivs     | Inventar                                          &lt;br /&gt;
 kenn    | Kennzahlen                                        &lt;br /&gt;
 kern    | Administration                                    &lt;br /&gt;
 lm      | Leistungsmonitoring                               &lt;br /&gt;
 man     | Management                                        &lt;br /&gt;
 prom    | Promovierende                                     &lt;br /&gt;
 res     | Forschung                                         &lt;br /&gt;
 sos     | Studierende, Prüfungen                            &lt;br /&gt;
 sva     | Personal, Stellen                                 &lt;br /&gt;
 zul     | Bewerbung, Zulassung                              &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die aktiven Module der eigenen Installation können mit folgendem SQL abgefragt werden:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
SELECT V.his_system AS kuerzel,&lt;br /&gt;
       S.name&lt;br /&gt;
  FROM db_version V&lt;br /&gt;
  JOIN systeminfo S&lt;br /&gt;
    ON S.tid = V.systeminfo_id&lt;br /&gt;
 ORDER BY 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Datei:qhd.09.2025_1759152418659.png&amp;diff=15040</id>
		<title>Datei:qhd.09.2025 1759152418659.png</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Datei:qhd.09.2025_1759152418659.png&amp;diff=15040"/>
		<updated>2025-09-29T13:27:06Z</updated>

		<summary type="html">&lt;p&gt;Andrek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Datei:Huef_NRW_SuperX-Treffen_30.09.2025_1759150068265.09.2025_1759150068226.png&amp;diff=15037</id>
		<title>Datei:Huef NRW SuperX-Treffen 30.09.2025 1759150068265.09.2025 1759150068226.png</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Datei:Huef_NRW_SuperX-Treffen_30.09.2025_1759150068265.09.2025_1759150068226.png&amp;diff=15037"/>
		<updated>2025-09-29T12:47:50Z</updated>

		<summary type="html">&lt;p&gt;Andrek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
	<entry>
		<id>https://superxhosting.de/wiki/index.php?title=Datei:Themenbaum_Ausgeklappt.09.2025_1759146477481.png&amp;diff=15032</id>
		<title>Datei:Themenbaum Ausgeklappt.09.2025 1759146477481.png</title>
		<link rel="alternate" type="text/html" href="https://superxhosting.de/wiki/index.php?title=Datei:Themenbaum_Ausgeklappt.09.2025_1759146477481.png&amp;diff=15032"/>
		<updated>2025-09-29T11:48:16Z</updated>

		<summary type="html">&lt;p&gt;Andrek: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Andrek</name></author>
	</entry>
</feed>