Инструмент для автоматического бекапа

Тема в разделе "Как сделать...", создана пользователем cocs, 7 июл 2013.

  1. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    441
    Симпатии:
    113
    Нужен инструмент для автоматического бекапа сайта, автоотправкой по ftp на другой сервак и возможностью запуска по крону! Кто что использует?
     
  2. Uniorsis

    Uniorsis Постоялец

    Регистр.:
    20 июл 2011
    Сообщения:
    81
    Симпатии:
    15
    Смотря какая CMS?
     
  3. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    441
    Симпатии:
    113
    Большинство сайтов на dle, но хотелось бы не привязанности к CMS...
     
  4. fairbug

    fairbug

    Регистр.:
    1 май 2013
    Сообщения:
    190
    Симпатии:
    67
    имхо стандартные средства isp панели отлично справляются
     
  5. cocs

    cocs

    Регистр.:
    5 дек 2009
    Сообщения:
    441
    Симпатии:
    113
    У меня сипанель
     
  6. okuznetsov

    okuznetsov Писатель

    Регистр.:
    19 фев 2013
    Сообщения:
    0
    Симпатии:
    0
    Я пользуюсь XCloner Backup and Restore - вызываю по крону, так же имеется возможность отправки по фтп (но я ей не пользовался)

    Насколько помню - поддерживает много популярных CMS, в том числе joomla и wordpress

    Добавлено latteo: Используй кнопку редактирования сообщения
     
  7. etosh

    etosh Создатель

    Регистр.:
    22 июл 2013
    Сообщения:
    32
    Симпатии:
    4
    А база как будет бекапиться? Для кое-каких блогов я пользуюсь самописным скриптом, который ужимает все содержимое папки (включая файлы и директории) в .tar (класс выдрал из Битрикса). Но у меня эти сайты на SQlite крутятся, то бишь жмется в архив действительно все, сайт восстанавливается на 100%! А вот как быть в таком случае с базой MySQL честно говоря, не представляю (в смысле, как бекапить ее автоматом).
     
  8. mpv

    mpv Постоялец

    Регистр.:
    30 апр 2013
    Сообщения:
    68
    Симпатии:
    13
    #!/bin/sh

    date=`date +%F`

    find ./backup/ -type f -mtime +7 -delete #удаляем все старше 7 дне

    #собираем дампы баз
    for db in dbname1 dbname2 dbname3
    do
    /usr/local/bin/mysqldump --default-character-set=cp1251 --add-drop-table -u root ${db} | /usr/bin/bzip2 > ./backup/${db}_${date}.sql.bz2
    done

    #собираем файло
    for dir in sitename1 sitename2 sitename3
    do
    /usr/bin/tar -cjf ./backup/${dir}_${date}.tar /home/${dir}/htdocs/
    done
     
    etosh и kutcher нравится это.
  9. donvictorio

    donvictorio

    Регистр.:
    28 янв 2010
    Сообщения:
    877
    Симпатии:
    808
    файлы:

    Код:
    ### system setup ###
     
    GZIP="$(which gzip)"
    NOW=$(date +"%Y-%m-%d.%H-%M-%S")
     
    ### www dirs setup ###
     
    WWW_NAMES=("site1.ru" "site2.ru" "site3.ru")
    WWW_PATHS=("/home/sites/site1.ru" "/home/sites/site2.ru" "/home/sites/site3.ru")
     
    WWW_BACKUP_DIR=/backup/files #Директория, куда сохраняются бекапы
    FILES_OLDER_THAN=5 #срок хранения
     
    # backup www
     
    for WWW in ${!WWW_NAMES[*]}; do
    WWW_DIR=$WWW_BACKUP_DIR/${WWW_NAMES[$WWW]}
    if [ ! -d "$WWW_DIR" ]; then
    mkdir -p $WWW_DIR
    fi
                       
    FILE=$WWW_DIR/${WWW_NAMES[$WWW]}-$NOW.tar.gz
    tar -zcf $FILE ${WWW_PATHS[$WWW]}
    done
                           
    # delete files older than $DB_OLDER_THAN days
    find $WWW_BACKUP_DIR -type f -mtime +$FILES_OLDER_THAN -exec rm {} \;
    базы

    Код:
    ### system setup ###
     
    GZIP="$(which gzip)"
    NOW=$(date +"%Y-%m-%d.%H-%M-%S")
     
    ### mysql setup ###
    # view all dbs: mysql -u admin -h localhost -p -Bse 'show databases'
     
    DB_LIST="base1 base2 base3"
    DB_USER="user"
    DB_PASS="pass"
    DB_HOST="localhost"
    MYSQL="$(which mysql)"
    MYSQLDUMP="$(which mysqldump)"
    DB_BACKUP_DIR=/home/sites/backup/sql
    FILES_OLDER_THAN=10 #days
     
    # backup dbs
     
    for DB in $DB_LIST; do
    DB_DIR=$DB_BACKUP_DIR/$DB
    if [ ! -d "$DB_DIR" ]; then
    mkdir -p $DB_DIR
    fi
                       
    FILE=$DB_DIR/$DB-$NOW.gz
    $MYSQLDUMP -u $DB_USER -h $DB_HOST -p$DB_PASS --replace -R $DB | $GZIP -9 > $FILE
    done
                           
    # delete files older than $DB_OLDER_THAN days
    find $DB_BACKUP_DIR -type f -mtime +$FILES_OLDER_THAN -exec rm {} \;
    создать sh файлы, скопировать в них этот ткод, ввести свои значения путей, баз, логинов-паролей.
    сделать им chmod +x
    прописать в крон раз в сутки.
     
    etosh нравится это.
  10. okuznetsov

    okuznetsov Писатель

    Регистр.:
    19 фев 2013
    Сообщения:
    0
    Симпатии:
    0
    Точно по такому же принципу как бекапятся ваши базы на SQlite (собирается дамп базы данных в текстовый формат и сжимается в формат .gz (можно и без сжатия, тогда в формат .tar). Около недели назад случилась неприятность и пришлось восстанавливать один из сайтов на Joomla (файлы+база данных) всё прошло успешно. Поэтому рекомендую XCloner Backup and Restore