Abschluss: Moodle-Umzug, moosh, Strato

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.

Grüße
Christoph G.

Hallo Christoph,

was ein Horror!

Mit moosh wollte ich mich schon länger mal beschäftigen.

War ein sql-dump und Kopieren der Moodle-Daten keine Möglichkeit?

Wie bzw. wo kann ich den Speicherort für autom. Sicherungen definieren?

VG Andre

Hallo, André,

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!

gruß
Christoph G.

Hallo Christoph,

das hört sich doch nach einem Erfolg und somit nach einer allgemein gültigen Lösung an. Dann markiere sie doch als solche.

Danke!

Beste Grüße

Thorsten

Hallo Christoph,

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.

Viele Grüße
Thomas

Hallo Thomas, hallo Christoph,

wir hatten auch eine zeitlang Moodle-Sicherungen aktiviert.

Seitdem wuchs die Moodle_Data_Dir enorm, weiss jemand wie ich die alten Sicherungen entfernen kann?

Jeden Kurs und Dozenten aufzurufen und dort die Sicherungen löschen will ich mir nicht geben :wink:

Als Backup-Lösung setze ich jetzt Tartarus und für die Datenbanken automysqlbackup ein.

Einen guten Link dazu findet man bei Hetzner.

VG Andre

Hallo Andre,

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…

LG

Holger

Hallo,

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

#!/bin/bash
moosh course-list >kursliste.txt
while read line do
 kursid=`echo $line | cut -d'"' -f2`
 echo "Ich backuppe $kursid !"
 sudo -u www-data /usr/bin/php7.1 admin/cli/backup.php \
    --courseid=$kursid --destination=/usr/share/moodle/
  echo "Ich verschiebe..."
  mv /usr/share/moodle/*.mbz /usr/share/moodle/sftp/
  echo "...verschoben !"
done < kursliste.txt

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 !

Liebe Grüße
Christoph G.