Skip to main content

Простейший скрипт бекапа сайтов и баз MySQL

Январь 22, 2010 Автор: stranger

Потребовалось сделать простой скрипт для бекапа всех баз данный MySQL и файлов сайтов на сервере. Пусть сайты хранятся в папке SITES_DIR, бекапы будем хранить в папке BACKUP_PATH, создан пользователь в MYSQL для бекапов MYSQL_USER с паролем MYSQL_PASS. Дамп всех баз данных будем хранить одним файлом, а каждый сайт запакуем в отдельный архив. Резервные копии будем делать каждый день и хранить 5 дней.

  1. Создаем необходимые папки для бекапа:
    mkdir /backup
    mkdir /backup/vhosts
    mkdir /backup/bases
  2. Прописываем скрипт в крон:
    touch /etc/cron.daily/backup
  3. Вписываем содержимое скрипта заменяя значения в секции Settings на свои:
    cat > /etc/cron.daily/backup
    #!/bin/bash

    #Settings
    BACKUP_PATH="/backup"
    MYSQL_USER="backup"
    MYSQL_PASS="XXXXXXXX"
    SITES_DIR="/data/vhosts"

    ## MySQL backup
    mysqldump -u $MYSQL_USER -p$MYSQL_PASS -A  > $BACKUP_PATH/bases/mysql-`date +%m%d%y`

    ## Files backup
    for i in `ls $SITES_DIR`; do
    tar czf $BACKUP_PATH/vhosts/$i-`date +%m%d%y`.tar.gz $SITES_DIR/$i
    done

    ## Remove old backups
    find $BACKUP_PATH/vhosts -mtime +5|xargs rm -f
    find $BACKUP_PATH/bases -mtime +5|xargs rm -f

  4. Выставляем права на скрипт:
    chown root:root /etc/cron.daily/backup
    chmod 700 /etc/cron.daily/backup
  5. Перезапускаем Cron:
    /etc/init.d/crond restart

 

Комментарии

Занимательно и познавательно

Февраль 25, 2012 Автор: eftanaziyaim, 4 года 13 недель ago
Comment: 8605

Занимательно и познавательно

redhat

Май 4, 2010 Автор: dimetrius, 6 лет 3 недели ago
Comment: 6598

Ребята, не могу понять как это реализовать в CentOS/Fedora.

Делаю всё что написано, но действий никаких.

При принудительном запуске скрипта, получаю:

# /etc/cron.d/backup
-bash: /etc/cron.d/backup: Отказано в доступе

еще бы аплоад на другой сервер по фтп добавить...

Апрель 11, 2010 Автор: Гость, 6 лет 7 недель ago
Comment: 4456

В силу своих небольших знаний и умений сам писать ничего не могу. Скрипт как раз, который нужен мне.

 

Только бы добавить продолжение, что бэкапы на удаленный сервер по фтп заливались...

Можно такое сделать?

да можно при помощи пакета

Апрель 16, 2010 Автор: stranger, 6 лет 6 недель ago
Comment: 4462

да можно при помощи пакета ncftp

 

команда ncftpput

prostor

Март 9, 2010 Автор: Vankurik, 6 лет 11 недель ago
Comment: 1834

И вот опять заглянул на ваш сайт и снова нашел только здесь эту инфу, вот как

kit-tv

Март 6, 2010 Автор: Vankurik, 6 лет 12 недель ago
Comment: 1615

Вот это статейка сенкс расписали отлично видел подобное но не то

backup-manager

Январь 26, 2010 Автор: Гость, 6 лет 17 недель ago
Comment: 1417

Есть такая утилита - backup-manager ( http://www.backup-manager.org/ )

В Debian присутствует уже давно, позволяет делать инкрементальные бекапы для файлов и бекапы баз(MySQL). Умеет писать бекапы на диски или закидывать на удаленные сервера. Советую посмотреть, вместо того чтобы городить свои скрипты для этого.

Удачи Wink

kodx

Вот по этому и называется

Январь 28, 2010 Автор: stranger, 6 лет 17 недель ago
Comment: 1429

Вот по этому и называется скрипт простейшим. А насчет всяких там бекап менеджеров - не стоит думаю. Хочется извращений - поставьте Bacula

Premium Drupal Themes by Adaptivethemes