Разработка сайта для Вашего бизнеса. Веб дизайн. Дизайн логотипа, фирменного стиля, рекламная фотография . Комплексный рекламный креатив.

Ralex. We do the work.
На рынке с 1999го года. Средняя ценовая категория. Ориентация на эффективность решений.
Ознакомтесь с нашим портфолио
Узнайте больше о услугах
Свяжитесь с нами:
E-mail: [email protected]
Tel: (044) 587 - 84 - 78
Custom web design & дизайн и разработка сайта "под ключ"
Креативный, эффективный дизайн. Система управления сайтом (СУС).
Custom flexible разработка систем электронной коммерции
Система e-commerce разрабатывается под индивидуальные потребности. Гибкая функциональность.
Search Engine Optimzation & оптимизация под поисковые системы (SEO)
Постоянная оптимизация и мониторинг сайта в поисковых системах. Достигаем результата быстро и эффективно
Custom logo design & дизайн логотипа и фирменного стиля
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.
профессиональная рекламная фотография
креативно, смело, качественно
Custom logo design & рекламный креатив. дизайн рекламы
Многолетний опыт. Огромное портфолио. Уникальное предложение и цена.

Адміністрування сайту. Backup бази даних за допомогою PHP скрипта і обмеження хостингу


Нещодавно я зіткнувся з невеликою проблемою. Потрібно було організувати автоматичне створення резервних копій бази даних.

Завдання, звичайно, стандартна, а, з огляду на обсяг бази (менше 1 МБ), може бути вирішена без спеціального софту і обладнання.

Так що я вибрав найпростіший спосіб (здійснюється в три етапи):

1) створення дампа БД;
2) упаковка дампа в архів;
3) відправка архіву на eMail.

На сьогоднішній день, обсяги поштових скриньок дозволяють взагалі не видаляти ці архіви, і надійність рішення виходить досить високою, тому що дані зберігаються на різних серверах.

Тобто все, що потрібно зробити - написати скрипт і запускати його за допомогою cron.

Скрипт я вирішив зробити на PHP , І відразу ж зіткнувся з проблемою.

Для створення дампа бази найзручніше використовувати утиліту mysqldump, яка у мене на хостингу прекрасно работет з консолі, але не запускається з скрипта.

Причина виявилася дуже простий. В налаштуваннях PHP на сервері хостера були відключені функції: shell_exec (), exec () і т.п.

Тому довелося робити backup в два етапи.

1) Створення дампа БД
Для цього планувальник я просто додав команду:
mysqldump -uuser_name -hhost_name -puser_password db_name> /path_to_tmp/db_backup/mydbdump.sql

В результаті виконання цієї команди, створюється файл mydbdump.sql з дампом бази, який буде розміщений в папці / path_to_tmp / db_backup /. В параметрах команди, природно, потрібно вказати справжні імена бази, користувача, пароль і шлях до теки / tmp.

Примітка. Для папки / path_to_tmp / db_backup / повинні бути встановлені права на запис.

2) Упаковка дампа в архів і відправка по eMail

Ці операції виконуються одним скриптом.

&lt;? Php / ** * Цю функцію я взяв на сайті * http://www.weberdev.com/get_example-4173.html * / function mail_attachment ($ filename, $ path, $ mailto, $ from_mail, $ from_name, $ replyto, $ subject, $ message) {$ file = $ path. $ filename; $ File_size = filesize ($ file); $ Handle = fopen ($ file, "r"); $ Content = fread ($ handle, $ file_size); fclose ($ handle); $ Content = chunk_split (base64_encode ($ content)); $ Uid = md5 (uniqid (time ())); $ Name = basename ($ file); $ Header = "From:". $ From_name. "<". $ From_mail. "> \ R \ n"; $ Header. = "Reply-To:". $ Replyto. "\ R \ n"; $ Header. = "MIME-Version: 1.0 \ r \ n"; $ Header. = "Content-Type: multipart / mixed; boundary = \" ". $ Uid." \ "\ R \ n \ r \ n"; $ Header. = "This is a multi-part message in MIME format. \ R \ n"; $ Header. = "-". $ Uid. "\ R \ n"; $ Header. = "Content-type: text / plain; charset = iso-8859-1 \ r \ n"; $ Header. = "Content-Transfer-Encoding: 7bit \ r \ n \ r \ n"; $ Header. = $ Message. "\ R \ n \ r \ n"; $ Header. = "-". $ Uid. "\ R \ n"; $ Header. = "Content-Type: application / octet-stream; name = \" ". $ Filename." \ "\ R \ n"; // use diff. tyoes here $ header. = "Content-Transfer-Encoding: base64 \ r \ n"; $ Header. = "Content-Disposition: attachment; filename = \" ". $ Filename." \ "\ R \ n \ r \ n"; $ Header. = $ Content. "\ R \ n \ r \ n"; $ Header. = "-". $ Uid. "-"; if (mail ($ mailto, $ subject, "", $ header)) {// echo "mail send ... OK"; // or use booleans here} else {echo "mail send ... ERROR!"; }} // розміщення і ім'я файлу з дампом бази $ fileName = '/path_to_tmp/db_backup/mydbdump.sql'; // розміщення архіву з дампом $ archivePath = '/ home / simpleco / tmp / db_backup /'; // ім'я архіву $ archiveName = 'rssevents_backup _'. Date ( 'Y_m_j_G_i'). '. Zip'; // створюємо архів $ zip = new ZipArchive (); if ($ zip-> open ($ archivePath. $ archiveName, ZIPARCHIVE :: CREATE) === TRUE) {// додаємо в архів файл з дампом $ zip-> addFile ($ fileName, 'mydbdump.sql'); $ Zip-> close (); // echo 'ok'; } Else {echo 'failed creating zip'; } // встановлюємо змінні для відправки пошти // ім'я і шлях до файлу з архівом $ my_file = $ archiveName; $ My_path = $ archivePath; // ім'я відправника $ my_name = "my_name"; // зворотну адресу $ my_mail = "[email protected]"; $ My_replyto = "[email protected]"; // тема листа $ my_subject = "RSS events backup"; // текст листа $ my_message = 'У доданому файлі знаходиться дамп бази. '.Date (' FjY G: i '); // відправляємо лист (в третьому параметрі адресу одержувача) mail_attachment ($ my_file, $ my_path, "[email protected]", $ my_mail, $ my_name, $ my_replyto, $ my_subject, $ my_message); @unlink ($ archivePath. $ archiveName); @unlink ($ fileName); ?>

Розберемо, як працює цей скрипт.

На початку (рядки 6 - 35) оголошена функція mail_attachment, яка виконує відправку листа з вкладенням. Зізнаюся чесно, писати цю функцію самому мені було лінь 🙂. Тому я використовував готову - з цього сайта .

Після цього, пакуємо файл з дампом в архів (рядки 45 - 53). Для цього створюємо об'єкт типу ZipArchive і викликаємо його метод open з параметром ZIPARCHIVE :: CREATE. А за допомогою методу addFile додаємо в архів файл з дампом.
І, природно, не забуваємо закрити архів (метод close).

Примітка. Детальніше почитати про створення архівів за допомогою PHP можна в статті « Створення zip архівів на PHP ».

Дамп упакований, додаємо його в якості вкладення до листа і відправляємо (рядок 70). Імена параметрів функції mail_attachment говорять самі за себе, тому описувати я їх не буду.

Завершальним етапом, видаляємо файли з дампом і архівом (рядки 72, 73).

Тепер залишилося тільки завантажити цей скрипт на сервер і додати команду для cron.

php -q /path_to_backup_script/dbbackup.php

Час і періодичність запуску скриптів особливої ​​ролі не грає. Але, природно, скрипт відправки листа повинен виконуватися після того, як буде створено дамп.

Як бачите, рішення вийшло не дуже гарне, але працездатний. Звичайно, використовувати його для великих баз даних не вийде. Але, з іншого боку, якщо ваша база містить десятки або сотні мегабайт інформації, то навряд чи вона знаходиться на shared хостингу 🙂.

Успіхів!

А як ви робите бекапи?

Lt;?
А як ви робите бекапи?
Категории
  • Биология
  • Математика
  • Краеведению
  • Лечебная
  • Наука
  • Физике
  • Природоведение
  • Информатика
  • Новости

  • Новости
    Подготовка к ЕГЭ по математике
    Статьи Опубликовано: 05.10.2017 Подготовка к ЕГЭ по МАТЕМАТИКЕ. 1 часть. Эффективный курс подготовки. Вы находитесь на сайте www.ege-ok.ru - Подготовка к ЕГЭ по математике. Меня зовут Инна Владимировна

    Куда поступить с обществознанием, русским и математикой
    Статьи Опубликовано: 06.10.2017 Сдача ЕГЭ. Куда поступать? Обществознание считается одним из самых популярных предметов, которые выпускники сдают на ЕГЭ. Ввиду высокого рейтинга дисциплины Рособрнадзор

    Сайт Майер Елены - ЕГЭ по математике
    Планируется проведение двух отдельных экзаменов – базового и профильного. Кому сдавать базовый ЕГЭ по математике? Базовый ЕГЭ организуется для выпускников, изучающих математику для общего развития

    ГДЗ решебник по математике 4 класс
    Извините, тут пока ничего нет ((( Решебник по математике 4 класс (Истомина Н.Б.) – не просто возможность быстро выполнить домашнее задание для учащегося, но и способ разобраться в труднорешаемых задачах.

    ГДЗ по математике 1 класс Самсонова самостоятельные работы
    Решебник по математике за 1 класс автора Самсоновой Л.Ю. 2012 года издания. Данное пособие предлагает готовые решения на разнообразные упражнения, направленные на активизацию всего учебного процесса. Здесь

    Для этой работы нужна математика
    Слотов: 956 Рулеток: 7 Лицензия: Pragmatic Play, Microgaming, ELK, Yggdrasil, Habanero, Amatic, Isoftbet, Netent, Rival, Igrosoft, Quickspin. Игры: Автоматы, Покер, Рулетки. Всего 963 Отдача: 98% Бонус

    Веселые задачи по математике 2 класс
    Во время занятий для того, чтобы немного переключить внимание школьников, но при этом не уйти от предмета, можно давать шутливые задачи на сообразительность. Буду пополнять коллекцию таких задач. Дополнительная

    Функция экспонента в Excel
    Одной из самых известных показательных функций в математике является экспонента. Она представляет собой число Эйлера, возведенное в указанную степень. В Экселе существует отдельный оператор, позволяющий

    ЕГЭ по математике 2018
    ЕГЭ по математике, наравне с русским языком , – обязательный экзамен для сдачи выпускниками 11-х классов. По статистике он самый сложный. Мы предлагаем ознакомиться с общей информацией об экзамене и

    Секреты эффективной и быстрой подготовки ко второй части ОГЭ по математике.
    Уважаемые девятиклассники, настоящие или будущие! Часто от вас приходится слышать следующие вопросы. Легко ли подготовиться к заданиям второй части ОГЭ по математике? Сколько для этого понадобится


    Наши клиенты
    Клиенты

    Быстрая связь

    Тел.: (044) 587-84-78
    E-mail: [email protected]

    Имя:
    E-mail:
    Телефон:
    Вопрос\Комментарий: