И снова короткий обзор резервного копирования Ubuntu постараюсь пойти от простого к сложному, начиная от простого резервного копирования все системы 1 командой и заканчивая резервным копированием Ubuntu в автоматическом режиме без нашего участия. А так же дополню это все облегченным способом при резервном копировании Ubuntu через панель администрирования сервера Webmin.
Для удобства работы с Linux Ubuntu server устанавливаем mc - аналог Norton Commander:
|
Так же есть альтернативный способ в Windows, за счет применения программы WinSCP, так же похож на Norton Commander разница лишь в том, что работает она исключительно по сети, а так же производит подключение через SSH протокол. Обратите внимание, что при подключении вы должны быть root пользователем, а на сервере заранее должен быть активирован и установлен супер пользователь (прописан пароль)
Простое резервное копирование Ubuntu
Для того что бы выполнить резервное копирование всей системы, достаточно выполнить всего одну команду:
|
А теперь распишу что означает это команда. С правами суперпользователя (sudo) создаём тарбол (tar с ключём c) и архивируем его архиватором gz (ключ z). При этом с помощью ключа --exclude исключаем из архива системные директории и файлы устройств и, конечно же, сам архив (чтобы он рекурсивно не начал паковаться сам в себя). В итоге, получаем в корне наш полный архив системы в файле backup.tgz
Как его потом развернуть? Ну, во-первых, нужна будет всё-таки работающая система. Например, можно провести «читсую» установку (или же загрузиться с LiveCD). Будем считать, что у нас есть работающая система, в которой мы хотим развернуть наш архив. Хватит тоже одной команды:
|
Благодаря ключику p они сохраняются в исходном состоянии и правами.
Поскольку заранее не известно какого типа у Вас данные и, соответсвенно, насколько плотно они сожмутся. Как минимум вы должны иметь на диске 50% свободного места, для ее проверки выполните седующую команду:
|
Как образец:
root@server:~# df Файловая система 1K-блоков использовано, Разрешено использовать% смонтирована на /dev/mapper/server-root 474881160 3791780 446966808 1% / none 954556 200 954356 1% /dev none 961680 0 961680 0% /dev/shm none 961680 88 961592 1% /var/run none 961680 0 961680 0% /var/lock none 474881160 3791780 446966808 1% /var/lib/ureadahead/debugfs /dev/sda1 233191 58548 162202 27% /boot
В реальности же, если у вас не лежит множество других архивов на диске и всяких фильмов с прочими медиа, то должно хватить и 30%.
Автоматическое резервное копирование Ubuntu
на этот же диск
Создаем файл backup.save в корне, в котором будет скрип для резервного копирования:
|
{xtypo_info}Жмем Ctrl+O для сохранения и Ctrl+X для выхода{/xtypo_info}
Создаем папку /mnt/backup в которую будем делать резервную копию системы:
|
Делаем наш файл backup.save исполняемым:
|
Заходим в mc (для удобства):
|
Далее идем в корень и открываем наш файл нажатием F4 и вставляем в наш backup.save файл следующий код (нажав Shift+Insert):
#!/bin/bash cd /mnt/backup sudo tar cvpzf /mnt/backup/backup_`date +%Y.%m.%d_%H_%M`.tgz --exclude=/proc --exclude=/lost+found --exclude=/mnt --exclude=/sys / >> /dev/null 2>&1
{xtypo_info}Этот код создает архив дата_и_время_создания.tgz в папке /mnt/backup/ исключая папки: proc, lost+found, mnt, sys{/xtypo_info}
Жмем F2 для сохранения и F10 для выхода. Проверяем работоспособность просто запустив наш файл в mc нажатием Enter.
Если все сделали правильно, то в папке /mnt/backup появится наш файл. Периодически заходя в эту папку мы увидим как меняется размер файла. Время резервного копирования естественно зависит от количества информации на сервере и его скорости.
{xtypo_info}Для перехода в mc в терминал жмем Ctrl+O и обратно, а так же не забываем про Меню в mc - F9{/xtypo_info}
Автоматическое резервное копирование Ubuntu
на другой диск или по сети
Примечание
- Сеть должна быть настроена
- Винчестер, на который будем делать резервную копию, должен быть подготовлен
Подготавливаем жесткий диск
Смотрим наш жесткий диск и монтируем в /mnt/hdd:
|
Диск /dev/sda: 40.0 ГБ, 40020664320 байт 255 heads, 63 sectors/track, 4865 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x0000c5e7 Устр-во Загр Начало Конец Блоки Id Система /dev/sda1 * 1 4661 37431296 83 Linux /dev/sda2 4661 4866 1648641 5 Расширенный /dev/sda5 4661 4866 1648640 82 Linux своп / Solaris Диск /dev/sdb: 20.0 ГБ, 20020396032 байт 255 heads, 63 sectors/track, 2434 cylinders Units = цилиндры of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xd5df5ded Устр-во Загр Начало Конец Блоки Id Система /dev/sdb1 1 2434 19551073+ 83 Linux root@linux:/etc#
Монтируем:
|
Чтобы после перезагрузки сервера hdd автоматом монтировался, допишем строку в файл /etc/fstab:
|
[...] /dev/sdb1 /mnt/hdd ext4 rw,user,auto 0 0
{xtypo_info}Ctrl+O для сохранения и Crtl+X для выхода{/xtypo_info}
Подготавливаем сетевую папку
|
Если для доступа к сетевой папке требуется логин и пароль:
|
Если имя сетевой папки содержит пробел, то необходимо написать команду следующим образом:
|
Для того что бы размонтировать папку выполните команду:
|
{xtypo_info}Я не стал прописывать в /etc/fstab автомонтирование сетевой папки. Я буду монтировать ее только тогда, когда будет запускаться скрипт на резервное копирование.{/xtypo_info}
Создаем файл backup.save в корне системы и делаем его исполняемым:
|
Жмем Ctrl+O для сохранения и Ctrl+X для выхода. Сделаем его исполняемым:
|
Для проверки запустим его и проверим его работу. Для создания запуска по расписанию выполним следующее:
|
{xtypo_info}название файла и его местонахождения в данном случае роли не играет{/xtypo_info}
В файл пропишем следующее:
SHELL=/bin/bash MAILTO=user 00 21 * * * /backup.save
Далее выполним:
|
После этого в каталоге /var/spool/cron/crontabs/ будет создан файл "root" примерно с таким содержимым:
# DO NOT EDIT THIS FILE - edit the master and reinstall. # (/home/user/test installed on Mon Mar 29 02:31:34 2004) # (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $) SHELL=/bin/bash MAILTO=user 00 21 * * * /backup.save
Теперь наш скрипт backup.save будет автоматически запускаться каждый день в 21:00. Если надо запускать в другое время, то просто меняем строку 00 21 * * * /backup.save Пример: * * * * * выполняемая команда - - - - - | | | | | | | | | ----- День недели (0 - 7) (Воскресенье =0 или =7) | | | ------- Месяц (1 - 12) | | --------- День (1 - 31) | ----------- Час (0 - 23) ------------- Минута (0 - 59)
Для примера пару шаблонов:
# каждый рабочий день в 22:00 0 22 * * 1-5 /backup.save
# выполнять 1 числа каждого месяца в 14 часов 15 минут 15 14 1 * * /backup.save
Восстановление системы из резервной копии
- Сохраняем каталог boot нашей чистой системы в папку /mnt/
- Туда же сохраняем файл fstab из /etc/
- распаковываем архив сверх чистой системы
|
- Далее копируем с заменой нашу сохраненную папку boot из /mnt/boot в корень системы с заменой
- И fstab из /mnt/ тоже копируем в /etc/ с заменой
- Перезагружаем систему
|
Аналогичное резервное копирование Ubuntu в Webmin
Я считаю это самый простой способ выполнения как резервного копирования, так и восстановление. Для начала у Вас уже должна быть установлена панель управления сервером Webmin (Установка Webmin на Ubuntu server) Заходим в пункт резервного копирования файловой системы Система - Резервное копирование.
На данном изображении я показал уже созданную команду для резервного копирования всей системы. Для начала создания такой команды мы укажим наш каталог, так как мы копируем всю систему, то указываем корень " / ", и нажимаю кнопку "Добавить для резервного копирования каталог", открывшееся окно заполняем следующим образом. Т.к. я использовал удаленный FTP сервер, то добавил сервер имя пользователя и пароль для доступа а так же указал каталог и имя файла в который будет происходить резервное копирование Ubuntu.
Кнопка "Сохранить и приступить к резервному копированию" приведет к созданию правила и немедленного его исполнения. Результат статуса резервного копирования будет выглядеть следующим образом:
Расписание на выполнение данного правила я вам посоветовать не могу, в своем личном случае я выполняю резервное копирование в ручную по мере надобности, а вот резервные копии сайтов и настроек системы выполняются автоматически каждый день, раз в неделю и раз в месяц, Резервные копии сайтов включают в себя как сами файлы сайта так и их базы данных.