Ich habe schon mehrmals beobachtet, dass Moodle willkürlich sozusagen die System-Sprache wechselt, obwohl ich als Admin alles in englisch halte.
So werden die nächtlichen Backup-Zip-Dateien mal als
backup-xxx mal als sicherung-xxx
benannt. Das wäre nicht weiter schlimm, doch werden dann die Dateien nicht rotiert, bzw. nicht korrekt ersetzt, und sie bleiben liegen. Das hat auf meinem Server nun schon zum zweiten mal dazu geführt, dass die Daten-Disk volllief.
Wenn die Daten-Disk voll ist, können keine weiteren PHP-Sessions eröffnet werden, und die user können sich nicht mehr einloggen, nicht einmal der Moodle admin selber.
Daher meine Fragen:
a) weiss jemand, wie oder woher es kommt, dass Moodle bei der Benennung der Zip-Dateien einfach die Sprache wechselt?
b) kann man irgendwo einstellen, dass alles immer nur englisch bleibt, gerade bei System-Prozessen?
c) würde es reichen, dass ich in der deutschen Übersetzung von "backup" statt "sicherung" wiederum "backup" einsetze oder dieses eine Wort "sicherung" aus dem deutschen languag-File entferne?
Gruss und Dank, Rosario
backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Anzahl Antworten: 8
Als Antwort auf Rosario Carcò
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Ralf Hilgenstock -
Ohne es geprüft zu haben, vermute ich die Ursache in der Spracheinstellung im einzelnen Kurs.
Als Antwort auf Ralf Hilgenstock
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Nein, dann hätte ich ja eine Normalverteilung gehabt, also im Schnitt ebensoviele englische Kurse wie deutsche...
Nein, der Backup nimmt backup-xxx oder sicherung-xxx unabhängig von den Kurs-Einstellungen.
Keine Ahnung nach welchem Kriterium.
Nein, der Backup nimmt backup-xxx oder sicherung-xxx unabhängig von den Kurs-Einstellungen.
Keine Ahnung nach welchem Kriterium.
Als Antwort auf Rosario Carcò
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Andreas Grabs -
Hallo,
wie wird der Cron-Job aufgerufen?
Wenn der Cron nicht lokal sondern über einen externen Dienst aufgerufen wird und gleichzeitig die automatische Spracherkennung in Moodle aktiv ist, könnte damit evtl. ab und an die falsche Sprache bei der Ausführung erkannt werden.
Viele Grüße
Andreas
wie wird der Cron-Job aufgerufen?
Wenn der Cron nicht lokal sondern über einen externen Dienst aufgerufen wird und gleichzeitig die automatische Spracherkennung in Moodle aktiv ist, könnte damit evtl. ab und an die falsche Sprache bei der Ausführung erkannt werden.
Viele Grüße
Andreas
Als Antwort auf Andreas Grabs
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Andreas, ich habe früher den cron-Job ganz normal über ein wget aufgerufen. Aber seit ca. einem Jahr rufe ich ihn direkt als php-Befehlszeile auf, damit der Web-Server dadurch nicht belastet wird (was ja in der Nacht sowieso kein Problem ist, aber wir hatten einen Performance-Vorfall auf einer virtuellen Maschine, VMware ESX, so dass wir nach allen möglichen Ursachen gesucht haben, aber am Schluss einsehen mussten, dass ein VMware-Host nicht 20 VMs mit genügend Leistung versorgen kann. Nun habe ich wieder einen physischen Server, aber die cron-jobs habe ich mal so belassen).
Hat sonst noch jemand eine Idee? sonst schaue ich mir heute oder Montag die Backup-Prozedur selber mal an, um zu sehen wie genau da das Präfix für den Datei-Namen ausgewählt wird.
Gruss und Dank, Rosario
Hat sonst noch jemand eine Idee? sonst schaue ich mir heute oder Montag die Backup-Prozedur selber mal an, um zu sehen wie genau da das Präfix für den Datei-Namen ausgewählt wird.
Gruss und Dank, Rosario
Als Antwort auf Ralf Hilgenstock
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Habe soeben festgestellt, dass in Kursen, wo DEUTSCH als Standardsprache eingestellt ist, und somit der ganze Admin-Block im Kurs ebenfalls deutsch angezeigt wird, die Sicherung, DIE MAN VON HAND aus dem Admin-Block macht, tatsächlich mit Sicherung- beginnt. Aber beim nächtlichen Backup wird bei mir bei allen Kursen backup- genommen.
Als Antwort auf Rosario Carcò
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Bin leider noch nicht dazu gekommen, weitere Abkärungen zu treffen, aber beim Durchsehen der System-Mails habe ich wieder gesehen, dass nach diesem Sprach-Wechsel dann auch das entsprechende Mail deutsch oder englisch verfasst wird:
deutsch:
Beschreibung
==================================================
Kurse: 3108
OK: 2762
Übersprungen: 344
Fehler: 1
Noch nicht abgeschlossen: 1
Einige Ihrer Kurse wurden nicht gesichert !!
Bitte schauen Sie in das Sicherungsprotokoll:
englisch:
Summary
==================================================
Courses: 2662
OK: 2270
Skipped: 391
Error: 0
Unfinished: 1
Some of your courses weren't saved!!
Please take a look at your backup logs in:
Da ist die Übersetzung BESCHREIBUNG leider dann auch falsch für SUMMARY, sollte wohl eher ZUSAMMENFASSUNG oder ÜBERSICHT lauten.
deutsch:
Beschreibung
==================================================
Kurse: 3108
OK: 2762
Übersprungen: 344
Fehler: 1
Noch nicht abgeschlossen: 1
Einige Ihrer Kurse wurden nicht gesichert !!
Bitte schauen Sie in das Sicherungsprotokoll:
englisch:
Summary
==================================================
Courses: 2662
OK: 2270
Skipped: 391
Error: 0
Unfinished: 1
Some of your courses weren't saved!!
Please take a look at your backup logs in:
Da ist die Übersetzung BESCHREIBUNG leider dann auch falsch für SUMMARY, sollte wohl eher ZUSAMMENFASSUNG oder ÜBERSICHT lauten.
Als Antwort auf Rosario Carcò
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Habe nun den code in /backup/backup.php studiert. Dieser Code wird offenbar u.a. mit dem Parameter $to aufgerufen:
$to = optional_param( 'to' ); // id of course to import into afterwards.
dann wird später geprüft, ob dieser Parameter leer ist und entsprechend ein String als präfix gewählt:
//Get strings
if (empty($to)) {
$strcoursebackup = get_string("coursebackup");
}
else {
$strcoursebackup = get_string('importdata');
}
Die Frage ist nun, ob der String 'importdata' und 'coursebackup' verschiedene deutsche Übersetzungen haben, oder auch englisch verschieden sind.
Habe ich kurz geprüft: 'Kursdaten importieren' entspricht dem englischen 'Import course data'
Für den automatisierten Backup via cron gibt es aber ncoh die Datei backup_scheduled.php:
u.a. wird hier der mail-text zusammengestellt, wo man 'summary' korrekt übersetzen sollte mit 'Zusammenfassung' oder 'Übersicht':
//Build the message text
//Summary
$message .= get_string('summary')."\n";
$message .= "==================================================\n";
$message .= " ".get_string('courses').": ".$count_all."\n";
$message .= " ".get_string('ok').": ".$count_ok."\n";
$message .= " ".get_string('skipped').": ".$count_skipped."\n";
$message .= " ".get_string('error').": ".$count_error."\n";
$message .= " ".get_string('unfinished').": ".$count_unfinished."\n\n";
Und hier wird wiederum der Backup-Datei-Name zusammengestellt:
//Calculate the backup file name
$backup_name = backup_get_zipfile_name($course);
Die obige Funktion befindet sich in /backup/backuplib.php und macht dort folgendes:
$backup_word = str_replace($takeoff,"_",moodle_strtolower(get_string("backupfilename")));
Somit wird nicht klar, woher Moodle seine Standard-System-Sprache hernimmt. Die Funktion get_string macht dies wohl, wenn sie den verlangten Ausdruck aus der entsprechenden Sprach-Datei holt:
$lang = current_language();
In der obigen Funktion wird nun tatsächlich von der Sprache ausgegangen, welche in einem Kurs fix vorgegeben ist. Doch auf mein Problem hat das keinen Einfluss, denn dann würden alle Kurse immer mit derselben Sprache gesichert, was aber nicht der Fall ist:
if (!empty($COURSE->id) and $COURSE->id != SITEID and !empty($COURSE->lang)) { // Course language can override all other settings for this page
$return = $COURSE->lang;
} else if (!empty($SESSION->lang)) { // Session language can override other settings
$return = $SESSION->lang;
} else if (!empty($USER->lang)) {
$return = $USER->lang;
} else {
$return = $CFG->lang;
}
Wie man sehen kann, wird im zweitletzten Fall die Sprache genommen des Users, in unserem Falle also des Admin-Kontos und als letztes eine $CFG->lang, welche voreingestellt ist, aber ich habe nicht herausgefunden wo und welche das ist. Würde man den cron mit wget aufrufen, könnte man also ev. die $SESSION->lang setzen, da ich es aber über php direkt aufrufe, bleibt mir wohl nur noch, die Übersetzung von 'backup' von 'sicherung' auf 'backup' zurückzustellen. ('coursebackup' ist als 'Kurssicherung' übersetzt und kann also belassen werden).
Was meint ihr? Rosario
$to = optional_param( 'to' ); // id of course to import into afterwards.
dann wird später geprüft, ob dieser Parameter leer ist und entsprechend ein String als präfix gewählt:
//Get strings
if (empty($to)) {
$strcoursebackup = get_string("coursebackup");
}
else {
$strcoursebackup = get_string('importdata');
}
Die Frage ist nun, ob der String 'importdata' und 'coursebackup' verschiedene deutsche Übersetzungen haben, oder auch englisch verschieden sind.
Habe ich kurz geprüft: 'Kursdaten importieren' entspricht dem englischen 'Import course data'
Für den automatisierten Backup via cron gibt es aber ncoh die Datei backup_scheduled.php:
u.a. wird hier der mail-text zusammengestellt, wo man 'summary' korrekt übersetzen sollte mit 'Zusammenfassung' oder 'Übersicht':
//Build the message text
//Summary
$message .= get_string('summary')."\n";
$message .= "==================================================\n";
$message .= " ".get_string('courses').": ".$count_all."\n";
$message .= " ".get_string('ok').": ".$count_ok."\n";
$message .= " ".get_string('skipped').": ".$count_skipped."\n";
$message .= " ".get_string('error').": ".$count_error."\n";
$message .= " ".get_string('unfinished').": ".$count_unfinished."\n\n";
Und hier wird wiederum der Backup-Datei-Name zusammengestellt:
//Calculate the backup file name
$backup_name = backup_get_zipfile_name($course);
Die obige Funktion befindet sich in /backup/backuplib.php und macht dort folgendes:
$backup_word = str_replace($takeoff,"_",moodle_strtolower(get_string("backupfilename")));
Somit wird nicht klar, woher Moodle seine Standard-System-Sprache hernimmt. Die Funktion get_string macht dies wohl, wenn sie den verlangten Ausdruck aus der entsprechenden Sprach-Datei holt:
$lang = current_language();
In der obigen Funktion wird nun tatsächlich von der Sprache ausgegangen, welche in einem Kurs fix vorgegeben ist. Doch auf mein Problem hat das keinen Einfluss, denn dann würden alle Kurse immer mit derselben Sprache gesichert, was aber nicht der Fall ist:
if (!empty($COURSE->id) and $COURSE->id != SITEID and !empty($COURSE->lang)) { // Course language can override all other settings for this page
$return = $COURSE->lang;
} else if (!empty($SESSION->lang)) { // Session language can override other settings
$return = $SESSION->lang;
} else if (!empty($USER->lang)) {
$return = $USER->lang;
} else {
$return = $CFG->lang;
}
Wie man sehen kann, wird im zweitletzten Fall die Sprache genommen des Users, in unserem Falle also des Admin-Kontos und als letztes eine $CFG->lang, welche voreingestellt ist, aber ich habe nicht herausgefunden wo und welche das ist. Würde man den cron mit wget aufrufen, könnte man also ev. die $SESSION->lang setzen, da ich es aber über php direkt aufrufe, bleibt mir wohl nur noch, die Übersetzung von 'backup' von 'sicherung' auf 'backup' zurückzustellen. ('coursebackup' ist als 'Kurssicherung' übersetzt und kann also belassen werden).
Was meint ihr? Rosario
Als Antwort auf Rosario Carcò
Re: backup sicherung Die Dateien werden mal deutsch, mal englisch angelegt
von Rosario Carcò -
Nachdemi ich die deutsche Übersetzung auf das ursprüngliche "backup" zurückgestellt habe, lauten die Backup-Zip-Datei-Namen zum Glück immer einheitlich so und die Rotation der Backup-Zip-Dateien findet korrekt statt. Einzig der Mail-Text, mal Deutsch, mal Englisch, deutet noch darauf hin, dass die ganze Logik willkürlich weiterhin die Sprache wechselt.
Rosario