Настройка бэкапа на CentOS 7 при помощи Rsync
—archive — режим архивации, объединяет несколько ключей -rlptgoD:
копирование рекурсивно. просматривая все вложенные файлы и каталоги
сохранять символические ссылки
сохранять права на файлы
сохранять время изменения файлов
сохранять группу файлов
сохранять владельца файлов (работает только для суперпользователя)
сохранять файлы устройств и специальные файлы
—delete — удалять файлы в приемнике которых нет в источнике (зеркалирование)
—verbose — повышение детализации при копировании, например показывать название файлов
—progress — показывать сколько процентов осталось до завершения и скорость передачи
Синтаксис команды rsync
где
и — источник и целевой объект
Объектами копирования могут быть как файлы, так и папки, находящиеся как в пределах файловой
системы, так и удалённо, например на SSH или RSYNC-сервере.
[параметры] — необязательные параметры копирования/синхронизации, например
-v, —verbose
повышение детализации при копировании, например показывать название файлов
-a, —archive
режим архивации, объединяет несколько ключей -rlptgoD
-r, —recursive
копирование рекурсивно. просматривая все вложенные файлы и каталоги
-l, —links
сохранять символические ссылки
-p, —perms
сохранять права на файлы
-t, —times
сохранять время изменения файлов
-g, —group
сохранять группу файлов
-o, —owner
сохранять владельца файлов (работает только для суперпользователя)
—devices
сохранять файлы устройств (работает только для суперпользователя)
—specials
сохранять специальные файлы
-D
сохранять файлы устройств и специальны файлы, идентично —devices —specials
-H, —hard-links
сохранять жесткие ссылки
-x, —one-file-system
не выходить за пределы файловой системы
-z, —compress
сжимать файлы данных во время передачи
—compress-level=NUM
явное задание степени сжатия
—skip-compress=LIST
пропуск сжатия файлов с суффиксом LIST
—progress
показывать сколько процентов осталось до завершения и скорость передачи
—numeric-ids
не транслировать имена владельца и группы в цифровые UID и GID, оставить номера как есть
—delete
удалять файлы в приёмнике, которых уже нет в источнике
—delete-before
удалять файлы перед началом копирования
—delete-during
удалять файлы во время копирования
—delete-delay
удалять файлы после окончания копирования, но искать их во время
—delete-after
удалять файлы после окончания копирования
—delete-excluded
удалять файлы включая исключённые
—exclude=PATTERN
исключать копирование файлов соответствующие маске PATTERN
—exclude-from=FILE
получить маски исключаемых при копирование файлов из файла FILE
—include=PATTERN
не исключать копирование файлов соответствующие маске PATTERN
—include-from=FILE
получить маски неисключаемых при копирование файлов из файла FILE
—files-from=FILE
получить список копируемых файлов из файла FILE
-e ssh
использовать при копировании ssh
-n, —dry-run
пробный режим копирования без изменений
—bwlimit=KBPS
установка ограничения скорости передачи файлов
Часто используемые команд
запуск rsync-сервера вручную с файлом конфигурации по умолчанию /etc/rsyncd.conf:
перезапуск rsync-сервера (при настройке запуска в режим демона)
выполнение синхронизации содержимого каталога target из каталога source
rsync [options] /source/ /target/
Настройка RSYNC-сервера
запуска RSYNC-сервера вручную с произвольным файлом конфигурации
Для включения автозапуска сервера Rsync в файл /etc/default/rsync добавить параметры
RSYNC_ENABLE=true где переменная RSYNC_ENABLE может принимать значения: false - запретить запуск сервера rsync, true - запускать самостоятельный сервер rsync inetd - запускать сервер rsync при необходимости из супер-сервера inetd. RSYNC_CONFIG_FILE=/etc/rsyncd.conf если параметр не указан файл конфигурации будет считываться из /etc/rsyncd.conf, кроме тех случаев, когда rsync запускается поверх удаленной оболочки и не от суперпользователя. В этом случае выбирается rsyncd.conf из текущего каталога на удаленной машине (обычно $HOME). RSYNC_OPTS=opts добавление особенных (отличных от устанавливаемых по умолчанию) параметров запуска например, может быть указан адрес и/или порт, на котором следует принимать соединения "--address=192.168.0.10" (по умолчанию - все локальные адреса) "--port=8730" (по умолчанию - 873), чтобы указать на каком порту следует принимать соединения RSYNC_NICE=level изменение приоритета процесса в планировщике задач
В файле конфигурации rsyncd.conf могут быть использованы параметры
uid = rsyncd Идентификатор пользователя, от имени которого запускается rsync-сервер. gid = mirror Идентификатор группы, от имени которой запускается rsync-сервер. max connections = 50 Максимальное количество одновременных подключений. read only = yes Установка доступа к ресурсам "только чтение". list = yes Установка разрешения клиентам получать список файлов. Если запретить просмотр списка файлов, то клиенты смогут получить файл только зная его точное имя, syslog facility = local5 Установка уровня отладочных сообщений для syslog. dont compress = *.gz *.tgz *.zip *.z *.rpm *.deb *.iso *.bz2 *.tbz *.rar *.mp3 Установка шаблонов имён файлов, содержимое которых не нужно сжимать при передаче. use chroot = yes Установка изменения корневого каталог rsync-сервера на указанный в path. Изменение каталога может использоваться для повышения безопасности. outgoing chmod = Fu=rw,g=rw,o=,Du=rwx,g=rx,o= Установка права доступа к отдаваемым файлам. Поскольку протокол rsync позволяет вместе с содержимым файлов передавать права доступа к ним и идентификаторы владельца и группы, можно задать особые права доступа, которые будут заменять реальные права доступа к данному файлу или каталогу при его передаче по сети. [media] В квадратных скобках задаётся имя секции. Каждая секция обязана иметь собственный параметр path. Дополнительно в ней могут быть переопределены и значения глобальных параметров. path = /media/ comment = media files
Примеры использования
сокращения:
— путь до каталога, подлежащего резервному копированию
— путь до папки куда копируются данные
Синхронизация данных с RSYNC-сервера в целевую папку
# rsync -rlpgoDvsH --delete root@IP-RSYNC-SERVER::/ / где -rlpgoDvsH - параметры копирования rroot@IP-RSYNC-SERVER::/ - путь до источника данных в терминах rsync-сервера --delete - команда "удалять файлы" в резервном архиве, если они удалены на rsync-сервере
Синхронизация двух каталогов файловой системы
# rsync -avsq --delete -b --backup-dir=/modify --suffix=.`date +%Y-%m-%d` / / где -avsq - параметры копирования -b --backup-dir=/modify --suffix=.`date +%Y-%m-%d` - команда сохранять файлы которые изменялись в каталоге с присвоением расширения файлам даты резервного копирования
Показать список файлов без их копирования
# rsync -avn / / - список файлов, которые должны быть скопированы
Создание (только) структуры каталогов (без копирования файлов)
Скачивание больших файлов (с докачкой) на неустойчивых линиях
# rsync -avsH --partial --partial-dir="" / / где -avsH - параметры копирования ---partial - установка сохранения даже не полностью скопированных файлов --partial-dir="" - путь до папки куда сохраняются не полностью скопированные файлы --append-verify - установка проверки существующего файла для синхронизации лишь остатка не скопированного куска
Загрузка файлов с локальной системы на RSYNC-сервер с докачкой
# rsync -rvz --partial --append-verify / rsync://root@IP-RSYNC-SERVER:/PATH/ где -rvz - параметры копирования ---partial - установка сохранения даже не полностью скопированных файлов --append-verify - установка проверки полноты уже сохранённого файла и копирования только остатка
Пример настройки rsyncd.conf на RAYNC сервере [PATH] comment = tmp GW-HOME path = /DEST_PATH/ read only = no uid = nobody gid = nogroup hosts allow = 0.0.0.0/0.0.0.0 а для пути /DEST_PATH/ предоставлены, например права # mkdir /DEST_PATH/ # chmod 777 /DEST_PATH/
# curlftpfs FTPSERVER:FTPPORT /tmp/ftp/ -o user=FTPUSER:FTPPASSW,allow_other - монтирование FTP-сервера с помощью программы curlftpfs # rsync -rzv --inplace --append --stats --timeout=7200 / / где -rzv - параметры копирования --inplace - обновление существующего файла --append - добавление данных к меньшему файлу --timeout=7200 - задержка для операций ввода-вывода
Как сделать бэкап всей системы в centos
Хотелось бы рассказать как можно было бы сделать бэкап полной системы на примере centOS 7.
Если вам нужно создать backup всей вашей системы, то необходимо выполнить команду:
# tar cvpzf /my_backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/my_backup.tgz --exclude=/mnt --exclude=/sys /
Этой команды хватит чтобы создать бекап. Поговорим о том что же в этой команде написано:
- Запускаем команду от рута и создадим так званый тарбол (утилита tar с опцией «c») и заархивируем его в архив gz (опция «z»).
- С опцией «—exclude» исключим из нашего архива все системные папки и файлы устройств и наш архив (чтобы он рекурсивно не начал запаковывать сам в себя).
- По окончанию, получим в корневой директории наш сжатый архив системы в my_backup.tgz файле.
Бекап мы то сделали, но наверное нужно еще и научится разворачивать его. Как это сделать? Ну, для начала, нужна будет всё-таки работающая система. Можно выполнить установку системы или просто загрузиться с Live CD/DVD). Я, буду думать что у всех есть уже готовая установленная и готова к работе система на которой хотим сделать развертку my_backup архива.
Для этого необходимо выполнить команду:
ВСЕ! ГОТОВО! На этом тема «как сделать бэкап всей системы в centos» завершена.
11 thoughts on “ как сделать бэкап всей системы в centos ”
# tar xvpfz /backup.tgz -C/
tar (child): /backup.tgz: Функция open завершилась с ошибкой: Нет такого файла или каталога
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now вот такую штуку мне пишет, когда пытаюсь разархивировать
У Вас:
# tar xvpfz /backup.tgz -C/ Это ошибка, последний слеш слит с командой. Нужно:
# tar xvpfz /backup.tgz -C / Нужно быть внимательней 😉
Просто имя файла указано не верно. При создании файл назывался my_backup.tgz, а при распаковке просто backup.tgz =)
Логический бэкап используется в тех случаях, когда необходимо одноразово сделать полную копию базы или в повседневной эксплуатации для создания копии не потребуется много времени или места. Когда же выгрузка баз занимает много времени, следует обратить внимание на физическое архивирование.
Exiting with failure status due to previous errors