Ищу Скрипт/Софт для бэкапа сайта

Тема в разделе "Open Source", создана пользователем Chifth, 17 авг 2018.

XEvil 4.0 Релиз Состоялся!
  1. Chifth

    Chifth Постоялец

    Регистр.:
    29 фев 2016
    Сообщения:
    141
    Симпатии:
    68
    Короче ситуация такая:
    Есть - Несколько сайтов на разных хостингах (Джумла, вордпрес, и т.д.)
    Надо - Софт/скрипт/советы как можно периодически делать бэкапы себе на стационарный комп.
    Условия - Хостинги жадные, поэтому надо либо Ftp+mysql -> Архив, либо не слишком прожорливый скрипт (чтоб у хостера сервер не сгорел, когда я начну бэкапить 50ГБ (образно). На самом деле намного меньше).
    Причина просьбы о помощи - Через filezilla качать много мелких файлов - то еще удовольствие. Да и иногда вылетают запросы о том, что такой файл уже есть (стрёмно, вдруг что-то пропустит или запорет файл).
    Заранее спасибо :)
     
  2. Sorcus

    Sorcus Sorcus. A New Beginning.

    Moderator
    Регистр.:
    10 июл 2011
    Сообщения:
    498
    Симпатии:
    878
    mysqdump + tar + rsync + cron = profit. :glob:
     
  3. Chifth

    Chifth Постоялец

    Регистр.:
    29 фев 2016
    Сообщения:
    141
    Симпатии:
    68
    Спасибо. Постараюсь изучить.
    А варианта попроще нет? Пусть без автоматизации.
     
  4. doomer1234

    doomer1234 Создатель

    Регистр.:
    28 ноя 2008
    Сообщения:
    27
    Симпатии:
    0
  5. Sorcus

    Sorcus Sorcus. A New Beginning.

    Moderator
    Регистр.:
    10 июл 2011
    Сообщения:
    498
    Симпатии:
    878
    Ну mysqldump делать в любом случае наверное придётся.
    Создать архив тоже не очень сложно - "tar -cf archive.tar ./web_dir/"
    Остаётся выбрать способ синхронизации. Т.к. это хостинг и выбор может быть очень ограничен.
    А запихнуть это в backup.sh скрипт и вызывать по крону не очень сложно.
    :glob:
     
  6. incouser

    incouser Писатель

    Регистр.:
    6 ноя 2015
    Сообщения:
    5
    Симпатии:
    0
    А что-нибудь с web мордой есть?
     
  7. yahve1989

    yahve1989 Создатель

    Регистр.:
    6 мар 2013
    Сообщения:
    21
    Симпатии:
    1
    с мордой у меня нет.
    вот тебе простенький класс для выполнения MySQL бекапа.

    class sqldump
    {
    function __construct($db_user, $db_pass, $db_name, $table_name)
    {
    exec("mysqldump -u $db_user -p$db_pass $db_name $table_name | gzip > ".__DIR__."/".$table_name."-". date('d.m.Y-H:i').'.sql.gz');
    }
    }

    if (isset($_GET['table_name'])) {
    new sqldump('user', 'pass', 'db name', $_GET['table_name']);
    }
     
  8. incouser

    incouser Писатель

    Регистр.:
    6 ноя 2015
    Сообщения:
    5
    Симпатии:
    0
    Мое решение:

    # Забираем базу и ложим в корень сайта
    mysqldump -u User -pPassword DB_Name > /path/to/folder/site.com/public_html/dump.sql
    # Жмем весь сайт за исключением базы стран и городов (в вашем случае можно добавить свои исключения)
    tar --exclude='/path/to/folder/site.com/public_html/storage/database/maxmind/GeoLite2-City.mmdb' -czvf /path/to/folder/site.com/backup/`date +%Y-%m-%d_%H:%M`.tar.gz /path/to/folder/site.com/public_html
    # Удаляем дамп базы
    rm -f /path/to/folder/site.com/public_html/dump.sql
    # Заливаем на Гугел диск
    gdrive upload /path/to/folder/site.com/backup/*.*
    # Удаляем бекап с локального хоста для экономии места
    rm -f /path/to/folder/site.com/backup/*.*
    # Оповещаем на почту о успешной архивации
    echo "site.com - New BackUP is Ready" | mail -s NewBackUP info@site.com
     
  9. Stesh

    Stesh

    Регистр.:
    3 фев 2009
    Сообщения:
    287
    Симпатии:
    119
    Хотя бы имя рандомное генерил. Но правильнее лить за пределы web-директории, доступно на 98% всяких хостингов. Тогда есть шанс что дамп не уплывет в инет, пока будет делаться архив. https://habr.com/post/250313/