- PVSM.RU - https://www.pvsm.ru -
Каждый вебмастер, у которого на
Т.е.ак, перед нами стоят несколько задач:
К тому же все вышесказанное нужно автоматизировать с периодичностью раз в сутки. Как быть, если подручными средствами являются лишь возможности PHP [2]?
<?php
$servername = 'localhost'; // сервер базы данных
$username = 'username'; // пользователь
$password = 'password'; // пароль
$projects_path = '/home/username/public_html/projects'; // Путь к файлам, которые НУЖНО заархивировать
$backup_path = '/home/username/public_html/backup'; // Путь к директории, где мы будем хранить архивы
//--------------------------
// каждый созданный архив будет иметь имя, состоящее из текущей даты
$date = date("d-m-Y");
// получение массива баз данных (сама функция - ниже)
$db_names_array = get_db_names($servername,$username,$password);
// в этом цикле мы создаем бекапы всех баз данных, и переносим их в $projects_path
foreach ($db_names_array as &$db_name) {
exec("mysqldump -u ".$username." -p".$password." -h ".$servername." ".$db_name." > ".$projects_path."/dump-".$db_name."-".$date.".sql");
}
// создаем основной архив с файлам и бекапами баз данных
exec("/bin/tar -cjf ".escapeshellarg($backup_path."/backup-".$date.".tar.bz2")." ".escapeshellarg($projects_path));
// Это последнее действие. В этом цикле мы удаляем из $projects_path все бекапы баз данных (они ведь нам уже не нужны).
foreach ($db_names_array as &$db_name) {
exec("rm ".$projects_path."/dump-".$db_name."-".$date.".sql");
}
// --------------- Функция получения имен всех баз данных -----------------------
function get_db_names($servername,$username,$password){
$db = mysql_connect($servername,$username,$password) or die("Can't establish the db connection!");
$query = "show databases;";
$result = mysql_query($query);
mysql_close();
unset($db_array);
while ($line = mysql_fetch_array($result, MYSQL_ASSOC)){
$db_array[] = $line["Database"];
}
return $db_array;
}
?>
У кого получится воспользоваться вышеописанным кодом — буду рад увидеть комментарии!
Спасибо!
Автор: vladimirterehoff
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/programmirovanie/4327
Ссылки в тексте:
[1] хостинге: https://www.reg.ru/?rlink=reflink-717
[2] PHP: http://www.php.net/
Нажмите здесь для печати.