В том случае если вы администрируете свой сервер самостоятельно, вы можете воспользоваться данной инструкцией для организации схемы резервного копирования.
Для резервного копирования воспользуемся утилитой FSBACKUP.
Для этого заходим на сервер и скачиваем архив программы с помощью команды:
wget https://www.opennet.ru/dev/fsbackup/src/fsbackup-1.2pl2.tar.gz
Распаковываем его и переходим в директорию fsbackup-1.2pl2:
tar -zxvf fsbackup-1.2pl2.tar.gz cd fsbackup-1.2pl2
Устанавливаем программу резервного копирования, для этого необходимо иметь права root:
./install.pl -prefix=/usr/local/fsbackup
Для настройки параметров резервного копирования переходим в каталог, в который только что была установлена программа, и создаем 2 дополнительные директории:
cd /usr/local/fsbackup mkdir archive mkdir sql_backup
Настраиваем конфигурационный файл, для чего выполняем следующие команды:
cp cfg_example my_cfg vim my_cfg
Изменяем значения параметров, исходя из нижеприведенного примера конфигурационного файла (рекомендуем вам ознакомиться с основными командами в текстовом редакторе Vi):
$cfg_backup_name = "server_backup"; $cfg_cache_dir = "/usr/local/fsbackup/cache"; $prog_md5sum = "/usr/bin/md5sum -b"; $prog_tar = "/bin/tar"; $prog_ssh = "/usr/bin/ssh"; $prog_rm = "/bin/rm"; $prog_gzip = "/bin/gzip"; $prog_pgp = "/usr/bin/gpg"; $cfg_checksum = "timesize"; $cfg_backup_style = "backup"; $cfg_increment_level = 7; $cfg_save_old_backup = 1; $cfg_type = "remote_ftp"; $cfg_remote_host = "uXXXXX.ftp.masterhost.ru"; $cfg_remote_login = "uXXXXX"; $cfg_remote_path = ""; $cfg_remote_ftp_mode = 0; $cfg_remote_password = "пароль_к_вашей_backup-площадке"; $cfg_local_path = "/usr/local/fsbackup/archive"; $cfg_time_limit = 0; $cfg_size_limit = 0; $cfg_maximum_archive_size = 0; $cfg_root_path = "/"; $cfg_verbose = 2; $cfg_stopdir_prune=0; 1; __DATA__ /var/www/vhosts /etc/my.cnf /etc/httpd/conf/httpd.conf /usr/local/fsbackup/sql_backup
Затем редактируем скрипт create_backup.sh, выполнив команду:
vim create_backup.sh
Необходимо изменить значение «config_files». После редактирования строка должна выглядеть следующим образом:
config_files="my_cfg"
Если нужно, чтобы при резервном копировании сохранялся бекап базы данных, изменяем значение: «backup_mysql» с 0 на 1. Ниже приведен фрагмент правильно отредактированного скрипта:
#-------------------------------------- # Директория где установлена программа. #-------------------------------------- backup_path="/usr/local/fsbackup" # Список файлов конфигурации, разделенных пробелом. # Директории для сохранения бэкапа в каждом конфигурационном # файле должны отличаться ($cfg_remote_path, $cfg_local_path), # сохранение в одной и той же директории нескольких, # описанных разными .conf файлами, бэкапов не допустимо. #-------------------------------------- config_files="my_cfg" #-------------------------------------- # 1 - run mysql_backup.sh script (you need edit # mysql_backup.sh first!), 0 - not run. # Флаг бэкапа MySQL таблиц, запускается требующий # предварительной настройки скрипт ./scripts/mysql_backup.sh, # 1 - запускать, 0 - не запускать. #-------------------------------------- backup_mysql=1 #-------------------------------------- # 1 - run pgsql_backup.sh script (you need edit # pgsql_backup.sh first!), 0 - not run. # Флаг бэкапа PostgreSQL таблиц, запускается требующий # предварительной настройки скрипт ./scripts/pgsql_backup.sh, # 1 - запускать, 0 - не запускать. #-------------------------------------- backup_pgsql=0 #-------------------------------------- # 1 - run sqlite_backup.sh script (you need edit # sqlite_backup.sh first!), 0 - not run. # Флаг бэкапа SQLite таблиц, запускается требующий # предварительной настройки скрипт ./scripts/sqlite_backup.sh, # 1 - запускать, 0 - не запускать. #-------------------------------------- backup_sqlite=0 #-------------------------------------- # 1 - run sysbackup.sh script # you need edit sysbackup.sh first!), 0 - not run. # Флаг бэкапа параметров системы, запускается требующий # предварительной настройки скрипт ./scripts/sysbackup.sh, # 1 - запускать, 0 - не запускать. #-------------------------------------- backup_sys=0
Для резервного копирования баз данных необходимо отредактировать файл scripts/mysql_backup.sh, для чего выполняем команду:
vim ./scripts/mysql_backup.sh
Значения параметров изменяем, исходя из нижеприведенных данных:
host_mysql="localhost" backup_name="sql_backup" backup_method="full" backup_db_list="" backup_mysqluser="admin (пользователь_базы_данных)" backup_mysqlpassword="пароль_к_базе_данных" backup_path="/usr/local/fsbackup/sql_backup" backup_progdump_path="/usr/bin" extra_mysqldump_flag="--complete-insert --host=$host_mysql"
После того, как параметры резервного копирования будут заданы, проверяем — правильно ли мы все сделали. Для этого выполняем команду:
./create_backup.sh
После того как выполнение команды будет завершено, заходим на площадку и проверяем — были ли на backup-площадке созданы файлы с резервными данными:
- файл XXXXXXX.list содержит перечень сохраненных файлов и директорий, которые содержатся в архиве XXXXXXXX.tar.gz;
- файл XXXXXXX.dir содержит структуру директорий, права (chmod), группу (chgrp) и их пользователя (chown).
Для того, чтобы резервное копирование данных производилось регулярно, создаем соответствующее задание в cron. Для этого на сервере выполняем команду:
crontab -e
и добавляем следующие строки:
MAILTO=Ваш контактный e-mail 0 3 * * * /usr/local/fsbackup/create_backup.sh
Данное задание означает, что резервное копирование будет производиться ежесуточно в три часа ночи.
Как получить резервную копию файла
Если вы не изменяли предложенный вам метод создания резервных копий (значение параметра $cfg_backup_style в файле my_cfg) — сохранение данных производится по инкрементальному методу. В этом случае архивируются только те файлы, которые изменились со времени последнего создания backup’а, что позволяет серьезно увеличить скорость формирования архивов и сэкономить место на вашей площадке. Инкрементальный метод заключается в том, что на первом этапе создается полный архив сохраняемых директорий, а на последующих – в архивы заносятся только те файлы, которые изменились с момента предыдущего backup’а (каждый такой архив называется инкрементом). Число инкрементальных копий backup’а между двумя полными архивами данных определяется значением параметра $cfg_increment_level в файле my_cfg.
Доступ к файлам по SSH
Доступ к backup-площадке по протоколу SSH возможен только из сети .masterhost, поэтому вначале вам нужно зайти по SSH на ваш сервер. О том, как это сделать, написано в следующей статье. Далее подключитесь по SSH к backup-площадке.
Выполните команду:
ls -la
и вы увидите список всех файлов, размещенных на площадке.
- Файлы XXXXXXX.list содержат перечень сохраненных файлов и директорий, которые находятся в архиве XXXXXXXX.tar.gz.
- Файлы XXXXXXX.dir содержат структуру сохраненных директорий, права (chmod), группу (chgrp) и их пользователя (chown).
Для того, чтобы узнать, в каком архиве содержится резервная копия интересующего вас файла, следует просмотреть содержимое XXXXXXX.list за необходимые даты. Просмотр содержимого текстовых файлов можно осуществить с помощью команды less:
less XXXXXXX.list
Для того, чтобы достать из архива нужный вам файл (путь до него вы можете посмотреть в текстовом файле XXXXXXX.list), выполните следующую команду:
tar xzf имя_архива.tar.gz путь_до_файла
Например:
tar xzf backup_2007.09.25.19.37.05-0.tar.gz./var/www/vhosts/default/httpsdocs/file.txt
Для того, чтобы скопировать файл с backup-площадки на ваш сервер, воспользуйтесь командой scp:
scp путь_до_файла_на_площадке пользователь_сервера@имя_хоста(или_IP-адрес):/путь_до_директории_назначения/
Например:
scp ./var/www/vhosts/default/httpsdocs/file.txt root@217.16.16.215:/home/
Доступ к файлам по FTP
Доступ к backup-площадке по протоколу FTP возможен только из сети .masterhost, поэтому вначале вам нужно зайти по SSH на ваш сервер. Далее подключитесь по FTP к площадке:
ftp uXXXXX.ftp.masterhost.ru
где uXXXXX – имя вашей backup-площадки.
Введите логин и пароль.
Если вы всё сделали правильно, появится сообщение:
230 User uXXXXX logged in. Remote system type is UNIX. Using binary mode to transfer files.
что означает, что вы успешно подключились к вашей backup-площадке.
Выполните команду
ls -la
и вы увидите список всех файлов, размещенных на площадке.
- Файлы XXXXXXX.list содержат перечень сохраненных файлов и директорий, которые находятся в архиве XXXXXXXX.tar.gz.
- Файлы XXXXXXX.dir содержат структуру сохраненных директорий, права (chmod), группу (chgrp) и их пользователя (chown).
Для того, чтобы узнать, в каком архиве содержится резервная копия интересующего вас файла, следует просмотреть содержимое XXXXXXX.list за необходимые даты. Для того, чтобы открыть эти файлы, скачайте их на сервер:
get XXXXXXX.list
затем вернитесь на сервер:
quit
и выполните команду:
less XXXXXXX.list | more
Определив, в каком именно архиве содержится интересующий вас файл, подключитесь к площадке еще раз и скачайте его на сервер:
get XXXXXXXX.tar.gz
После того, как архив будет закачан, завершите соединение командой:
quit
Для того, чтобы достать из архива нужный вам файл (путь до него вы можете посмотреть в текстовом файле XXXXXXX.list), выполните на сервере следующую команду:
tar xzf имя_архива.tar.gz путь_до_файла
Например:
tar xzf backup_2007.09.25.19.37.05-0.tar.gz./var/www/vhosts/default/httpsdocs/file.txt
Просмотров: 1103