Hallo, ich berichte hier mal ganz kurz noch von meinen Erfahrungen mit gecrashten Strato-V-Servern, Moodle und der moosh-Shell.
Wie an anderer Stelle berichtet, fielen eine ganze Reihe von Strato-VServern aus. Fast 14 Tage lang kämpfte Strato und die User mit kaum noch erreichbaren Servern, extrem langsamen Reaktionszeiten der Programme, langsame Netzverbindungen etc. Leider auch wir, sodass ich auf einen Root-Server bei Hetzner umgezogen bin und mit moosh-Scripten die Kurse der alten Moodle 3.3-Installation auf ein taufrisches Moodle 3.8 übertragen habe.
Dabei kam folgendes heraus:
a) Moosh ist leider nur teilweise zuverlässig und patzt z.B. bei in Programmier-Schleifen wiederholten Datenbankeinträgen. So wurden etliche Passwörter einfach nicht gesetzt. Das gleiche Script nochmal laufengelassen: Es wurden ein paar Passwörter mehr gesetzt usw.
b) Den alten VServer habe ich weiter beobachtet und Moodle-Dateioperationen darau ausgeführt… Strato gab dann irgendwann einmal zu, dass größere Probleme „mit Switches“ bestanden hätten. Nun sei alles ok. Tatsache aber ist, dass die zugesagten Ressourcen einfach nicht immer zur Verfügung stehen, sodass es weiterhin passieren kann, dass der VServer urplötzlich schleichend lahm wird. Ich werde niemals mehr solch eine Mogelpackung verwenden!
c) Man sollte den Speicherort der automatischen Sicherung vom default-Wert abweichend definieren. So erreicht man, dass ALLE Kurse einmal am Tag in EINEM Verzeichnis als " irgendein_Kurs.mbz" gesichert werden und nicht als komplexes Werk aus Dateien im Moodle-Data-Verzeichnis plus Datenbankinhalte. Diese *.mbz-Dateien lassen sich prima sorgenfrei und recht flexibel in eine andere Moodle-Installation einspielen. Man kann sie auch per sftp-Transfer o.ä. auf einen backup-Server übertragen. Auf diese Weise kann man eine Ersatz-Moodle-Installation im worst case relativ rasch hochziehen.
die Automatische Sicherung findest Du unter:
Website-Administration -> Kurse -> Automatische Sicherungen.
Bei mir ist da ein explizites Verzeichnis angegeben:
So etwas, wie: /var/moodle/automatische_sicherungen
Wenn man das NICHT tut, legt Moodle die Sicherungen verteilt in Datenbank und kleinen Datenschnipseln ab. Diese zu rekonstruieren ist ein Horror, dank moosh allerdings überhaupt erst möglich gewesen (in meinem Fall, siehe letztes posting).
Jetzt hingegen finde ich wunderbar benannt alle Kurse als kompakte Dateien mit .mbz-Endung!
wie Andre schon frug - war der Weg „Datenbank-Dump/Restore“ und „Kopieren von MoodleData“ keine Option? Ich würde völlig bekloppt werden, die Kurse einzeln zu kopieren, moosh hin oder her.
Automatische Sicherungen haben wir abgeschaltet, da das inzwischen spürbar Platz wegnimmt (und wir ohnehin das ganze LVM regelmäßig und die Datenbank und das Moodle-VZ immer mal wieder auf ein NAS sichern).
Darum bin ich einfach neugierig, ob das Gründe hatte, dass ihr das so gemacht habt - man lernt ja meist doch immer noch etwas Neues.
wir hatten auch eine zeitlang Moodle-Sicherungen aktiviert.
Seitdem wuchs die Moodle_Data_Dir enorm, weiss jemand wie ich die alten
Sicherungen entfernen kann?
man gibt an, dass immer nur die aktuellsten zwei behalten werden: dann
räumt er automatisch auf.
Dann hab ich noch einen Haken bei „nur geänderte Kurse sichern“, dann
überspringt er die, die sich eh nicht geändert haben…
das komplette Kopieren der Moodle-Datenbank zwingt dazu, auch alle Benutzer, installierte plugins etc. - also die gesamte Moodle-Installation mitzusichern. Ich wollte aber gleichzeitig eine etwas geänderte user-Datenbank und ein neues Moodle 3.8 verwenden. Ein Moodle-Upgrade war bereits vorher, als der Server noch lief, gescheitert und ist auch ansonten nicht trivial, da gleichzeitig auch noch Änderungen der Php-Version (7.1 auf 7.3) und der MySQL-Version anstanden. Und, wie gesagt, ich KAM ja gar nicht mehr auf die Website, um die Kurse zu sichern, der durchscnittliche Seitenwechsel dauerte zwischen 10 und 160 sec. (!)
Also sicherte ich die Kurse mit moosh so:
su www-data -s /bin/bash
(Damit wird man zum www-data-Benutzer, der für moosh nötig ist. Mit -s erreicht man eine shell, egal, was in /etc/passwd eingetragen ist.)
Zuerst
Und sorry: Das Sichern der Kurse war ja das Moodle-eigene admin/cli-Script - das hatte ich vergessen. Mit moosh habe ich lediglich die Kursliste erstellt !
Wie man im Script sehen kann, hatte ich ein Verzeichnis des neuen Servers über sftp gemountet.
Dorthin flossen also die gesicherten Kurse.
Auf dem neuen Server habe ich dann die Kurse mit moosh wieder eingespielt:
#!/bin/bash
for i in /root/*.mbz; do
echo $i
moosh course-restore $i 12
echo "Ich bennene um $i nach ${i}.hochgeladen"
mv $i ${i}.hochgeladen
done
„12“ war in diesem Fall der Kursbereich „Verschiedenes“. Die Verschiebung in die Kursbereich habe ich über die regulären Moodle-Funktionen erledigt.
So - das war nun meine Lösung. Sicher etwas unkonventionell, aber dem Notfall geschuldet !