Каждый из нас минимум один раз задумывался о резервном копировании сервера работающий на ОС Linux. Решений есть достаточно много. Я расскажу об одном из них.
Полная архивация (резервное копирование linux) всех файлов операционной системы Linux (1 раз в день) на другой жесткий диск, (заранее отформатирован с файловой системой Ext3) и на постоянно смонтирован в директорию /backup
В данном примере описывается резервное копирование backup CentOS-5.9, синтаксис команд в различных вариантах linux (например Debian или Fedora) может отличаться.
Проверить, что запущен сервис crond, для этого выполнить команду в консоли
Для запуска crond выполнить команду в консоли
Если сервис crond не включен в автозапуск, выполнить команду в консоли
Далее предлагается использовать планировщик заданий cron и архиватор tar
Для выполнения команды полной архивации операционной системы 1 раз в сутки в 03.00 часа ночи, необходимо добавить в файл /var/spool/cron/root команду для архивации
Чтобы сделать запись в файл (или создать файл), выполнить в терминале:
Файл откроется в редакторе vi
Для редактирования нажать - i
Выйти из редактора - Esc
Записать файл - ZZ
где,
0 3 * * * - время выполнения команды
tar -cvpf - команда для использования архиватора tar
/backup/fullbackup.tar - название архива и путь к нему
/ - Директория, (корневая в данном примере)
--exclude=proc - временные директории, исключаются из архива
--exclude=tmp
- возможно эту директорию тоже не стоит архивировать, но я пока не уверен
Кто то рекомендует дополнительно использовать параметр --numeric-owner
--numeric-owner
, грубо говоря, привязывает UID и GID к файлу(вместо их имен), чтобы они не искажались /etc/passwd и /etc/group? вся эта система работает по типу:
Без --numeric-owner
: перед извлечением файла ищется такое же имя владельца/группы в /etc/passwd и /etc/group, и при совпадении подставляется для него ID; если ID для имени не найдено, то оно оставляется «висячим» — как и было изначально.
С --numeric-owner
же никаких проверок не происходит, и какой изначально при архивации ID был, таким он и будет после.
Есть информация о том, что в версии 1.15.1 tar повреждает разреженные файлы более 4 ГБ. В версиях tar (1.20 и выше) этого не наблюдалось, но лучше проверить.
Что бы архивы не накапливались на диске, и не заполнили всё пространство, настроим автоматическое удаление устаревших архивов.
Далее предлагается использовать планировщик заданий cron и утилиту find
Например, для выполнения команды удаления архивов что есть «старше» 9 суток 1 раз в сутки в 05.00 часов утра, необходимо добавить в файл /var/spool/cron/root команду для удаления файлов
Ознакомиться, Как восстановить Linux CentOS из архивной копии