Re: Automatisches Backup?
Verfasst: 22.11.2013 18:05
Probiere ich mal, Danke
LG
LG
phpBB.de - Die deutsche phpBB-Community
https://www.phpbb.de/community/
http://www.anettes-quiltbox-forum.de/cron.php?cron_type=auto_backup
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.- 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
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);
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,
));
}
}
?>
set_config('auto_backup_last_gc', $auto_backup_last_gc);
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);