- Synchronization and backup programs (Русский)
- Введение в резервное копирование
- Синхронизация данных
- Легенда
- Таблица
- Инкрементное резервное копирование
- Одно устройство
- Инкременты на основе блоков данных
- Инкременты на основе файлов
- Сетевые решения
- Системы управления версиями
- Смотрите также
- Резервное копирование и синхронизация
- FreeFileSync
- Bacula
- Clonezilla
- APTonCD
- Timeshift
- Systemback
- Яндекс.Диск
- Dropbox
- Установка и настройка сервиса Lsyncd на Linux
- Установка и тестовый запуск
- Установка
- Настройка и запуск
- Синхронизация по сети (SSH)
- SSH без пароля (по сертификату)
Synchronization and backup programs (Русский)
Состояние перевода: На этой странице представлен перевод статьи Synchronization and backup programs. Дата последней синхронизации: 3 января 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.
Эта статья содержит список и сравнение программ для синхронизации данных между двумя и более местоположениями, а также программ с расширенными возможностями, например, инкрементным резервным копированием. Данные темы достаточно схожи между собой и, соответственно, описываются в одной статье.
Введение в резервное копирование
Создание резервных копий является необходимой мерой, поскольку ошибки, совершаемые людьми и машинами, могут приводить к повреждению данных; физические носители также разрушаются со временем и однажды перестают работать. Чтобы выбрать лучшую программу для своих нужд, нужно учесть следующие моменты:
- тип носителя данных, используемый для резервных копий: CD, DVD, удалённый сервер, внешний жёсткий диск и т.д.;
- планируемая частота создания резервных копий: ежедневно, еженедельно, ежемесячно и т.д.;
- возможности, ожидаемые от инструмента: сжатие, шифрование, обработка переименований и т.д.;
- планируемый метод восстановления резервных копий при необходимости.
Синхронизация данных
Эти приложения просто «зеркалируют» содержимое каталогов по нескольким местам. Тем не менее большинство из них позволяют сохранять и возвращать старые версии изменённых или удалённых файлов.
Легенда
- односторонняя синхронизация между двумя местами;
- двухсторонняя синхронизация между двумя местами;
- многосторонняя — полная синхронизация между более чем двумя местами.
Таблица
Инкрементное резервное копирование
Приложения, которые могут создавать инкрементные резервные копии, запоминают и учитывают, какие данные были скопированы во время последнего запуска (так называемые «различия») и устраняют необходимость хранить дубликаты неизменённых данных. Восстановление данных к определённому моменту времени потребует размещения последней полной резервной копии и всех инкрементных резервных копий с того момента, когда предполагается, что они будут восстановлены. Этот вид резервных копий полезен для тех, кто делает их очень часто.
- Название: название приложения со ссылкой на ArchWiki или официальный сайт.
- Пакет: ссылка на пакет.
- Реализация: язык программирования, библиотеки или утилиты, на базе которых создано приложение.
- Сжатое хранилище: использование сжатия для хранилища резервных копий.
- Зашифрованное хранилище: использование шифрования для хранилища резервных копий.
- Delta transfer: передача только изменённых частей файла.
- Зашифрованная передача: передача данных зашифрованном виде по умолчанию при использовании сети.
- Метаданные ФС: сохранение прав доступа и атрибутов файловой системы.
- Лёгкий доступ: резервные копии хранятся на файловой системе или могут быть примонтированы для удобной работы с ними.
- Возобновляемая: возможность возобновления синхронизации в случае её прерывания.
- Многопоточная: резервное копирование может производиться, используя несколько потоков.
- Переименования: перемещённые/переименованные файлы определяются и не хранятся или не передаются дважды. Обычно это означает подсчёт контрольных сумм файлов или их частей.
- CLI: наличие у приложения интерфейса командной строки, что означает возможность использования в скриптах.
- Другие интерфейсы: наличие указанных пользовательских интерфейсов, например, GUI, TUI или web.
- Лицензия: лицензия серверного и клиентского приложения.
- Другие платформы: поддержка других операционных систем помимо Linux.
- Поддержка: поддерживается ли сейчас проект разработчиками.
- Особенности: заметки об особых функциях, которые выделяют приложение среди других.
Одно устройство
Эти приложения ориентированы на резервное копирование данных того устройства, на котором они установлены, хотя целевое место хранения копий может быть расположено на внешнем хранилище или другой системе.
Инкременты на основе блоков данных
При изменении файла приложении сохраняют только изменившиеся части в следующем снимке. В отличие от инкрементов на основе файлов, они более экономно расходуют место, особенно когда есть большие файлы с малыми изменениями; с другой стороны, такие резервные копии могут быть прочитаны только тем приложением, которое их создало, так как исходные файлы должны быть реконструированы по сохранённым в копии различиям между версиями.
Название | Пакет | Реализация | Сжатое хранилище | Зашифрованное хранилище | Delta transfer | Зашифрованная передача | Метаданные ФС | Лёгкий доступ | Возобновляемая | Многопоточная | Переименования | CLI | Другие интерфейсы | Лицензия | Другие платформы | Поддержка | Особенности |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Areca Backup [устаревшая ссылка 2023-05-20 ⓘ] | areca AUR | Java | Zip, Zip64 | AES128, AES256 | Да | Да | Да | Нет | Только приостановка | Нет [27] | Нет | Да | Да | GPLv2 | Windows | Да | |
BorgBackup | borg | Python, C (Cython) | lz4, zlib, lzma, zstd | AES256 | Да | SSH | Да [28] | Да [29] | Да [30] | Нет [31] | Да | Да | third party | BSD | *BSD, macOS, Windows (Cygwin / WSL)[32] | Да | Дедубликация на основе переменной длинны блоков данных; поддерживает как локальные, так и удалённые хранилища резервных копий (с помощью SSH). |
bup | bup | C, Python, git | Да | Нет | Да | Да | Недостаточно проработанная поддержка | Да [33] | Продолжение с того места, где вы остановились [34] | Нет | Да | Да | thesafe AUR | GPLv2 | NetBSD, Windows, macOS | Да | Формат хранения данных, аналогичный git. |
Duplicacy | duplicacy AUR | Go | Да | Да | Да | Да | Да | Да [35] | Да [36] | Да [37] | Да [38] | Да | duplicacy-web AUR | Собственная | FreeBSD, macOS, Windows | Да | |
Duplicati | duplicati-canary-bin AUR | C# | Да | Да | Да | Да | Да | Нет | Только приостановка | Да [39] | Нет | Да | Да | LGPL | Windows, macOS | Да | |
Duplicity | duplicity | librsync | gzip | gpg | Да | Да | ? | Нет | Да | Нет | Нет | Да | Yes | GPL | Да | ||
Kup Backup System | kup | rsync, bup front-end | Да | Да | Да | Да | Недостаточно проработанная поддержка | Да | Нет | ? | Да | bup | Qt | GPLv2 | Да | ||
restic | restic | Go | Нет [40] | AES-256 [41] | Да | Да | Да [42] | Да [43] | Да [44] | Да [45] | Да | Да | Нет [46] | BSD | OpenBSD, Windows, macOS | Да | Имеет встроенную или основанную на rclone поддержку различных облачных хранилищ. |
ZBackup | zbackup AUR | C++ | LZMA, LZO | AES | Да | Да | ? | Планируется [47] | Нет | ? | С помощью tar | Да | Нет | GPLv2 | Нет | Репозиторий состоит из неизменяемых файлов. |
Инкременты на основе файлов
This article or section needs expansion.
Reason: Необходимо заполнить пропущенные ячейки. (Discuss in Talk:Synchronization and backup programs (Русский))
Когда файл изменяется, эти приложения сохраняют новую его версию полностью в следующем снимке. В отличие от инкрементов на основе фрагментов, они менее экономно расходую место, особенно когда есть большие файлы с малыми изменениями; с другой стороны, зачастую такие резервные копии могут быть открыты без использования создавшего их приложения.
Сетевые решения
This article or section needs expansion.
Reason: Необходимо заполнить пропущенные ячейки. Колонка Зашифрованная передача: Что означает Только при сетевой передачи данных? (Discuss in Talk:Synchronization and backup programs (Русский))
Эти приложения были разработаны для централизованного архивирования данных с нескольких машин, соединённых по сети, с использованием клиент-серверной модели. В целом они более сложны в развёртывании в сравнении с реализациями для одного устройства.
Системы управления версиями
Хотя системы управления версиями чаще всего используются для исходного кода, они могут хранить любые файлы.
Смотрите также
- Краткий обзор open source средств резервного копирования
- Backing up Linux and other Unix(-like) systems
- Exhaustive list of backup solutions for Linux
- Performance comparison of five remote incremental backup tools: Rsync, Rdiff-backup, Duplicity, Areca and Link-Backup
- Mirroring an Entire Site using Rsync over SSH
- Performance comparison of five remote incremental backup tools: Rsync, Rdiff-backup, Duplicity, Areca and Link-Backup
- rsync-snapshots.sh rsync-snapshot.sh — Local and remote snapshot backup using rsync with hard links
Резервное копирование и синхронизация
Программы для резервного копирования информации в Linux. Программы для синхронизации файлов в Linux. Облачные хранилища для Linux.
FreeFileSync
Bacula
Bacula — мощный набор клиент-серверных программ для резервного копирования и восстановления данных, а также проверки данных, передаваемых по сети. Предназначен для опытных пользователей.
Clonezilla
APTonCD
APTonCD — полезная программа для создания копий пакетов, которые были установлены через apt (apt-get, aptitude, synaptic). Позволяет создать своего рода оффлайн репозиторий с необходимыми пакетами на внешнем носителе.
Timeshift
Timeshift — программа для автоматического периодического резервного копирования и восстановления системы Linux.
Systemback
Systemback — программа для создания резервных копий. Позволяет создавать резервные копии системы, конфигурационных файлов, а также Live-образы.
Яндекс.Диск
Яндекс.Диск — официальный клиент Яндекс.Диска под Linux для облачного сервиса хранения и синхронизации файлов. На вашем компьютере создается папка Яндекс.Диска, которая автоматически синхронизируется.
Dropbox
Dropbox — программа для Linux, с помощью которой можно с легкостью синхронизировать файлы между компьютерами. Dropbox представляет собой папку на вашем компьютере, которая является «облачной», все данные в ней синхронизируются в реальном времени.
Установка и настройка сервиса Lsyncd на Linux
Обновлено: 19.08.2022 Опубликовано: 13.10.2020
Используемые термины: rsync, Linux, CentOS, Ubuntu. Lsyncd позволяет отслеживать состояние каталога с помощью подсистемы ядра inotify, и при помощи утилиты синхронизации rsync, менять содержимое другого каталога, таким образом, приводя оба каталога к единому виду. Это может использоваться для зеркалирования кластерной системы или создания оперативного бэкапа (не путать с полноценной резервной копией). В данной инструкции нами будет рассмотрен процесс установки и настройки Lsyncd на компьютер с Linux CentOS версий 8 и 7, а также Ubuntu. Мы настроим синхронизацию папок как на локальном компьютере, так и удаленных по сети.
Установка и тестовый запуск
Выполним установку lsyncd на Linux, а также настроим сервис для синхронизации двух каталогов на локальном компьютере.
Установка
В зависимости от типа операционной системы, наши действия будут отличаться. а) RPM (Rocky Linux, CentOS):
Настройка и запуск
settings <
logfile = «/var/log/lsyncd.log»,
statusFile = «/var/log/lsyncd.stat»,
statusInterval = 5,
insist = true,
nodaemon = false,
>
sync default.rsync,
source=»/tmp/source»,
target=»/tmp/target»,
>
- settings — общие настройки.
- logfile — путь до файла логов.
- statusFile — файл, в который заносятся изменения, найденные с помощью inotify.
- statusInterval — интервал в секундах для обновления statusFile.
- insist — позволяет продолжить работу сервиса, даже если одна или несколько целевых директорий недоступны.
- nodaemon — отключаться или нет от вызывающей стороны. Проще говоря, если разрешить, то будет больше информации по его работе. Для боевого режима можно отключить.
- default.rsync — должен использоваться протокол для синхронизации rsync.
- source — источник, откуда синхронизируем данные.
- target — куда синхронизируем.
* в данном примере мы синхронизируем два каталога на локальном компьютере. Таким же образом, можно синхронизировать данные и в подмонтированных каталогах, например, по nfs или cifs (smb).
Создадим два тестовых каталога:
Перезапускаем сервис lsyncd:
Пробуем создать тестовый файл к каталоге-источнике:
Ждем 5-10 секунд. Проверяем содержимое каталога-цели:
Синхронизация по сети (SSH)
Для корректной передачи данных по сети с помощью SSH, нужно настроить возможность беспарольного подключения, затем — сам Lsyncd. Рассмотрим оба процесса по очереди.
SSH без пароля (по сертификату)
На компьютере, с которого будем передавать файлы (lsyncd) генерируем ключи:
. на все запросы просто нажимаем Enter.
Переносим id_rsa.pub на целевой компьютер (куда будем передавать данные с помощью lsyncd):
scp /root/.ssh/id_rsa.pub dmosk@192.168.1.15:/home/dmosk/.ssh/authorized_keys
* если мы получим ошибку scp: /home//.ssh/authorized_keys: No such file or directory, необходимо на удаленном компьютере создать каталог .ssh в профиле пользователя, которому мы пытаемся передать ключ. Например, командами, mkdir /home/dmosk/.ssh и chown dmosk:dmosk /home/dmosk/.ssh.
* обратите внимание, что мы передаем созданный ключ в каталог пользователя dmosk. Это значит, что мы будем подключаться к целевому компьютеру от этого пользователя. Важно, чтобы у последнего были подходящие права для редактирования файлов в целевой папке, в которую мы будем синхронизировать данные.Пробуем подключиться к удаленному компьютеру:
Мы должны подключиться по SSH без ввода пароля. В противном случае, на целевом компьютере (к которому у нас не получилось подключиться) открываем конфигурационный файл для ssh:
И приводим опцию AuthorizedKeysFile к следующему значению: