Помощник
|
Инструмент для автоматического бекапа. |
apodhodi
|
Сообщение
#1
|
||
|
|
||
|
|||
Belos |
7.7.2013, 4:05;
Ответить: Belos
Сообщение
#2
|
|
Свой сервер, крон, скрипы.
А вообще, автобэкап делается на многих хостингах, и крон работает Сообщение отредактировал Belos - 7.7.2013, 4:06 |
|
|
apodhodi
|
Сообщение
#3
|
|
|
|
|
KipiaSoft |
7.7.2013, 12:57;
Ответить: KipiaSoft
Сообщение
#4
|
|
если сайт на wp, то можно использовать плагин,который делает бэкап по расписанию и отправляет его на облачный сервис дропбокс. все это на автомате
-------------------- |
|
|
apodhodi
|
Сообщение
#5
|
|
KipiaSoft, Почти все на DLE, но хотелось бы что бы это было не привязано к CMS/
|
|
|
Gerga |
8.7.2013, 20:31;
Ответить: Gerga
Сообщение
#6
|
|
php-скрипт бэкапа базы данных. Вводите аутентификационные данные и запускаете скрипт. Можно поставить крона.
Развернуть/Свернуть
<?php
backup_database_tables('localhost', 'user', 'password', 'data_base', '*'); // Вызываем функцию резервного копирования БД // Начало функция резервного копирования базы данных function backup_database_tables($host,$user,$pass,$name,$tables) { $link = mysql_connect($host,$user,$pass); if (mysql_select_db($name, $link)) { //Получаем все таблицы if($tables == '*') { $tables = array(); $result = mysql_query('SHOW TABLES'); while($row = mysql_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } //Цикл по всем таблицам и формирование данных foreach($tables as $table) { $result = mysql_query('SELECT * FROM '.$table); $num_fields = mysql_num_fields($result); $return.= 'DROP TABLE '.$table.';'; $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); $return.= "\n\n".$row2[1].";\n\n"; for ($i = 0; $i < $num_fields; $i++) { while($row = mysql_fetch_row($result)) { $return.= 'INSERT INTO '.$table.' VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); //$row[$j] = ereg_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"'; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ");\n"; } } $return.="\n\n\n"; } //Сохраняем файл $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+'); if (fwrite($handle, $return)) { echo '<div class="succer" style="background-color: #FFFFE0; border: 1px solid #E6DB55; padding: 10px;">Бэкап успешно создан!</div>'; } else echo '<div class="error" style="background-color: #E64432; border: 1px solid #88281D; padding: 10px;">Ошибка! Бэкaп не создан!</div>'; fclose($handle); } } ?> html + php. Эту версию нельзя под крон: Развернуть/Свернуть
<html>
<head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>Бэкап БД</title> <link href="style.css" type="text/css" rel="stylesheet"> </head> <style> .ok { background-color: #FFFFE0; border: 1px solid #E6DB55; padding: 10px; } .error { color: black; background-color: #E64432; border: 1px solid #88281D; padding: 10px; } </style> <body> <form action="?" method="post"> <table> <tr> <td><label for="host">Хост (обычно localhost): </label></td> <td><input type="text" name="host" id="host" value="localhost"></td> </tr> <tr> <td><label for="user">Пользователь БД (*): </label></td> <td><input type="text" name="user" id="user"></td> </tr> <tr> <td><label for="pass">Пароль БД (*): </label></td> <td><input type="text" name="pass" id="pass"></td> </tr> <tr> <td><label for="db">Название БД (*): </label></td> <td><input type="text" name="db" id="db"></td> </tr> </table> <input type="submit" value="Выполнить" name="go"> </form> <?php if (isset($_POST['go'])) { if ($_POST['db'] <> '' AND $_POST['user'] <> '') { function obr ($a) { $a = addslashes($a); $a = htmlspecialchars($a); $a = stripslashes($a); $a = mysql_real_escape_string($a); return $a; } $host = 'localhost'; $name = obr($_POST['db']); $pass = obr($_POST['pass']); $user = obr($_POST['user']); $tables = '*'; // Начало резервного копирования базы данных $link = mysql_connect($host,$user,$pass); if (mysql_select_db($name, $link)) { //Получаем все таблицы if($tables == '*') { $tables = array(); $result = mysql_query('SHOW TABLES'); while($row = mysql_fetch_row($result)) { $tables[] = $row[0]; } } else { $tables = is_array($tables) ? $tables : explode(',',$tables); } //Цикл по всем таблицам и формирование данных foreach($tables as $table) { $result = mysql_query('SELECT * FROM '.$table); $num_fields = mysql_num_fields($result); $return.= 'DROP TABLE '.$table.';'; $row2 = mysql_fetch_row(mysql_query('SHOW CREATE TABLE '.$table)); $return.= "\n\n".$row2[1].";\n\n"; for ($i = 0; $i < $num_fields; $i++) { while($row = mysql_fetch_row($result)) { $return.= 'INSERT INTO '.$table.' VALUES('; for($j=0; $j<$num_fields; $j++) { $row[$j] = addslashes($row[$j]); //$row[$j] = ereg_replace("\n","\\n",$row[$j]); if (isset($row[$j])) { $return.= '"'.$row[$j].'"'; } else { $return.= '""'; } if ($j<($num_fields-1)) { $return.= ','; } } $return.= ");\n"; } } $return.="\n\n\n"; } //Сохраняем файл $handle = fopen('db-backup-'.time().'-'.(md5(implode(',',$tables))).'.sql','w+'); if (fwrite($handle, $return)) { echo '<div class="ok">Бэкап успешно создан!</div>'; } else echo '<div class="error">Ошибка! Бэкaп не создан!</div>'; fclose($handle); } } else echo '<div class="error">Не все поля заполнены</div>'; } ?> </body> </html> Сообщение отредактировал Gerga - 8.7.2013, 20:33 |
|
|
Ultrastalker |
9.7.2013, 0:40;
Ответить: Ultrastalker
Сообщение
#7
|
|
SXD + планировщик + самописные скрипты.
-------------------- |
|
|
shyrik_don |
24.7.2013, 16:19;
Ответить: shyrik_don
Сообщение
#8
|
|
|
apodhodi, обычно для таких задач используются разного рода скрипты на shell/pash/python/php, которые запускаются по крону. Если надо, то могу свой скрипт скинуть.
-------------------- |
|
|
||
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последний ответ | |
---|---|---|---|---|---|
✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐ Сервис для получения SMS на реальные номера USA |
13 | Chekon | 4078 | Вчера, 11:48 автор: Chekon |
|
Rebex.io – Ваша инновационная платформа для обмена криптовалюты! | 1 | Rebex | 681 | 17.4.2024, 11:50 автор: Rebex |
|
Какой % отказов нормален для сайта? | 11 | Aloof | 2814 | 16.4.2024, 12:48 автор: diviner99 |
|
Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат | 54 | arendator | 34836 | 15.4.2024, 15:16 автор: arendator |
|
⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами! | 83 | AdsPower | 24425 | 14.4.2024, 22:52 автор: AdsPower |
Текстовая версия | Сейчас: 19.4.2024, 21:49 |