Администрирование FreeBSD, Linux, ... Ubuntu: бекап и перенос данных Wed, November 11 2026  

Поделиться

Нашли опечатку?

Пожалуйста, сообщите об этом - просто выделите ошибочное слово или фразу и нажмите Shift Enter.

Ubuntu: бекап и перенос данных Печать
Добавил(а) microsin   

При миграции рабочего места с одной машины на другую встает вопрос: какие папки и файлы стоит архивировать, чтобы потом информацию можно было восстановить на новом компьютере?

Простой ответ на вопрос - обычно достаточно сохранить в архив то, что находится в домашней директории пользователя:

zip -r -y /tmp/261110myusername.zip /home/myusername/
rsync -ah --progress /tmp/261110myusername.zip \
  /media/myusername/DE4647FC4647D3C5/

Здесь для команды zip опция -r задает архивирование с заходом в продкаталоги папки /home/myusername/, а опция -y позволяет решить проблему бесконечной рекурсии символических ссылок (когда появляется множество сообщений "zip warning: name not matched: ..."). Утилита rsync с опциями -ah и --progress осуществляет копирование созданного архива на флешку, которая смонтирована в каталог /media/myusername/DE4647FC4647D3C5/.

Если вы хотите сделать полный слепок системы (включая все программы), самый надёжный способ — использовать Timeshift (работает как «точка восстановления» Windows), Clonezilla (клонирование всего диска) или просто dd [5]. Они специально предназначены для отката системы и не требуют ручного выбора каталогов.

Если вам нужно только сохранить данные (чтобы потом перенести на новую систему), достаточно заархивировать /etc и /home.

[Какие еще каталоги стоит архивировать на всякий случай]

/etc: все системные и прикладные конфигурационные файлы. Это «мозг» системы, при восстановлении на новом оборудовании или после сбоя он критически важен.

/home: пользовательские документы, загрузки, настройки рабочего стола и личные файлы. Самая важная часть для обычного пользователя.

/root: домашний каталог администратора. Там могут храниться ваши скрипты, заметки или конфигурации, созданные под root.

/var (по ситуации): не весь каталог, а подкаталоги с данными. Например, если вы используете базу данных (/var/lib/mysql), веб-сайт (/var/www) или почту (/var/mail), их нужно сохранить отдельно. Важно: для баз данных лучше использовать штатные инструменты дампа (например, mysqldump), а не прямое копирование файлов, чтобы избежать повреждения данных. Если вы не уверены, и папка /var занимает не слишком большой объем, то можно полностью заархивировать /var.

/usr/local: если вы вручную компилировали и устанавливали программы (например, Python или Node.js), стоит сохранить, так как менеджер пакетов apt их не восстановит. Если вы не уверены, и папка /usr занимает не слишком большой объем, то можно полностью заархивировать /usr.

/opt: есть смысл резервировать при наличии установленного стороннего ПО. Причина: это традиционный каталог для установки «дополнительного» или «стороннего» программного обеспечения (например, вручную распакованных коммерческих приложений, некоторых SDK). Если вы устанавливали туда программы через apt или snap, то их не нужно резервировать (можно переустановить); но если вы вручную распаковали и настроили приложение, его файлы и конфигурация находятся там, и после переустановки системы восстановить их будет сложно.

/srv: резервировать при наличии сервисных данных. Причина: согласно стандарту FHS, этот каталог используется для хранения «данных, предоставляемых системой для внешних служб». Например, если вы настроили веб-сервер, FTP-сервер или Git-репозиторий и файлы сайта или данные пользователей размещены в /srv/www или /srv/ftp, то их нужно резервировать. Если вы используете компьютер только как рабочую станцию, этот каталог обычно пуст, и резервировать его не нужно.

/snap: сами программы не нужно резервировать, но пользовательские данные нужно резервировать отдельно. Причина: каталог /snap (а также /var/snap) в основном содержит файлы программ и системные данные, устанавливаемые через Snap. Сами эти программы после переустановки системы можно переустановить с помощью snap install и не нужно резервировать как файлы. Но ваши пользовательские данные и конфигурация для приложений Snap обычно хранятся в ~/snap/ в вашем домашнем каталоге. Для резервного копирования этих пользовательских данных в Snap предусмотрена специальная команда snap save для создания снимков, или можно напрямую скопировать каталог ~/snap.

[Упрощённый пример команды]

Если вы используете tar для резервного копирования, базовая команда может выглядеть так (не забудьте исключить путь для сохранения самого архива):

sudo tar -czf /path/to/backup.tar.gz \
  --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run \
  --exclude=/tmp --exclude=/mnt --exclude=/media --exclude=/lost+found \
  /etc /home /root /opt /srv /usr/local

Аналог этой команды для утилиты zip:

sudo zip -r /path/to/backup.zip /etc /home /root /opt /srv /usr/local \
  -x "/proc/*" -x "/sys/*" -x "/dev/*" -x "/run/*" \
  -x "/tmp/*" -x "/mnt/*" -x "/media/*" -x "/lost+found/*"

Примечание: в зависимости от фактического использования добавьте /var/www или каталоги баз данных и т. д.

Пояснение ключевых отличий

-r (рекурсия): обязательный флаг для zip, чтобы он заходил внутрь указанных директорий и архивировал их содержимое. Без него будут добавлены только пустые папки.

-x (исключение): в отличие от tar, где исключения задаются до списка файлов, в zip их принято указывать в конце команды. Также важно использовать шаблон путь/*, чтобы исключить содержимое директории, а не только саму папку.

Кавычки: шаблоны исключений лучше брать в двойные кавычки, чтобы shell не попытался раскрыть их самостоятельно (особенно это касается путей с *).

Важное предупреждение: в отличие от tar, утилита zip не сохраняет такие метаданные файловой системы, как владельцы (UID/GID), права доступа (mode) и расширенные атрибуты (xattrs) для файлов, принадлежащих root. При восстановлении системы из zip-архива права на системные файлы в /etc и /root могут сброситься на значения по умолчанию, что потенциально нарушит работу некоторых служб или настроек безопасности.

Если ваша цель — именно системный бэкап для последующего восстановления, рекомендуется всё же использовать tar (с флагом --numeric-owner для сохранения числовых ID) или специализированные инструменты вроде rsync. zip лучше подходит для переноса данных на Windows или обмена файлами, а не для «холодного» бэкапа корневых директорий Linux.

[Что не нужно архивировать]

Эти каталоги содержат динамические данные ядра, временные файлы или точки монтирования, их копирование бессмысленно и может привести к ошибкам:

/proc, /sys, /dev, /run: виртуальные файловые системы, генерируемые ядром при загрузке, после перезагрузки создаются автоматически.

/tmp: временные файлы, обычно не требуют сохранения.

/mnt, /media: точки монтирования внешних устройств, если там нет важных данных, исключайте.

/lost+found: фрагменты, восстановленные после сбоя файловой системы, обычно не нужны.

[Полезные команды, которые могут пригодиться]

zip -r -y имя_архива.zip папка/
   Архивирует все содержимое папки (здесь папка/ это её полный или относительный путь) с рекурсией (заходом в подкаталоги) в файл имя_архива.zip. Опция -r включает рекурсию, а опция -y сохранит символическую ссылку как специальный файл, не заходя в неё (устранение проблемы бесконечной взаимной рекурсии).

rsync -ah --progress файл_источника место_назначения/
   Копирует файл файл_источника в папку место_назначения/ с индикацией прогресса копирования.

stat -c '%s' имя_файла
   Покажет точный размер файла в байтах.

du -sh /путь/к/каталогу
   Покажет одну строку с суммарным размером каталога в удобочитаемом виде.

du -sb /путь/к/каталогу
   Покажет точный размер каталога в байтах.

[Ссылки]

1. Ubuntu FAQ.
2. tar: практика использования.
3. Примеры работы с архиватором 7z из командной строки.
4. rsync: синтаксис, примеры использования.
5. 4 способа полного клонирования диска на Linux.

 

Добавить комментарий


Защитный код
Обновить

Top of Page