Файл: crons/autobu.php
Строк: 157
<?php
include("../config.php");
include("../autoconfig.php");
include("yandexdisk.php");
include("database.php");
$path = SANTI_SERVERPATH;
$path = preg_replace('/\+|/+/', '/', $path);
$path = rtrim($path, '/');
$site_root = $path;
$archivename = "santi_abu_".date('Y-m-d_H-i').".sabu";
$cwd = getcwd();
$cwd = preg_replace('/\+|/+/', '/', $cwd);
$wspl1 = chr(119).chr(105).chr(115).chr(112).chr(108); //wispl
$wspl2 = chr(119).chr(105).chr(36).chr(112).chr(108); //wi$pl
$wsfn1 = chr(119).chr(105).chr(115).chr(102).chr(110);//wisfn
$wsfn2 = chr(119).chr(105).chr(36).chr(102).chr(110);//wi$fn
$exludethisdir=true; // - не эти каталоги TRUE/FALSE
$exludethisdirmode = SANTI_PATH;
$onlythisext=false; // - только с расширением TRUE/FALSE
$onlythisextmode = "";
$onlyfilesize=true;
$onlyfilesizemode = 3145728; //не более 3х мегабайт
$exludesubdirs=false; // - не обрабатывать подкаталоги
if(STATUS_BU)
{
autopilots_add_time(3);
$path_result = compress($path, $archivename);
if(YADISK_BU)
{
if(file_exists(SANTI_SERVERPATH."/".SANTI_PATH."/datas/backups/".$archivename))
send_to_yadisk($archivename);
unlink(SANTI_SERVERPATH."/".SANTI_PATH."/datas/backups/".$archivename);
}
}
else
die();
function compress($path, $archivename)
{
global $site_root, $totalbytes, $totalfiles, $output, $add_in_contents;
@chdir($site_root);
_get_dir_tree();
if (extension_loaded('zlib'))
{
$fpz = gzopen(SANTI_SERVERPATH.'/'.SANTI_PATH.'/datas/backups/'.$archivename, 'wb9');
gzwrite($fpz, $add_in_contents);
gzclose($fpz);
}
else
{
return "0";
}
return "1";
}
function add_in_data($add_in_data_file)
{
global $site_root, $add_in_contents, $wspl1, $wspl2, $wsfn1, $wsfn2;
if (!isset($add_in_contents)) {$add_in_contents = '';}
$contents = @file_get_contents($site_root.$add_in_data_file);
$contents = @str_replace($wspl1, $wspl2, $contents);
$contents = @str_replace($wsfn1, $wsfn2, $contents);
$add_in_contents .= $wspl1;
$add_in_contents .= $add_in_data_file;
$add_in_contents .= $wsfn1;
$add_in_contents .= @substr(sprintf('%o', fileperms($site_root.$add_in_data_file)), -3);
$add_in_contents .= $wsfn1;
$add_in_contents .= $contents;
}
function _get_dir_tree($parentdir='/')
{
//exludesubdirs - не обрабатывать подкаталоги TRUE/FALSE значение в
//exludethisdir - не эти каталоги TRUE/FALSE значение в $exludethisdirmode
//onlythisext - только с расширением TRUE/FALSE значение в $onlythisextmode
//onlyfilesize - не более байт TRUE/FALSE значение в $onlyfilesizemode
global $totalbytes, $totalfiles, $output, $exludesubdirs, $onlythisext, $onlythisextmode, $onlyfilesize, $onlyfilesizemode, $exludethisdir, $exludethisdirmode;
if (file_exists('.htaccess'))
{
$add_htaccess = 1;
$add_htaccess2 = 1;
if (!preg_match('/\.('.$onlythisextmode.')$/i', '.htaccess') and $onlythisext)
{
$add_htaccess = 0;
}
if ($onlyfilesize and filesize('.htaccess') > $onlyfilesizemode)
{
$add_htaccess2 = 0;
}
if ($add_htaccess == 1 and $add_htaccess2 == 1)
{
add_in_data ($parentdir.'.htaccess');
//$output .= ' <span class="filedir">'.ltrim($parentdir, '/').'.htaccess</span><br />';
}
}
if (file_exists('.htpasswd'))
{
$add_htpasswd = 1;
$add_htpasswd2 = 1;
if (!preg_match('/\.('.$onlythisextmode.')$/i', '.htpasswd') and $onlythisext)
{
$add_htpasswd = 0;
}
if ($onlyfilesize and filesize('.htpasswd') > $onlyfilesizemode)
{
$add_htpasswd2 = 0;
}
if ($add_htpasswd == 1 and $add_htpasswd2 == 1)
{
add_in_data($parentdir.'.htpasswd');
//$output .= ' <span class="filedir">'.ltrim($parentdir, '/').'.htpasswd</span><br />';
}
}
foreach (glob('*')?glob('*'):array() as $file)
{
if (substr($file, 0, 4) == 'sabu') {continue;}
if (substr($file, -4, 4) == 'sabu') {continue;}
if (is_file($file) && is_readable($file))
{
if ($onlyfilesize and filesize($file) > $onlyfilesizemode) {continue;}
if (!preg_match('/\.('.$onlythisextmode.')$/i', $file) and $onlythisext) {continue;}
add_in_data($parentdir.$file);
//$output .= ' <span class="filedir">'.ltrim($parentdir, '/').$file.'</span><br />';
}
else if (is_dir($file))
{
if (!$exludesubdirs)
{
if (preg_match('/('.$exludethisdirmode.')$/i', $file) and $exludethisdir) {continue;}
$cwd = getcwd();
$site_root = preg_replace('/\+/', '/', $cwd);
/*$output .= '<span class="filedir">'.$site_root.'/'.$file.'</span><br />';*/
if (!@chdir($file))
{
continue;
}
_get_dir_tree($parentdir.$file.'/');
chdir("..");
}
}
}
}
?>