tushov.ru

блог php-программиста, преподавателя и конcультанта

PHP

DABackuper — автоматический бэкап по расписанию для DirectAdmin-панели

DABackuper — решение для тех кто хотел бы регулярно (по своему расписанию) и в автоматическом режиме (CRON) создавать бэкапы на сервере через доступ к DirectAdmin-панели. Итак, если на вашем хостинге есть DirectAdmin и вы хотели бы настроить автоматическое резервное копирование, то данный php-скрипт под названием DABackuper может вполне сгодиться. Скрипт я писал как раз для себя, тестировал на своем хостинге, результаты тестирования показали что все работает и теперь каждый день у меня в автоматическом режиме происходит резервное копирование. Итак, код скрипта DABackuper:

Не забудьте вписать свои данные (настройки для панели DirectAdmin). Учитывайте также что массив $post — это данные для моего хостинга, потому для настройки я бы советовал вам сначала расскомментировать строку:

и запустить скрипт в браузере, выбрать нужные опции соответствующие настройкам именно вашего хостинга и вашим предпочтениям, а дальше просто нажав на кнопку «Создать Резервную Копию» вы увидите именно ваши настройки, эти настройки необходимо будет вписать в массив $post.

Скрипт вы можете запускать как через браузер в ручном режиме, так и в автоматическом режиме настроив выполнение его в качестве CRON-задания.

13 Comments

  1. если адрес домена где гуя директадмина болтается один (допустим 123.ru)
    а адрес сайта который бэкаплю другой (zzz.ru)
    то
    042 $this->domen = ‘123.ru’;
    а zzz.ru куда прописать???
    это еще одну переменную нужно ввести?

  2. Тушов Леонид

    да, вы можете или создать новую переменную для вашего случая, или же просто поправить код в нужных местах заменив $this->domen на нужный вам ‘zzz.ru’
    к примеру:
    [php]function test()
    {
    $result = file_get_contents(‘http://’ . $this->user . ‘:’ . $this->password . ‘@’ . $this->domen . ‘:’ . $this->port . ‘/CMD_SITE_BACKUP?domain=’ . ‘zzz.ru’);[/php]
    и еще внимательно определив ваши параметры (настройки бэкапа) по необходимости тоже внести изменения здесь:
    [php]function _create()
    {
    $post = http_build_query(array(
    ‘domain’ => ‘zzz.ru’,
    ‘action’ => ‘backup’,[/php]

  3. Большое спасибо!!!
    все получилось!!!

  4. Warning: file_get_contents(http://…@domain.ru:2082/CMD_SITE_BACKUP?domain=domain.ru) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 401 Access Denied in /home/user/public_html/user/administrator/DABackuper.php on line 149

    Правильно ли класть файл в корень админки?

  5. Тушов Леонид

    Warning: file_get_contents(http://…@domain.ru:2082/CMD_SITE_BACKUP?domain=domain.ru) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 401 Access Denied in /home/user/public_html/user/administrator/DABackuper.php on line 149

    Правильно ли класть файл в корень админки?

    да вообщем-то этому скрипту все равно где лежать )
    Вы это мне натуральную ошибку скопировали?
    а то у вас в строке

    http://…@domain.ru:2082/CMD_SITE_BACKUP?domain=domain.ru

    естественно будет ошибка если вы в настройках скрипта свой домен не прописали =)

  6. Конечно реальную, ну заменила свой на domen в посте! Все прописано кроме массива $post.

  7. Тушов Леонид

    так ну если все правильно настроили… вы через CRON пробуете запускать?

  8. Ну вообще хотелось бы автоматизировать, а ошибку выдает, когда я в браузере запускаю. Про CRON ничего не слышала :)

  9. Тушов Леонид

    вы $DABackuper->test(); запускаете или $DABackuper->_exec(); ?
    можете подробно описать какие именно изменения (настройки) вы внесли в скрипт, и как вы запускаете?
    и еще сразу такой вопрос не работает ли ваша панель DirectAdmin через HTTPS ?

  10. панель работает через http,
    настройки внесла только в function DABackuper(),
    запускаю скрипт в браузере,
    а запускаю наверно и то, и то, раз все раскомментировано

  11. Тушов Леонид

    у вас должна быть раскомментирована строка:
    [php]$DABackuper->test();[/php]
    она должна быть перед строкой
    [php]$DABackuper->_exec();[/php]
    далее вы просто запускаете скрипт — и вылетает та ошибка которую вы мне указали?

  12. ну да :)

  13. Тушов Леонид

    в тестовом режиме самое главное чтобы не было ошибок в настройках:
    [php] // домен
    $this->domen = ‘domen.ru’;
    // порт (стандартный для DirectAdmin’а это 2222)
    $this->port = ‘2222’;
    // пользователь Direct Admin
    $this->user = ‘user’;
    // пароль пользователя
    $this->password = ‘pass’;[/php]
    ваша ошибка HTTP/1.1 401 Access Denied как раз бывает при невозможности доступа для данного юзера или с данным паролем… проверьте эти настройки еще раз.. нет ли где ошибки?

Leave a Reply

Theme by Anders Norén