X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Инструмент для автоматического бекапа.
apodhodi
apodhodi
Topic Starter сообщение 7.7.2013, 2:49; Ответить: apodhodi
Сообщение #1


Нужен инструмент для автоматического бекапа сайта, автоотправкой по ftp на другой сервак и возможностью запуска по крону! Кто что использует?
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Belos
Belos
сообщение 7.7.2013, 4:05; Ответить: Belos
Сообщение #2


Свой сервер, крон, скрипы.

А вообще, автобэкап делается на многих хостингах, и крон работает

Сообщение отредактировал Belos - 7.7.2013, 4:06
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
apodhodi
apodhodi
Topic Starter сообщение 7.7.2013, 12:48; Ответить: apodhodi
Сообщение #3


(Belos @ 7.7.2013, 4:05) *
А вообще, автобэкап делается на многих хостингах, и крон работает
Возможность делать бекап есть, но не автоматическом режиме.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
KipiaSoft
KipiaSoft
сообщение 7.7.2013, 12:57; Ответить: KipiaSoft
Сообщение #4


если сайт на wp, то можно использовать плагин,который делает бэкап по расписанию и отправляет его на облачный сервис дропбокс. все это на автомате


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
apodhodi
apodhodi
Topic Starter сообщение 7.7.2013, 21:35; Ответить: apodhodi
Сообщение #5


KipiaSoft, Почти все на DLE, но хотелось бы что бы это было не привязано к CMS/
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Gerga
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


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Ultrastalker
Ultrastalker
сообщение 9.7.2013, 0:40; Ответить: Ultrastalker
Сообщение #7


SXD + планировщик + самописные скрипты.


--------------------
Счастье для всех, даром, и пусть никто не уйдёт обиженным!
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
shyrik_don
shyrik_don
сообщение 24.7.2013, 16:19; Ответить: shyrik_don
Сообщение #8


apodhodi, обычно для таких задач используются разного рода скрипты на shell/pash/python/php, которые запускаются по крону. Если надо, то могу свой скрипт скинуть.

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) ✅ sms.chekons.com - ⭐ Сервис для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" ⭐
Сервис для получения SMS на реальные номера USA
13 Chekon 4056 Сегодня, 11:48
автор: Chekon
Открытая тема (нет новых ответов) Rebex.io – Ваша инновационная платформа для обмена криптовалюты!
1 Rebex 667 Вчера, 11:50
автор: Rebex
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
11 Aloof 2802 16.4.2024, 12:48
автор: diviner99
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
54 arendator 34819 15.4.2024, 15:16
автор: arendator
Горячая тема (нет новых ответов) ⭕Антидетект браузер AdsPower для эффективной работы с мультиаккаунтами!
83 AdsPower 24410 14.4.2024, 22:52
автор: AdsPower


 



RSS Текстовая версия Сейчас: 18.4.2024, 21:32
Дизайн