Как сделать бэкап файлов: способы, правило 3-2-1 и команды

Как сделать бэкап файлов: способы, правило 3-2-1 и команды Полезное

Бэкап (резервная копия) — это копия файлов, сохраненная отдельно от оригинала, из которой их можно восстановить после удаления, сбоя диска, шифровальщика или ошибки. Чтобы сделать бэкап файла, достаточно скопировать его на другой носитель; чтобы бэкап реально спасал, нужны еще три вещи: регулярность, хранение в нескольких местах и проверка восстановления.

Ниже — короткий ответ для одного файла, виды бэкапа (полный, инкрементный, дифференциальный), правило 3-2-1, встроенные средства Windows и macOS и рабочие команды tar и rsync для Linux. Команды проверены в контейнере Ubuntu 24.04 (GNU tar 1.35, rsync 3.2.7), вывод взят из реального запуска.

Короткий ответ: бэкап одного файла

Перед правкой важного файла сделайте его копию с датой в имени и сохраните копию на другом носителе или в облаке. Копия в той же папке защищает только от собственной ошибки при редактировании, но не от поломки диска.

В Linux и macOS это одна команда:

set -eu
mkdir -p ~/backup-demo && cd ~/backup-demo   # учебная папка: не заденет ваши файлы
echo "версия 1" > report.txt

# Бэкап одного файла рядом, с датой и временем в имени
backup="report.txt.$(date +%F-%H%M%S).bak"
test ! -e "$backup"                # не затираем существующую копию
cp -p report.txt "$backup"         # -p сохраняет время изменения и права
ls report.txt*
report.txt
report.txt.2026-09-24-122703.bak

В Windows то же самое делается через проводник: «Копировать» и «Вставить» в другую папку или на флешку с переименованием в report-2026-09-24.docx. Для регулярных копий вручную лучше не полагаться на память — ниже встроенные средства, которые делают это по расписанию.

Бэкап, синхронизация и точка восстановления — не одно и то же

Эти понятия часто путают, а от этого зависит, спасет ли копия.

Механизм Что хранит Защищает от удаления и шифровальщика
Резервная копия (бэкап) Состояние файлов на момент копирования, часто несколько версий Да, если копия хранится отдельно и есть старые версии
Синхронизация (облачная папка) Текущее состояние, одинаковое на всех устройствах Нет: удаление или шифрование тоже синхронизируется; спасает только корзина или история версий сервиса
Точка восстановления Windows Системные файлы, реестр, драйверы Нет: личные документы в нее не входят
Снимок (snapshot) файловой системы Состояние тома на момент снимка Частично: снимок лежит на том же диске и погибнет вместе с ним

Вывод: облачная папка и точка восстановления удобны, но не заменяют бэкап на отдельном носителе.

Правило 3-2-1

Простой ориентир, как хранить копии:

  • 3 копии данных: оригинал и две резервные;
  • 2 разных типа носителя или хранилища (например, внешний диск и облако);
  • 1 копия вне дома или офиса (облако, диск у родственников, второй офис).

Для защиты от шифровальщиков правило часто расширяют: одна копия должна быть офлайн или неизменяемой (диск отключен от компьютера, в облаке включены версии с запретом удаления), и восстановление должно быть проверено. Это упрощенная схема: для домашних документов обычно хватает внешнего диска и облака, для сервера компании требования задает допустимая потеря данных (сколько часов работы можно потерять) и допустимое время простоя.

Полный, инкрементный и дифференциальный бэкап

Вид Что копирует Скорость создания и объем Что нужно для восстановления
Полный Все выбранные файлы Долго, много места Один полный архив
Инкрементный Изменения с прошлого бэкапа любого вида Быстро, мало места Полный + все инкрементные по порядку
Дифференциальный Изменения с последнего полного Растет с каждым днем Полный + последний дифференциальный

Как выбрать: для домашних документов достаточно полного бэкапа по расписанию или Time Machine / «Истории файлов», которые сами решают, что копировать. Инкрементный выгоден, когда данных много, а меняется малая часть; цена — длинная цепочка: потеря одного звена ломает восстановление всех следующих. Дифференциальный — компромисс: восстановление из двух файлов, но каждый следующий архив больше предыдущего.

Как сделать бэкап в Windows 11

  • История файлов (Панель управления — «История файлов»): по расписанию копирует версии файлов из пользовательских папок на внешний или сетевой диск. Подходит для документов, восстановление конкретной версии — кнопкой «Восстановить личные файлы».
  • Архивация Windows (приложение Windows Backup): синхронизирует папки, настройки и список приложений с OneDrive. Это ближе к синхронизации, чем к бэкапу на отдельном носителе, поэтому нужна вторая копия.
  • Архивация и восстановление (Windows 7): старый компонент, который все еще есть в Панели управления и умеет делать образ системы. Microsoft его не развивает, поэтому для новых настроек разумнее История файлов или сторонняя программа.

Windows 10 с 14 октября 2025 года не получает обычных обновлений безопасности (только по платной или временной программе расширенной поддержки ESU), поэтому бэкап данных с такого компьютера — первое, что стоит сделать перед переходом.

Как сделать бэкап в macOS: Time Machine

Подключите внешний диск, откройте «Системные настройки» — «Основные» — «Time Machine» и добавьте диск как резервный. Time Machine хранит почасовые копии за последние 24 часа, ежедневные за последний месяц и еженедельные за более ранний период; когда диск заполняется, удаляются самые старые. При добавлении диска включите шифрование резервных копий — иначе потерянный диск читается на любом Mac.

Бэкап файлов в Linux: tar

tar собирает каталог в один архив. Режим --listed-incremental в GNU tar делает полный и инкрементный бэкап: служебный snapshot-файл запоминает, что уже скопировано.

set -eu
mkdir -p ~/backup-demo/data/docs ~/backup-demo/backup && cd ~/backup-demo
echo "план" > data/docs/plan.txt
echo "бюджет" > data/docs/budget.txt

# 1. Полный бэкап: snapshot-файл запоминает состояние каталога
tar --create --gzip --file=backup/full.tar.gz \
    --listed-incremental=backup/data.snar data

# 2. Меняем данные (в жизни между бэкапами проходят часы, здесь - пауза)
sleep 1
echo "бюджет v2" > data/docs/budget.txt
echo "новое" > data/docs/notes.txt
rm data/docs/plan.txt

# 3. Инкрементный бэкап: копия snapshot-файла, чтобы full-состояние не потерялось
cp backup/data.snar backup/data-1.snar
tar --create --gzip --file=backup/incr-1.tar.gz \
    --listed-incremental=backup/data-1.snar data

tar --list --gzip --file=backup/incr-1.tar.gz
data/
data/docs/
data/docs/budget.txt
data/docs/notes.txt

В инкрементный архив попали только измененный budget.txt и новый notes.txt; удаление plan.txt tar тоже запомнил в метаданных каталога. Копия snapshot-файла перед вторым запуском нужна, чтобы при желании сделать от того же полного архива дифференциальный бэкап. Обратная сторона: если data.snar уже существует, команда из шага 1 сделает не полный, а инкрементный архив относительно прошлого состояния, хоть он и называется full.tar.gz. Для нового полного бэкапа начинайте с нового (отсутствующего) snapshot-файла.

Восстановление — сначала полный архив, затем инкрементные строго по порядку:

set -eu
cd ~/backup-demo
# Восстановление: сначала полный, затем все инкрементные по порядку
mkdir -p restore
tar --extract --gzip --file=backup/full.tar.gz \
    --listed-incremental=/dev/null -C restore
tar --extract --gzip --file=backup/incr-1.tar.gz \
    --listed-incremental=/dev/null -C restore

diff -r data restore/data && echo "восстановлено без расхождений"
ls restore/data/docs
восстановлено без расхождений
budget.txt
notes.txt

Типичная ошибка — перепутать порядок и распаковать инкрементный архив раньше полного:

cd ~/backup-demo
# Ошибка: инкрементный архив распакован раньше полного
mkdir -p wrong
tar --extract --gzip --file=backup/incr-1.tar.gz \
    --listed-incremental=/dev/null -C wrong
tar --extract --gzip --file=backup/full.tar.gz \
    --listed-incremental=/dev/null -C wrong
diff -rq data wrong/data || true
Files data/docs/budget.txt and wrong/data/docs/budget.txt differ
Only in data/docs: notes.txt
Only in wrong/data/docs: plan.txt

Результат — старое состояние: вернулся удаленный plan.txt, пропал новый notes.txt, в budget.txt старая версия. Исправление — порядок «полный, затем инкрементные по возрастанию», как в предыдущем блоке. Важно: при распаковке с --listed-incremental tar удаляет в целевом каталоге файлы, которых не было в момент бэкапа, поэтому распаковывайте в пустую папку, а не поверх рабочих данных.

Бэкап-снимки через rsync

rsync --link-dest делает каждый бэкап похожим на полную копию, но неизмененные файлы не дублирует, а связывает жесткими ссылками с предыдущим снимком.

set -eu
mkdir -p ~/backup-demo/src ~/backup-demo/snapshots && cd ~/backup-demo
echo "a" > src/a.txt
echo "b" > src/b.txt

snap() {
  new="snapshots/$(date +%F-%H%M%S)"
  test ! -e "$new"
  if [ -e snapshots/latest ]; then
    rsync -a --delete --link-dest="$HOME/backup-demo/snapshots/latest" src/ "$new/"
  else
    rsync -a --delete src/ "$new/"
  fi
  ln -sfn "$(basename "$new")" snapshots/latest
  echo "снимок: $new"
}

snap
sleep 1
echo "b v2" > src/b.txt
snap

stat -c "%i %h %n" snapshots/2*/*.txt
снимок: snapshots/2026-09-24-122740
снимок: snapshots/2026-09-24-122741
286107 2 snapshots/2026-09-24-122740/a.txt
287519 1 snapshots/2026-09-24-122740/b.txt
286107 2 snapshots/2026-09-24-122741/a.txt
282586 1 snapshots/2026-09-24-122741/b.txt

Первое число — номер inode, второе — число жестких ссылок. Неизмененный a.txt в обоих снимках — один и тот же файл на диске (inode совпадает, ссылок 2), а b.txt сохранен в двух версиях. Граница метода: снимки лежат на одном диске, поэтому это защита от удаления и порчи файлов, но не от поломки диска — каталог snapshots должен быть на отдельном носителе. Слеш в конце src/ значит «содержимое папки», без него внутри снимка появится вложенная папка src.

Как проверить, что бэкап восстановится

Бэкап без проверки — надежда, а не копия. Минимум — контрольная сумма и чтение архива:

set -eu
cd ~/backup-demo
umask 077                                   # новые архивы видит только владелец
tar --create --gzip --file=backup/docs.tar.gz data
sha256sum backup/docs.tar.gz > backup/docs.tar.gz.sha256

# Проверка 1: архив не поврежден при копировании/хранении
sha256sum --check backup/docs.tar.gz.sha256
# Проверка 2: архив читается целиком
tar --list --gzip --file=backup/docs.tar.gz > /dev/null && echo "архив читается"
ls -l backup/docs.tar.gz | cut -c1-10
backup/docs.tar.gz: OK
архив читается
-rw-------

Если архив испортился (для опыта один байт перезаписан через dd), проверка это покажет и вернет код 1:

backup/docs.tar.gz: FAILED
sha256sum: WARNING: 1 computed checksum did NOT match

Контрольная сумма подтверждает только, что файл не изменился с момента ее расчета; то, что внутри правильные данные, доказывает лишь пробное восстановление в отдельную папку и сравнение (diff -r), как выше. Делайте его хотя бы раз в месяц и после смены инструмента.

Как защитить резервные копии

  • Права: архивы с личными данными — только владельцу (umask 077, режим -rw-------).
  • Шифрование: копии на внешнем диске и в облаке шифруйте (Time Machine, BitLocker для диска в Windows, инструменты вроде restic или BorgBackup в Linux). Пароль или ключ храните отдельно от копии, иначе без него бэкап бесполезен.
  • Офлайн-копия: диск после бэкапа отключайте — шифровальщик шифрует все, что подключено.
  • Автоматизация: регулярный запуск по расписанию (Планировщик заданий, cron, systemd timer) с проверкой кода завершения и уведомлением об ошибке.

Если бэкап не получился

  • Копия есть, но пустая или неполная — проверьте, что в источнике указаны нужные папки; tar --list покажет содержимое архива.
  • Сообщение tar: Removing leading `/' from member names — это не ошибка: tar сохраняет пути без начального слеша, чтобы при распаковке не перезаписать систему.
  • Диск бэкапа заполнился — настройте удаление старых копий (ротацию) или переходите на инкрементный режим и снимки --link-dest.
  • Восстановление дает старые версии — проверьте порядок распаковки архивов и что при создании каждого инкремента использовался актуальный snapshot-файл предыдущего бэкапа.
  • Облачная копия тоже зашифрована вирусом — восстанавливайте из истории версий сервиса или офлайн-копии; впредь держите одну копию отключенной.

Выводы

  • Бэкап — это копия отдельно от оригинала; синхронизация, точка восстановления и снимок на том же диске его не заменяют.
  • Правило 3-2-1: три копии, два типа носителей, одна копия вне дома; плюс одна офлайн-копия от шифровальщиков.
  • Инкрементный бэкап экономит место, но восстанавливается только цепочкой по порядку; дифференциальный — из полного и последнего.
  • В Windows 11 для документов подходит История файлов, в macOS — Time Machine, в Linux — tar --listed-incremental и rsync --link-dest.
  • Бэкап считается рабочим только после проверки: контрольная сумма и пробное восстановление в пустую папку.

Где применяется / связь с практикой

Освойте тему на практике

Резервное копирование — одна из базовых обязанностей администратора: настроить расписание, ротацию, права на архивы и регулярную проверку восстановления на серверах. Для баз данных логика та же, но инструменты свои — об этом в статье про резервное копирование баз данных MS SQL. Работу с файлами, правами, tar, rsync и планировщиками в Linux системно разбирают на курсе «Администратор Linux. Базовый уровень». Попробовать формат обучения можно на бесплатных открытых уроках Otus.

FAQ

Можно ли считать бэкапом копию на флешке?
Да, если флешка хранится отдельно от компьютера и копия регулярно обновляется. Флешки выходят из строя без предупреждения, поэтому это одна из копий по правилу 3-2-1, а не единственная.

Как часто делать бэкап?
Частота определяется тем, сколько работы не жалко потерять: если документы меняются каждый день, копия нужна минимум ежедневно, если раз в месяц — хватит еженедельной. Автоматическое расписание надежнее ручного.

Нужно ли бэкапить файлы, которые уже лежат в облаке?
Желательно: облачная папка синхронизирует удаление и шифрование, а история версий у сервисов ограничена по сроку. Вторая копия на своем носителе закрывает этот риск.

OTUS Журнал