I have the following bash script
#!/bin/bash
# Durchgehen aller Namespaces im Cluster
for namespace in $(kubectl get namespaces -o jsonpath='{.items[*].metadata.name}'); do
# Ausgabe, dass der aktuelle Namespace überprüft wird
echo "Überprüfe Namespace: $namespace"
# Überprüfen, ob es Pods im aktuellen Namespace gibt
if kubectl get pods -n $namespace > /dev/null 2>&1; then
# Durchgehen aller Pods im aktuellen Namespace
for pod in $(kubectl get pods -n $namespace -o jsonpath='{.items[*].metadata.name}'); do
# Überprüfen, ob der Pod mit "moodle-" beginnt
if [[ $pod == moodle-* ]]; then
# Ausgabe, dass ein Pod für Moodle gefunden wurde
echo "Im Namespace $namespace wurde der Pod $pod gefunden"
# Versuche, das Moodle-Datenbankpasswort zu erhalten
dbpass=$(kubectl exec $pod -n $namespace -- php /var/www/html/admin/cli/cfg.php | grep dbpass | cut -d "'" -f 4)
# Versuche, den Host der Datenbank zu erhalten
host=$(kubectl exec $pod -n $namespace -- php /var/www/html/admin/cli/cfg.php | grep dbhost | cut -d "'" -f 4)
# Überprüfen, ob das Passwort und der Host gefunden wurden
if [ -n "$dbpass" ] && [ -n "$host" ]; then
# MySQL-Konsole öffnen mit dem gefundenen Passwort und Host
id_datenschutz=$(mysql -umoodle -h$host -p$dbpass - "use moodle; SELECT id FROM mdl_role WHERE name LIKE '%Datenschutz%';")
# Überprüfen, ob die ID gefunden wurde
if [ -n "$id_datenschutz" ]; then
# SQL-Statement ausführen und Ergebnis in eine Textdatei schreiben
mysql -umoodle -h$host -p$dbpass"moodle; SELECT u.firstname, u.lastname, u.email FROM mdl_role_assignments AS ra JOIN mdl_user AS u ON ra.userid = u.id WHERE ra.roleid = $id_datenschutz AND ra.contextid = 1;" >> output.txt
# Trennstrich in die Ausgabedatei einfügen
echo "-----------------------------------------------------------" >> output.txt
else
echo "ID für Datenschutz-Rolle in Namespace $pod nicht gefunden"
fi
else
echo "Datenbankpasswort oder Host für Namespace $pod nicht gefunden"
fi
fi
done
else
echo "Keine Pods im Namespace $namespace gefunden"
fi
done
In particular
mysql -umoodle -h$host -p$dbpass"moodle; SELECT u.firstname, u.lastname, u.email FROM mdl_role_assignments AS ra JOIN mdl_user AS u ON ra.userid = u.id WHERE ra.roleid = $id_datenschutz AND ra.contextid = 1;
does not lead to the desired result
If I enter the sql-statement manually, the result is displayed correctly.
Where is the mistake?
Internet research, forums searched
New contributor
Daniel Jäger is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.