noganno
11/17/2015 - 4:52 PM

Скрипт запуска автоархивирования сайта в CMS 1c Bitrix Данный скрипт производит автоматическую архивацию публичной части и БД сайта работаю

Скрипт запуска автоархивирования сайта в 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");
?>