Сделать backup сайта php

Появилась нужда в создании бэкапов посредствам php раз в день.

Есть скрипт

<?php

$backup_folder = '/backup';    // куда будут сохранятся файлы
$backup_name = 'lyubimoff-projects_backup_' . date("Y-m-d");    // имя архива
$dir = '/public_html/';    // что бэкапим
$delay_delete = 30 * 24 * 3600;    // время жизни архива (в секундах)


$mail_to = 'T***@yandex.ru';
$mail_subject = 'lyubimoff-*** backup';
$mail_message = '';
$mail_headers = 'MIME-Version: 1.0' . "\r\n";
$mail_headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$mail_headers .= 'To: T***@yandex.ru <T***@yandex.ru>' . "\r\n";
$mail_headers .= 'From: lyubimoff-*** <admin@lyubimoff-***.ru>' . "\r\n";

function backupFiles($backup_folder, $backup_name, $dir)
{
    $fullFileName = $backup_folder . '/' . $backup_name . '.tar.gz';
    shell_exec("tar -cvf " . $fullFileName . " " . $dir . "/* ");
    return $fullFileName;
}


function deleteOldArchives($backup_folder, $delay_delete)
{
    $this_time = time();
    $files = glob($backup_folder . "/*.tar.gz*");
    $deleted = array();
    foreach ($files as $file) {
        if ($this_time - filemtime($file) > $delay_delete) {
            array_push($deleted, $file);
            unlink($file);
        }
    }
    return $deleted;
}



$start = microtime(true);    // запускаем таймер

$deleteOld = deleteOldArchives($backup_folder, $delay_delete);    // удаляем старые архивы
$doBackupFiles = backupFiles($backup_folder, $backup_name, $dir);    // делаем бэкап файлов

// добавляем в письмо отчеты
if ($doBackupFiles) {
    $mail_message .= 'site backuped successfully<br/>';
    $mail_message .= 'Files: ' . $doBackupFiles . '<br/>';
}


if ($deleteOld) {
    foreach ($deleteOld as $val) {
        $mail_message .= 'File deleted: ' . $val . '<br/>';
    }
}

$time = microtime(true) - $start;     // считаем время, потраченное на выполнение скрипта
$mail_message .= 'script time: ' . $time . '<br/>';
echo 'nice!';

mail($mail_to, $mail_subject, $mail_message, $mail_headers);    // и отправляем письмо

?>

Письмо приходит с текстом

site backuped successfully
Files: /backup/lyubimoff-projects_backup_2020-07-29.tar.gz
script time: 8.9883804321289E-5

Система каталогов выглядит

 /
  ->backup
  ->public_html
  ->tmp

Почему не создаются бэкапы? Потому что папка вынесена за пределы public_html? Пытался внести ее внутрь, все равно - результата нет.


Ответы (0 шт):