Введение / Зачем это нужно
Резервное копирование (бэкап) — это ваша главная страховка от потери данных из-за сбоя диска, ошибки при обновлении системы или вредоносного ПО. В Linux есть мощные встроенные инструменты, которые позволяют создавать надежные копии важных файлов быстро и без лишних затрат. После выполнения этого гайда вы будете уверены, что ваши документы, конфигурационные файлы и проекты в безопасности.
Требования / Подготовка
- Права доступа: Для копирования системных файлов или файлов других пользователей могут потребоваться права
sudo. Для личных файлов обычно достаточно прав текущего пользователя. - Свободное место: Убедитесь, что на целевом носителе (внешний диск, другая partitioning, сетевой путь) достаточно места для хранения данных. Рекомендуется иметь запас 20-30%.
- Носитель для бэкапа: Подготовьте внешний жесткий диск, флешку или выделенный раздел на внутреннем диске. Для долгосрочного хранения лучше использовать физически отдельный носитель.
- Установленные утилиты: Большинство дистрибутивов поставляют
tarиrsyncиз коробки. Для графического интерфейса может потребоваться установка пакета (например,deja-dupв Ubuntu/Debian:sudo apt install deja-dup).
Пошаговая инструкция
Шаг 1: Определите, что и куда备份ровать
Составьте список каталогов и файлов, которые критически важны. Типичные кандидаты:
~/Documents,~/Pictures,~/Videos— личные файлы.~/projectsили~/code— исходный код проектов.~/.config— конфигурационные файлы приложений (может быть много служебных, лучше выбрать точечно, например,~/.config/Code,~/.config/gtk-3.0).- Списки установленных пакетов (для восстановления системы):
dpkg --get-selections > ~/package-list.txt(Debian/Ubuntu) илиpacman -Qeq > ~/pkglist.txt(Arch).
Выберите точку монтирования вашего внешнего носителя. Обычно она появляется в /media/ваше_имя_пользователя/ или /mnt/.
Шаг 2: Создайте бэкап с помощью tar
tar — классический утилита для создания архивов. Она объединяет множество файлов в один, поддерживает сжатие.
Базовый пример (без сжатия):
tar -cvf /media/backup/backup_home_$(date +%Y%m%d).tar ~/Documents ~/Pictures
-c— создать архив.-v— выводить список добавляемых файлов (verbosely).-f— указать имя файла архива.$(date +%Y%m%d)— автоматически добавляет текущую дату (например,20260217) в имя файла.
Пример с сжатием (gzip):
tar -czvf /media/backup/backup_home_$(date +%Y%m%d).tar.gz ~/Documents ~/Pictures
-z— сжать с помощьюgzip.
Создание полного бэкапа домашней директории (осторожно, может быть много служебных файлов):
sudo tar -czvf /media/backup/full_home_backup_$(date +%Y%m%d).tar.gz --exclude='./Cache' --exclude='./.cache' --exclude='./.npm' /home/ваш_пользователь/
Использование --exclude позволяет пропустить кэши и временные файлы, экономя место.
💡 Совет: Для регулярных бэкапов лучше использовать
rsync(следующий шаг), так как он копирует только изменения.tarлучше подходит для разовых полных архивов.
Шаг 3: Настройте инкрементальный бэкап с помощью rsync
rsync — это мощный инструмент для синхронизации каталогов. Он копирует только измененные или новые файлы, что экономит время и место при регулярном использовании.
Базовая синхронизация (с сохранением прав и структуры):
rsync -avh --delete ~/Documents/ /media/backup/Documents/
-a— архивный режим (сохраняет права, временные метки, рекурсивно).-v— подробный вывод.-h— "human-readable" (человекочитаемые размеры).--delete— удаляет файлы в целевой папке, которых уже нет в исходной (содержит точную копию). Используйте с осторожностью!
Бэкап с исключениями (например, кэша браузера):
rsync -avh --delete --exclude='.cache' --exclude='.npm' --exclude='Downloads' /home/ваш_пользователь/ /media/backup/full_home/
Копирование по SSH (на удаленный сервер):
rsync -avh -e ssh ~/Documents/ user@remote-server:/path/to/backup/
Убедитесь, что на удаленном сервере настроен доступ по SSH.
Шаг 4: Используйте графическую утилиту (опционально)
Для тех, кто предпочитает GUI, отличным выбором является Deja Dup (в Ubuntu называется "Резервное копирование").
- Установите:
sudo apt install deja-dup(Ubuntu/Debian) или найдите в центре приложений вашего дистрибутива. - Запустите "Резервное копирование" из меню.
- Нажмите "Автоматически запоминать пароль" (если хотите автоматические бэкапы).
- В разделе "Хранилище" выберите место (локальная папка, внешний диск, сетевую папку).
- Во вкладке "Папки" добавьте нужные каталоги для бэкапа.
- Во вкладке "Исключить" укажите папки, которые копировать не нужно (например,
~/Downloads,~/.cache). - Настройте расписание во вкладке "Планирование" (например, ежедневно).
- Нажмите "Создать резервную копию сейчас" для первого запуска.
Шаг 5: Настройте автоматизацию (для tar/rsync)
Создайте скрипт для регулярного запуска.
- Создайте файл
~/scripts/backup.sh:#!/bin/bash # Простой скрипт бэкапа с rsync SOURCE_DIR="/home/ваш_пользователь/Documents" BACKUP_DIR="/media/backup/Documents" LOG_FILE="/var/log/backup.log" echo "=== Начало бэкапа: $(date) ===" >> $LOG_FILE rsync -avh --delete $SOURCE_DIR/ $BACKUP_DIR/ >> $LOG_FILE 2>&1 echo "=== Бэкап завершен: $(date) ===" >> $LOG_FILE - Дайте права на выполнение:
chmod +x ~/scripts/backup.sh. - Добавьте задание в
cron:- Выполните
crontab -e. - Добавьте строку для ежедневного бэкапа в 2:00 ночи:
0 2 * * * /home/ваш_пользователь/scripts/backup.sh - Сохраните и выйдите.
- Выполните
Проверка результата
- Для
tar: Убедитесь, что файл архива создался и имеет разумный размер. Посмотрите его содержимое без распаковки:
Попробуйте распаковать один файл в временную папку для проверки:tar -tzf /media/backup/backup_home_20260217.tar.gz | head -20mkdir /tmp/test_restore tar -xzf /media/backup/backup_home_20260217.tar.gz -C /tmp/test_restore Documents/important.txt cat /tmp/test_restore/Documents/important.txt - Для
rsync: Сравните исходную и целевую папки. Вы можете запуститьrsyncс флагом-n(dry-run), чтобы увидеть, какие файлы будут скопированы/удалены при следующем запуске:
Проверьте, что структура папок и ключевые файлы присутствуют вrsync -avhn --delete ~/Documents/ /media/backup/Documents//media/backup/Documents/. - Логи: Если использовали автоматизацию, проверьте лог-файл (
/var/log/backup.logили указанный вами) на наличие ошибок.
Возможные проблемы
- Ошибка "Permission denied" (Отказ в доступе): Вы пытаетесь скопировать файлы, к которым у вашего пользователя нет прав. Используйте
sudoдля командыtar/rsync, но будьте осторожны, чтобы не скопировать системные файлы в бэкап, которые потом могут конфликтовать при восстановлении. Лучше копировать только файлы домашней директории или те, к которым у вас явно есть доступ. - "No space left on device" (Закончилось место): Целевой носитель заполнен. Освободите место или используйте другой носитель. Проверьте место командой
df -h. rsyncудаляет важные файлы (--delete): Флаг--deleteопасен, если в целевой папке уже есть какие-то данные, которых нет в исходной (например, старые бэкапы). Всегда проверяйте команду с-n(dry-run) перед первым реальным запуском. Для хранения нескольких версий бэкапа лучше не использовать--deleteили хранить каждую дату в отдельной папке.- Носитель не монтируется автоматически: Если вы используете внешний диск, убедитесь, что он надежно подключен. Для автоматического монтирования при загрузке изучите
/etc/fstab. В скрипте бэкапа можно добавить проверку и монтирование, но это усложняет задачу. - Бэкап занимает слишком много времени: Используйте
rsyncдля инкрементальных копий. Для первого полного бэкапаtarможет быть быстрее, так как создает единый поток. Для последующих —rsyncпредпочтительнее.