Скрипт запуска автоархивирования сайта в CMS 1c Bitrix Данный скрипт производит автоматическую архивацию публичной части и БД сайта работающего на CMS 1c Bitrix. http://bx-dev.com/db/total/bot_run_autoarchive_feature_in_cms_1_c_bitrix_site/
<?
CModule::IncludeModule("iblock");
CModule::IncludeModule("main");
$argv[1] = $_SERVER["DOCUMENT_ROOT"];//путь к корню сайта
$argv[2] = "avtogenerate_".date("m.d.y");//имя будущего архива
$_SERVER['DOCUMENT_ROOT'] = $argv[1];
if (!$_SERVER['DOCUMENT_ROOT'])
die('Usage: '.basename(__FILE__).' /path/to/document/root'."\n");
$_SERVER['DOCUMENT_ROOT'] = str_replace('\\','/',$_SERVER['DOCUMENT_ROOT']);
$name = $argv[2] ? $argv[2] : 'backup';
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/php_interface/dbconn.php');
ini_set('max_execution_time',0);
$charset = defined('BX_UTF') && BX_UTF ? 'utf8' : 'cp1251';
$backup_dir = $_SERVER['DOCUMENT_ROOT'].'/bitrix/backup';
if (!file_exists($backup_dir))
mkdir($backup_dir);
shell_exec("mysqldump -h$DBHost -u$DBLogin -p$DBPassword --default-character-set=$charset $DBName > $backup_dir/$name.sql");
require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/classes/general/tar_gz.php');
function getmicrotime_()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}
function Store($path)
{
global $arch;
$path = str_replace('\\','/',$path);
if (preg_match('#^'.$_SERVER['DOCUMENT_ROOT'].'/bitrix/backup#',$path) ||
preg_match('#^'.$_SERVER['DOCUMENT_ROOT'].'/bitrix/[^/]*cache/#',$path))
return;
$arch->AddFile($path,'',$_SERVER['DOCUMENT_ROOT']);
if (is_dir($path))
{
$dir = opendir($path);
while(false !== $file=readdir($dir))
{
if ($file=='.' || $file=='..')
continue;
Store($path.'/'.$file);
}
closedir($dir);
}
}
$arch = new CArchiver($backup_dir.'/'.$name.'.tar.gz', true);
$arch->_openWrite();
$arch->AddFile("$backup_dir/$name.sql",'',$_SERVER['DOCUMENT_ROOT']);
Store($_SERVER['DOCUMENT_ROOT']);
$arch->_close();
unlink("$backup_dir/$name.sql");
?>