Понедельник, 23.12.2024, 09:57
# FreeBSD ГлавнаяРегистрацияВход
Приветствую Вас Гость | RSS
Меню сайта
Категории раздела
Мои статьи [167]
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Форма входа
 Каталог статей 
Главная » Статьи » Мои статьи

Настройка сервера архивации Drupal сайтов на базе rsnapshot

Постановка задачи

Необходимо архивировать все сайты на поддержке,требования:
1) Удобная и быстрая настройка
2) Архивы должны хранится 7 дней и быть циклическими.
3) Решили что классическая архивация с помощью rsync и mysqldump надежней

Реализация

Раньше у нас уже был опыт решения подобной задачи, написали кучу скриптов на bash'e в результате процесс настройки был сложноват. На этот раз решили пойти другим путем, а именно воспользоваться программой rsnapshot, которая в свою очередь может удовлетворить все наши требования без какого-либо страшного программирования.

Настройка

Теперь после небольшой вводной части можно перейти непосредственно к настройке. Настройку выполняем на Debian 7.

Установка rsnapshot достаточно проста:

aptitude install rsnapshot

Настраиваем общий конфиг для всех сайтов /etc/rsnapshot.common, наша версия конфига выглядит так:

#################################################
# rsnapshot.conf - rsnapshot configuration file #
#################################################
# #
# PLEASE BE AWARE OF THE FOLLOWING RULES: #
# #
# This file requires tabs between elements #
# #
# Directories require a trailing slash: #
# right: /home/ #
# wrong: /home #
# #
#################################################

#######################
# CONFIG FILE VERSION #
#######################

config_version 1.2

###########################
# SNAPSHOT ROOT DIRECTORY #
###########################

# All snapshots will be stored under this root directory.
#
snapshot_root /var/snapshots/

#################################
# EXTERNAL PROGRAM DEPENDENCIES #
#################################

# LINUX USERS: Be sure to uncomment "cmd_cp". This gives you extra features.
# EVERYONE ELSE: Leave "cmd_cp" commented out for compatibility.
#
# See the README file or the man page for more details.
#
cmd_cp /bin/cp

# uncomment this to use the rm program instead of the built-in perl routine.
#
cmd_rm /bin/rm

# rsync must be enabled for anything to work. This is the only command that
# must be enabled.
#
cmd_rsync /usr/bin/rsync

# Uncomment this to enable remote ssh backups over rsync.
#
cmd_ssh /usr/bin/ssh

# Comment this out to disable syslog support.
#
cmd_logger /usr/bin/logger

# Uncomment this to specify the path to rsnapshot-diff.
#
cmd_rsnapshot_diff /usr/bin/rsnapshot-diff

#########################################
# BACKUP INTERVALS #
# Must be unique and in ascending order #
# i.e. hourly, daily, weekly, etc. #
#########################################

retain daysago 7

############################################
# GLOBAL OPTIONS #
# All are optional, with sensible defaults #
############################################

# Verbose level, 1 through 5.
# 1 Quiet Print fatal errors only
# 2 Default Print errors and warnings only
# 3 Verbose Show equivalent shell commands being executed
# 4 Extra Verbose Show extra verbose information
# 5 Debug mode Everything
#
verbose 2

# Same as "verbose" above, but controls the amount of data sent to the
# logfile, if one is being used. The default is 3.
#
loglevel 3

# If you enable this, data will be written to the file you specify. The
# amount of data written is controlled by the "loglevel" parameter.
#
logfile /home/admin/log/rsnapshot.log

# If enabled, rsnapshot will write a lockfile to prevent two instances
# from running simultaneously (and messing up the snapshot_root).
# If you enable this, make sure the lockfile directory is not world
# writable. Otherwise anyone can prevent the program from running.
#
lockfile /home/admin/rsnapshot.pid

# Default rsync args. All rsync commands have at least these options set.
#
rsync_short_args -avz
rsync_long_args --delete --numeric-ids --delete-excluded --chmod=a+rwx,g+rwx

Для каждого сайта добавляем конфигурационный файл в папке ~/config, например /home/user/config/drupal-admin.ru:

#Подключение общего файла конфигурации
include_conf /etc/rsnapshot.common
#Архивация папки сайта
backup user@drupal-admin.ru:~/domains/drupal-admin.ru/html/ drupal-admin.ru/
#Архивация базы данных
backup_script /usr/bin/ssh user@drupal-admin.ru mysqldump -uuser -ppassword --default-character-set=utf8 drupal-admin.ru > drupal-admin.sql drupal-admin.ru/mysql

Теперь создаем общий файл конфигурации rsnapshot ~/backup_allsites, в который добавляем все файлы сайтов, например:

include_conf /home/user/config/drupal-admin.ru
include_conf /home/user/config/supportsite1.ru
include_conf /home/user/config/supportsite2.ru

После этого добавляем задание cron команда crontab -e:

#Архивация сайтов ежедневно в 00:30
30 00 * * * /usr/bin/rsnapshot -c /home/user/backup_allsites daysago
#Сжатие всех каталогов архивов сайтов ежедневно в 00:59 и отправка отчета на email
59 00 * * * /usr/local/bin/rsnaptar support@initlab.ru

Теперь у нас всё готово. Архивы делаются ежедневно и есть архив сайтов за 7 дней.

Категория: Мои статьи | Добавил: Admin (20.11.2014)
Просмотров: 1207 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Copyright MyCorp © 2024Сделать бесплатный сайт с uCoz