Automatisches Backup?
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Re: Automatisches Backup?
Ich habe heute Morgen eine Fehlermeldung mit Mail bekommen. Der Job bei "cronjobservice.net" ist angestossen worden, stand aber fest bei "www.meine-domain.de/index.php".
Dadurch wurde zwar das Forum aufgerufen, blieb aber stehen, bis ein Zeitlimit auftrat und die Fehlermeldung auslöste.
Es liegt am Aufruf. Bisher hat mir leider niemand helfen können, wie sich ein "Bot" im Forum über die Parameter anmeldet. Habe hier im Forum schon versucht Informationen zu finden, leider nichts gefunden.
Ein Aufruf mit:
"Botname@www.meine-Domain.de" - kein Ergebnis zum Anstoss des "Automatischen Backup"
"www.meine-Domain.de/index.php?Botname" - kein Ergebnis zum Anstoss des "Automatischen Backup"
habe ich auch mit verschiedenen Kombinationen getestet, leider kein Erfolg.
Ich probiere ja, aber ein stochern im "Nebel" bringt halt nicht viel.
Welche Möglichkeit des Aufrufes zum Anstoss des "Automatischen Backup" gibt es denn?
Danke Schaumi
Dadurch wurde zwar das Forum aufgerufen, blieb aber stehen, bis ein Zeitlimit auftrat und die Fehlermeldung auslöste.
Es liegt am Aufruf. Bisher hat mir leider niemand helfen können, wie sich ein "Bot" im Forum über die Parameter anmeldet. Habe hier im Forum schon versucht Informationen zu finden, leider nichts gefunden.
Ein Aufruf mit:
"Botname@www.meine-Domain.de" - kein Ergebnis zum Anstoss des "Automatischen Backup"
"www.meine-Domain.de/index.php?Botname" - kein Ergebnis zum Anstoss des "Automatischen Backup"
habe ich auch mit verschiedenen Kombinationen getestet, leider kein Erfolg.
Ich probiere ja, aber ein stochern im "Nebel" bringt halt nicht viel.
Welche Möglichkeit des Aufrufes zum Anstoss des "Automatischen Backup" gibt es denn?
Danke Schaumi
You think you’re safe. You are not.
Re: Automatisches Backup?
Also ich würde den Aufruf so bewerkstelligen:
http://www.anettes-quiltbox-forum.de/cron.php?cron_type=auto_backup
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Re: Automatisches Backup?
Vielen Dank Miriam,
habe Deinen vorgeschlagenen Aufruf in den CronJob eingetragen und werde es versuchen, denn der Versuch macht bekanntlich klug.
Nochmals vielen Dank
Schaumi
habe Deinen vorgeschlagenen Aufruf in den CronJob eingetragen und werde es versuchen, denn der Versuch macht bekanntlich klug.

Nochmals vielen Dank
Schaumi
You think you’re safe. You are not.
- Metzle
- Ehemaliges Teammitglied
- Beiträge: 10435
- Registriert: 08.03.2008 02:50
- Wohnort: Waiblingen-Neustadt
- Kontaktdaten:
Re: Automatisches Backup?
Hallo,
hast du denn auch einen entsprechenden Bot im Forum angelegt? Das ist natürlich auch Voraussetzung.
hast du denn auch einen entsprechenden Bot im Forum angelegt? Das ist natürlich auch Voraussetzung.
Re: Automatisches Backup?
Was für ein Bot soll denn das sein?
includes/functions.php
Also wenn der User ein Bot ist, bleibt

includes/functions.php
Code: Alles auswählen
// Call cron-type script
$call_cron = false;
if (!defined('IN_CRON') && $run_cron && !$config['board_disable'] && !$user->data['is_bot'])
{
$call_cron = true;
$time_now = (!empty($user->time_now) && is_int($user->time_now)) ? $user->time_now : time();
// Any old lock present?
if (!empty($config['cron_lock']))
{
$cron_time = explode(' ', $config['cron_lock']);
// If 1 hour lock is present we do not call cron.php
if ($cron_time[0] + 3600 >= $time_now)
{
$call_cron = false;
}
}
}
$call_cron
unwahr. Wenn die 1-Stunde-Verriegelung aktiv ist auch.Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Re: Automatisches Backup?
Erst mal vielen Dank für die Antworten.
- @Metzle: Ich hatte einen Bot angelegt, diesen aber wieder gelöscht.
- Folgende Meldung kam um 1:07 Uhr per Mail:
- Der Backup ist gelaufen, ausgelöst durch den User "Anonymous" um 01:06, eigestellt war der Backup um 0:59 Uhr.
Werde den Job "Eingabemäßig" nochmals auf 0:59 aktivieren, wobei sich das Problem ergibt, das die Uhrzeit des Backuplaufs in die Tabelle
phpBB_config in dem Tabellenfeld "auto_backup_last_gc" die nächste Backup-Time einträgt, dann aber wieder mit der CronJobzeit nicht mehr übereinstimmt.
Der Automatische Ablauf hebt sich durch Verschiebung des Zeitfensters auf.
Soweit ich das verstehe, muss eine Änderung in der Datei: acp_auto_backup.php gemacht werden.
Und zwar hier:
Die 86400 ist die Multiplikation mit 24, also auf den Nächsten Tag,
Ich überlege, diese beiden Anweisungen zu deaktivieren, also auf Kommentar zu setzen.
Liege ich dann damit richtig?
Natürlich unter der Vorraussetzung, das der CronJob-Aufruf den User "Anonymous" als Auslöser akzeptiert, mit der täglichen Mail kann ich leben (oder auch abstellen).
Vielen Dank
Schaumi
- @Metzle: Ich hatte einen Bot angelegt, diesen aber wieder gelöscht.
- Folgende Meldung kam um 1:07 Uhr per Mail:
- Der Aufruf des Cronjobs war wie Miriam angegeben: "http://www.anettes-quiltbox-forum.de/cr ... uto_backup".Hallo schaumi,
Ihr Cronjob Backup konnte nicht fehlerfrei aufgerufen werden. Bitte überprüfen Sie Ihren Cronjob.
Fehlerhafte Aufrufe in Folge: 1
Mit freundlichen Grüßen
Ihr cronjobservice.net Team
- Der Backup ist gelaufen, ausgelöst durch den User "Anonymous" um 01:06, eigestellt war der Backup um 0:59 Uhr.
Werde den Job "Eingabemäßig" nochmals auf 0:59 aktivieren, wobei sich das Problem ergibt, das die Uhrzeit des Backuplaufs in die Tabelle
phpBB_config in dem Tabellenfeld "auto_backup_last_gc" die nächste Backup-Time einträgt, dann aber wieder mit der CronJobzeit nicht mehr übereinstimmt.
Der Automatische Ablauf hebt sich durch Verschiebung des Zeitfensters auf.
Soweit ich das verstehe, muss eine Änderung in der Datei: acp_auto_backup.php gemacht werden.
Und zwar hier:
Code: Alles auswählen
$this->tpl_name = 'acp_auto_backup';
$this->page_title = 'ACP_AUTO_BACKUP_SETTINGS';
$auto_backup_enable = request_var('auto_backup_enable', $config['auto_backup_enable']);
$auto_backup_filetype = request_var('auto_backup_filetype', $config['auto_backup_filetype']);
$auto_backup_copies = request_var('auto_backup_copies', $config['auto_backup_copies']);
$auto_backup_optimize = request_var('auto_backup_optimize', $config['auto_backup_optimize']);
$auto_backup_gc = request_var('auto_backup_gc', $config['auto_backup_gc']);
$auto_backup_last_gc = request_var('auto_backup_last_gc', $config['auto_backup_last_gc']);
$auto_backup_next = $user->format_date($config['auto_backup_last_gc'] + $config['auto_backup_gc'] * 86400);
$auto_backup_time = $user->format_date($config['auto_backup_last_gc'] + $config['auto_backup_gc'] * 86400, 'Y-m-d-H-i');
$form_name = 'acp_auto_backup';
add_form_key($form_name);
Ich überlege, diese beiden Anweisungen zu deaktivieren, also auf Kommentar zu setzen.
Liege ich dann damit richtig?
Natürlich unter der Vorraussetzung, das der CronJob-Aufruf den User "Anonymous" als Auslöser akzeptiert, mit der täglichen Mail kann ich leben (oder auch abstellen).
Vielen Dank
Schaumi
You think you’re safe. You are not.
Re: Automatisches Backup?
Der Cronjob ist heute Morgen gegen 1:18 Uhr durch den User "Anonymous" angestossen worden.
Nun fehlt noch zu meinem Glück, das nicht die letzte Backupzeit in die Tabelle eingetragen bzw. überschrieben wird, damit das Zeitfenster erhalten bleibt.
Kann mir einer einen Tipp geben, wo ich das Rücksetzen der Zeit verhindern kann.
Hier ist der code von dem File "acp_auto_backup.php", wo die neue Backup-Zeit gesetzt wird.
- root/includes/acp
Welche Variable muss so gesetzt werden, damit die ursprüngliche Backup-Zeit erhalten bleibt und nicht auf die momentane Backup-Zeit überschrieben wird.
Vielen Dank für eine Unterstützung zur Änderung.
LG Schaumi
Nun fehlt noch zu meinem Glück, das nicht die letzte Backupzeit in die Tabelle eingetragen bzw. überschrieben wird, damit das Zeitfenster erhalten bleibt.
Kann mir einer einen Tipp geben, wo ich das Rücksetzen der Zeit verhindern kann.
Hier ist der code von dem File "acp_auto_backup.php", wo die neue Backup-Zeit gesetzt wird.
- root/includes/acp
Code: Alles auswählen
<?php
/**
*
* @package acp
* @copyright (c) 2011 Pico
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/
/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
* @package acp
*/
class acp_auto_backup
{
var $u_action;
function main($id, $mode)
{
global $db, $user, $auth, $template;
global $config, $phpbb_root_path, $phpbb_admin_path, $phpEx;
$action = request_var('action', '');
$submit = (isset($_POST['submit'])) ? true : false;
if ($mode != 'index')
{
return;
}
$this->tpl_name = 'acp_auto_backup';
$this->page_title = 'ACP_AUTO_BACKUP_SETTINGS';
$auto_backup_enable = request_var('auto_backup_enable', $config['auto_backup_enable']);
$auto_backup_filetype = request_var('auto_backup_filetype', $config['auto_backup_filetype']);
$auto_backup_copies = request_var('auto_backup_copies', $config['auto_backup_copies']);
$auto_backup_optimize = request_var('auto_backup_optimize', $config['auto_backup_optimize']);
$auto_backup_gc = request_var('auto_backup_gc', $config['auto_backup_gc']);
$auto_backup_last_gc = request_var('auto_backup_last_gc', $config['auto_backup_last_gc']);
$auto_backup_next = $user->format_date($config['auto_backup_last_gc'] + $config['auto_backup_gc'] * 86400);
$auto_backup_time = $user->format_date($config['auto_backup_last_gc'] + $config['auto_backup_gc'] * 86400, 'Y-m-d-H-i');
$form_name = 'acp_auto_backup';
add_form_key($form_name);
if ($submit)
{
if (!check_form_key($form_name))
{
trigger_error($user->lang['FORM_INVALID']. adm_back_link($this->u_action), E_USER_WARNING);
}
if ($auto_backup_gc <= 0)
{
trigger_error($user->lang['AUTO_BACKUP_FREQ_ERROR']. adm_back_link($this->u_action), E_USER_WARNING);
}
if (!is_numeric($auto_backup_copies) || $auto_backup_copies < 0)
{
trigger_error($user->lang['AUTO_BACKUP_COPIES_ERROR']. adm_back_link($this->u_action), E_USER_WARNING);
}
$error = array();
$message = $user->lang['AUTO_BACKUP_SETTINGS_CHANGED'];
$log = 'AUTO_BACKUP_SETTINGS_CHANGED';
$auto_backup_date = explode('-', $auto_backup_last_gc);
if (sizeof($auto_backup_date) == 5 && (strlen($auto_backup_date[0]) == 4) && (strlen($auto_backup_date[1]) == 2) && (strlen($auto_backup_date[2]) == 2) && ((int)$auto_backup_date[3] < 24) && (strlen($auto_backup_date[3]) == 2) && ((int)$auto_backup_date[4] < 60) && (strlen($auto_backup_date[4]) == 2))
{
$time_offset = (isset($user->timezone) && isset($user->dst)) ? (int)$user->timezone + (int)$user->dst : 0;
$auto_backup_last_gc = gmmktime((int)$auto_backup_date[3], (int)$auto_backup_date[4], 0, (int)$auto_backup_date[1], (int)$auto_backup_date[2], (int)$auto_backup_date[0])- $time_offset - $config['auto_backup_gc'] * 86400;
}
else
{
trigger_error($user->lang['AUTO_BACKUP_TIME_ERROR']. adm_back_link($this->u_action), E_USER_WARNING);
}
set_config('auto_backup_enable', $auto_backup_enable);
set_config('auto_backup_filetype', $auto_backup_filetype);
set_config('auto_backup_gc', $auto_backup_gc);
set_config('auto_backup_copies', $auto_backup_copies);
set_config('auto_backup_optimize', $auto_backup_optimize);
set_config('auto_backup_last_gc', $auto_backup_last_gc);
add_log('admin', 'LOG_' . $log);
trigger_error($message . adm_back_link($this->u_action));
}
$template->assign_vars(array(
'U_ACTION' => $this->u_action,
'AUTO_BACKUP_ENABLE' => $auto_backup_enable,
'AUTO_BACKUP_FILETYPE' => $auto_backup_filetype,
'AUTO_BACKUP_GC' => $auto_backup_gc,
'AUTO_BACKUP_COPIES' => $auto_backup_copies,
'AUTO_BACKUP_OPTIMIZE' => $auto_backup_optimize,
'AUTO_BACKUP_NEXT' => $auto_backup_next,
'AUTO_BACKUP_TIME' => $auto_backup_time,
'AB_GZIP' => $auto_backup_filetype == 'gzip',
'AB_BZIP2' => $auto_backup_filetype == 'bzip2',
'AB_TEXT' => $auto_backup_filetype == 'text',
'GZIP' => @extension_loaded('zlib') ? true : false,
'BZIP2' => @extension_loaded('bz2') ? true : false,
));
}
}
?>
Vielen Dank für eine Unterstützung zur Änderung.
LG Schaumi
You think you’re safe. You are not.
Re: Automatisches Backup?
Streng mal Deine Augen und den Kopf ein bißchen an.
Auskommentierten kannst Du doch.
set_config('auto_backup_last_gc', $auto_backup_last_gc);
Auskommentierten kannst Du doch.
Gruss, Miriam.
Ich schmeiß' alles hin und...
... lasse es liegen
Ich schmeiß' alles hin und...
... lasse es liegen
Re: Automatisches Backup?
Vielen Dank für die Hilfe Miriam,
Augen sind auf, gefunden und auskommentiert.
Test durchgeführt.
- Wenn die Anweisung "set_config('auto_backup_last_gc', $auto_backup_last_gc);" auskommentiert wird, dann ist der Wert "{ AUTO_BACKUP_DATE_TIME }" in der ACP nicht mehr veränderbar.
- nach einem Backup, wird die aktuelle Backupzeit um 24 Std in die Tabelle zurückgeschrieben.
- in der ACP kann ich den Wert nicht mehr ändern (es sei denn, ich nehme die Auskommentierung zurück)
Ich wollte eigentlich, das die in der ACP vorgegebene Zeit um 24 Std. erweitert wird, also die gleiche Uhrzeit am nächsten Tag.
Beispiel:
Start am 13-11-26-01-00 durch Eingabe in der ACP "{ AUTO_BACKUP_DATE_TIME }"
CronJob wird am 13-11-26-01-44 gestartet, ausgelöst durch den User "Anonymous" vom externen CronJobservice
Backup wird durchgeführt
Übernahme in "{ AUTO_BACKUP_DATE_TIME }" 13-11-27-01-00
Bin ich im falschen php-File?
Das von mir angezeigte File steht im Verzeichnis: root/includes/acl
Es sieht so aus, das das setzen der neuen Backupzeit in einem anderen File stattfindet.
Bin im Moment ratlos,
wo liegt bei mir der Denkfehler?
Vielen Dank
Schaumi
Update: Ich habe es gefunden, in dem File auto_Backup.php im Verzeichnis root/includes steht folgender code
Eigentlich sollte dort folgender code verändert werden:
Ich hoffe, ich liege richtig
LG Schaumi
Augen sind auf, gefunden und auskommentiert.
Test durchgeführt.
- Wenn die Anweisung "set_config('auto_backup_last_gc', $auto_backup_last_gc);" auskommentiert wird, dann ist der Wert "{ AUTO_BACKUP_DATE_TIME }" in der ACP nicht mehr veränderbar.
- nach einem Backup, wird die aktuelle Backupzeit um 24 Std in die Tabelle zurückgeschrieben.
- in der ACP kann ich den Wert nicht mehr ändern (es sei denn, ich nehme die Auskommentierung zurück)
Ich wollte eigentlich, das die in der ACP vorgegebene Zeit um 24 Std. erweitert wird, also die gleiche Uhrzeit am nächsten Tag.
Beispiel:
Start am 13-11-26-01-00 durch Eingabe in der ACP "{ AUTO_BACKUP_DATE_TIME }"
CronJob wird am 13-11-26-01-44 gestartet, ausgelöst durch den User "Anonymous" vom externen CronJobservice
Backup wird durchgeführt
Übernahme in "{ AUTO_BACKUP_DATE_TIME }" 13-11-27-01-00
Bin ich im falschen php-File?
Das von mir angezeigte File steht im Verzeichnis: root/includes/acl
Es sieht so aus, das das setzen der neuen Backupzeit in einem anderen File stattfindet.
Bin im Moment ratlos,
wo liegt bei mir der Denkfehler?
Vielen Dank
Schaumi
Update: Ich habe es gefunden, in dem File auto_Backup.php im Verzeichnis root/includes steht folgender code
Code: Alles auswählen
* @ignore
*/
if (!defined('IN_PHPBB'))
{
exit;
}
/**
* Auto Backup
*/
function auto_backup()
{
global $config, $db, $phpbb_root_path, $phpEx, $table_prefix;
include($phpbb_root_path . 'includes/functions_install.' . $phpEx);
include($phpbb_root_path . 'includes/acp/acp_database.' . $phpEx);
$time = time();
$name = 'backup_' . $time . '_' . unique_id();
$format = $config['auto_backup_filetype'];
set_config('auto_backup_last_gc', $time, true);
add_log('admin', 'LOG_DB_BACKUP');
// Optimize database before backup (only unoptimized tables)
if ($config['auto_backup_optimize'])
{
if ($result = $db->sql_query('SHOW TABLE STATUS'))
{
$tables = $db->sql_fetchrowset($result);
for ($i = 0, $size = sizeof($tables); $i < $size; $i++ )
{
if ( $tables[$i]['Data_free'] != 0 )
{
$for_optimize[] = $tables[$i]['Name'];
}
}
if (!empty($for_optimize))
{
$tables = implode(',', $for_optimize);
$db->sql_query('OPTIMIZE TABLE ' . $tables);
}
}
}
@set_time_limit(1200);
@set_time_limit(0);
switch ($db->sql_layer)
{
case 'mysqli':
case 'mysql4':
case 'mysql':
$extractor = new mysql_extractor(false, true, $format, $name, $time);
break;
case 'sqlite':
$extractor = new sqlite_extractor(false, true, $format, $name, $time);
break;
case 'postgres':
$extractor = new postgres_extractor(false, true, $format, $name, $time);
break;
case 'oracle':
$extractor = new oracle_extractor(false, true, $format, $name, $time);
break;
case 'mssql':
case 'mssql_odbc':
$extractor = new mssql_extractor(false, true, $format, $name, $time);
break;
case 'firebird':
$extractor = new firebird_extractor(false, true, $format, $name, $time);
break;
}
$extractor->write_start($table_prefix);
foreach (get_tables($db) as $table_name)
{
$extractor->write_table($table_name);
$extractor->write_data($table_name);
}
$extractor->write_end();
// Delete backup
if ($config['auto_backup_copies'])
{
$rep = $phpbb_root_path . '/store/';
$dir = opendir($rep);
$files = array();
while (($file = readdir($dir)) !== false)
{
if (is_file($rep . $file) && (substr($file, -3) == '.gz' || substr($file, -4) == '.bz2' || substr($file, -4) == '.sql' ))
{
$files[$file] = fileatime($rep . $file);
}
}
closedir($dir);
arsort($files);
reset($files);
if (sizeof($files) > $config['auto_backup_copies'])
{
$i = 0;
while (list($key, $val) = each($files))
{
$i++;
if ($i > $config['auto_backup_copies'])
{
@unlink($rep . $key);
}
}
}
}
}
Code: Alles auswählen
set_config('auto_backup_last_gc', $time, true);
LG Schaumi
You think you’re safe. You are not.