Synchronization and backup programs (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Synchronization and backup programs. Дата последней синхронизации: 3 января 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

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

Введение в резервное копирование

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

  • тип носителя данных, используемый для резервных копий: CD, DVD, удалённый сервер, внешний жёсткий диск и т.д.;
  • планируемая частота создания резервных копий: ежедневно, еженедельно, ежемесячно и т.д.;
  • возможности, ожидаемые от инструмента: сжатие, шифрование, обработка переименований и т.д.;
  • планируемый метод восстановления резервных копий при необходимости.

Синхронизация данных

Эти приложения просто «зеркалируют» содержимое каталогов по нескольким местам. Тем не менее большинство из них позволяют сохранять и возвращать старые версии изменённых или удалённых файлов.

См. также:

Легенда

Название
Название приложения, со ссылкой на ArchWiki или официальный сайт.
Пакет
Ссылка на пакет.
Реализация
Язык программирования, библиотеки или утилиты, на базе которых создано приложение.
Delta transfer
Передача только изменённых частей файла.
Зашифрованная передача
Передача данных зашифрованном виде по умолчанию при использовании сети.
Метаданные ФС
Сохранение прав доступа и атрибутов файловой системы.
Возобновляемая
Возможность возобновления синхронизации в случае её прерывания.
Переименования
Перемещённые/переименованные файлы определяются и не хранятся или не передаются дважды. Обычно это означает подсчёт хеш-сумм файлов или их частей. Приложения без поддержки этого можно комбинировать с hsyncAUR, который синхронизирует только переименования.
Контроль версий
Сохранение старых версий файла (reverse incremental backup).
Передача изменений
В каких направлениях могут передаваться изменения.
  • односторонняя синхронизация между двумя местами;
  • двухсторонняя синхронизация между двумя местами;
  • многосторонняя — полная синхронизация между более чем двумя местами.
Решение конфликтов
Обработка конфликтов файлов, автоматически или интерактивно, то есть приложение не отклоняет конфликтующие файлы молча. Неприменимо для приложений с односторонней синхронизацией.
Мониторинг ФС
Обработка приложением событий файловой системы для запуска синхронизации.
CLI
Наличие у приложения интерфейса командной строки.
Другие интерфейсы
Наличие указанных пользовательских интерфейсов, например GUI, TUI или web.
Лицензия
Лицензия серверного и клиентского приложения.
Другие платформы
Поддержка других операционных систем помимо Linux.
Поддержка
Поддерживается ли сейчас проект разработчиками.
Особенности
Заметки об особых функциях, которые выделяют приложение среди других.

Таблица

Название Пакет Реализация Delta transfer Зашифрованная передача Метаданные ФС Возобновляемая Переименования Контроль версий Передача изменений Решение конфликтов Мониторинг ФС CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
FreeFileSync freefilesyncAUR C++ ? SFTP [1] ? ? Да [2] Да [3] односторонняя / многосторонняя Да ? Нет Да GPL Windows, macOS Да
git-annex git-annex Haskell, git rsync [4] rsync и другие [5] Нет, но используются собственные, не относящиеся к ФС, метаданные [6] Да [7] Да, хранилище с адресацией по содержимому (content-addressable) Да многосторонняя; с удалёнными репозиториями [8] переименование конфликтующих файлов [9] Опционально, git-annex assistant Да git-annex assistant GPLv3 macOS, Android (beta), Windows (beta) Да Управление файлами с помощью git
osync.sh osyncAUR Bash, основано на rsync rsync rsync ? Да Нет Да двухсторонняя сохраняет несколько версий файла [10] опционально [11] Да Нет BSD Да
rclone rclone Go Нет [12] ? ? ? ? ? односторонняя [13] ? ? Да RcloneBrowser MIT *BSD, Plan9, Solaris, Windows, macOS Да Оптимизировано для работы с облачными хранилищами, поведение варьируется в зависимости от возможностей удалённого хранилища.
rdiff-backup rdiff-backupAUR Python, librsync rsync rsync Да ? Нет Да односторонняя Нет Да Нет GPL Win32 ?
Resilio Sync rslsyncAUR C++ Да Да ? Да ? Да многосторонняя ? ? Нет Web Проприетарная, freemium FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire Да P2P-синхронизация
rsync rsync C Да SSH или собственный протокол Да Да Нет
  • --link-dest с жёсткими ссылками [14]
  • --backup
односторонняя Нет Да Rsync (Русский)#Графические интерфейсы GPLv3 Win32 Да Стандартный инструмент, доступный во всех дистрибутивах Linux.
SparkleShare sparkleshareAUR C#, git Да AES-256 [15] ? ? Да Да ? ? ? Нет Да GPLv3 Windows, macOS Да Может синхронизировать с любым Git-сервером через SSH.
Syncany syncanyAUR Java ? ? ? ? ? ? ? ? ? Да Да GPLv3 Нет [16]
Syncthing syncthing Go Да [17] Да [18] частично [19] Да ? Да [20], старые версии перемещаются в архивный каталог многосторонняя переименовывает один файл [21] Да Да Web, GTK MPL v2 BSD, Windows, macOS, Android, Kindle Paperwhite Да P2P-синхронизация
Synkron synkronAUR C++ ? ? ? ? ? ? многосторонняя ? ? Нет Qt GPLv2 Windows, macOS No
taskd taskd C++, Python Да Да ? Да ? ? многосторонняя ? Нет Да Нет MIT Android Да
Unison unison OCaml Да Да частично [22][устаревшая ссылка 2023-06-17 ⓘ] опционально [23][устаревшая ссылка 2023-06-17 ⓘ] Нет Yes (Русский) [24][устаревшая ссылка 2023-06-17 ⓘ] двухсторонняя Интерактивное Нет Да GTK2 GPL FreeBSD, Windows, macOS, Android Да [25][устаревшая ссылка 2023-06-17 ⓘ]
yarsync yarsyncAUR Python, на основе rsync rsync rsync Да Да Да Да, снимки репозитория (у каждого файла одна версия) односторонняя / многосторонняя переименовывает один файл Нет Да Нет GPLv3 Да UNIX-подобные системы или накопители, CLI похож на git.
Zaloha.sh bash Нет Нет Опционально Нет Нет Нет двухсторонняя Интерактивное Нет Да Нет MIT Windows под Cygwin Да [26] Небольшая и простая утилита

Инкрементное резервное копирование

Приложения, которые могут создавать инкрементные резервные копии, запоминают и учитывают, какие данные были скопированы во время последнего запуска (так называемые «различия») и устраняют необходимость хранить дубликаты неизменённых данных. Восстановление данных к определённому моменту времени потребует размещения последней полной резервной копии и всех инкрементных резервных копий с того момента, когда предполагается, что они будут восстановлены. Этот вид резервных копий полезен для тех, кто делает их очень часто.

См. также:

Легенда:

  • Название: название приложения со ссылкой на ArchWiki или официальный сайт.
  • Пакет: ссылка на пакет.
  • Реализация: язык программирования, библиотеки или утилиты, на базе которых создано приложение.
  • Сжатое хранилище: использование сжатия для хранилища резервных копий.
  • Зашифрованное хранилище: использование шифрования для хранилища резервных копий.
  • Delta transfer: передача только изменённых частей файла.
  • Зашифрованная передача: передача данных зашифрованном виде по умолчанию при использовании сети.
  • Метаданные ФС: сохранение прав доступа и атрибутов файловой системы.
  • Лёгкий доступ: резервные копии хранятся на файловой системе или могут быть примонтированы для удобной работы с ними.
  • Возобновляемая: возможность возобновления синхронизации в случае её прерывания.
  • Многопоточная: резервное копирование может производиться, используя несколько потоков.
  • Переименования: перемещённые/переименованные файлы определяются и не хранятся или не передаются дважды. Обычно это означает подсчёт контрольных сумм файлов или их частей.
  • CLI: наличие у приложения интерфейса командной строки, что означает возможность использования в скриптах.
  • Другие интерфейсы: наличие указанных пользовательских интерфейсов, например, GUI, TUI или web.
  • Лицензия: лицензия серверного и клиентского приложения.
  • Другие платформы: поддержка других операционных систем помимо Linux.
  • Поддержка: поддерживается ли сейчас проект разработчиками.
  • Особенности: заметки об особых функциях, которые выделяют приложение среди других.

Одно устройство

Эти приложения ориентированы на резервное копирование данных того устройства, на котором они установлены, хотя целевое место хранения копий может быть расположено на внешнем хранилище или другой системе.

Инкременты на основе блоков данных

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

Название Пакет Реализация Сжатое хранилище Зашифрованное хранилище Delta transfer Зашифрованная передача Метаданные ФС Лёгкий доступ Возобновляемая Многопоточная Переименования CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
Areca Backup arecaAUR 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][устаревшая ссылка 2024-10-12 ⓘ] Продолжение с того места, где вы остановились [34] Нет Да Да thesafeAUR GPLv2 NetBSD, Windows, macOS Да Формат хранения данных, аналогичный git.
Duplicacy duplicacyAUR Go Да Да Да Да Да Да [35] Да [36] Да [37] Да [38] Да duplicacy-webAUR Собственная FreeBSD, macOS, Windows Да
Duplicati duplicati-canary-binAUR 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 zbackupAUR C++ LZMA, LZO AES Да Да ? Планируется [47] Нет ? С помощью tar Да Нет GPLv2 Нет Репозиторий состоит из неизменяемых файлов.

Инкременты на основе файлов

This article or section needs expansion.

Reason: Необходимо заполнить пропущенные ячейки. (Discuss in Talk:Synchronization and backup programs (Русский))

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

Легенда:

  • Жёсткие ссылки: хранение неизменённых файлов в виде жёстких ссылок на предыдущие версии.
Название Пакет Реализация Сжатое хранилище Зашифрованное хранилище Delta transfer Зашифрованная передача Метаданные ФС Лёгкий доступ Возобновляемая Переименования Жёсткие ссылки CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
Back In Time backintimeAUR Python, rsync, diff Нет Нет rsync rsync rsync Да Нет Нет Да [48][устаревшая ссылка 2023-10-29 ⓘ] Да Qt GPLv2 Да
DAR (Disk ARchive) darAUR C++ Специальный формат архивов Да Да Да ? ? ? ? Нет [49] Да darguiAUR GPL FreeBSD, NetBSD, Windows, macOS Да
Link-Backup[устаревшая ссылка 2022-09-23 ⓘ] link-backupAUR[ссылка недействительна: package not found] Python 2 Нет Нет ? SSH ? ? Да Да Нет [50][устаревшая ссылка 2022-09-23 ⓘ] Да Нет MIT Нет Утилита копирует себя на сервер.
rdup rdupAUR C tar.gz gpg, blowfish и другие ? ? ? Да ? Нет Да Да Нет GPLv3 Да [51] Набор утилит командной строки.
rsnapshot rsnapshot rsync Нет Нет Да Да ? ? ? ? Да [52] Да Нет GPLv2 Win32 Да [53]
TimeShift timeshift rsync Нет Нет rsync rsync ? ? ? ? Да Да GTK GPLv3 Создано для резервного копирования систем на выбранные устройства. Да [54]

Сетевые решения

This article or section needs expansion.

Reason: Необходимо заполнить пропущенные ячейки. Колонка Зашифрованная передача: Что означает Только при сетевой передачи данных? (Discuss in Talk:Synchronization and backup programs (Русский))

Эти приложения были разработаны для централизованного архивирования данных с нескольких машин, соединённых по сети, с использованием клиент-серверной модели. В целом они более сложны в развёртывании в сравнении с реализациями для одного устройства.

Легенда:

  • Направление: Pull: сессия архивирования инициализируется сервером. Push: сессия архивирования инициализируется клиентом.
  • Тип инкремента: стратегия уменьшения дублирования данных для экономии места (помимо сжатия).
    • на основе файлов: при изменении файла в новом снимке сохраняется новая версия целиком.
      • с жёсткими ссылками: хранение неизменённых файлов в виде жёстких ссылок на предыдущие версии.
    • на основе блоков данных: при изменении файла в снимке хранятся только изменённые части.
Название Пакет Реализация Направление Сжатое хранилище Зашифрованное хранилище Delta transfer Зашифрованная передача Метаданные ФС Лёгкий доступ Возобновляемая Переименования Тип инкремента CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
BackupPC backuppc Perl Pull Да Нет Да Да Да Нет Да ? На основе файлов, c жёсткими ссылками [55] Нет Web GPLv2 Любые (нет необходимости в клиенте) Да Идентичные файлы резервных копий одного или более клиентов хранятся только в одном экземпляре.
Bacula bacula* в AUR (Русский) C++ Pull Да Да ? Да ? ? Да ? На основе файлов [56] Да GUI, Web AGPLv3 Windows, macOS Да
Bareos bareos* в AUR (Русский) C++ (Bacula fork) ? ? ? ? ? ? ? ? ? ? ? ? AGPLv3 Да
burp burp-backupAUR librsync Push Да Да Да Да Да ? Да ? На основе блоков данных [57] Да burp-ui AGPLv3 Windows, macOS Да
SafeKeep safekeepAUR rdiff-backup Pull Нет Нет ? Да ? ? ? ? На основе блоков данных [58] Да Да GPL Нет Утилита интегрируется с LVM и базами данных для создание постоянных резервных копий. Также поддерживается регулирование пропускной способности канала.
Synbak[устаревшая ссылка 2020-08-06 ⓘ] synbak Надстройка над несколькими утилитами ? Да Нет Да Да Да ? ? ? ? Нет Web GPLv3 Да Совмещает несколько способов резервного копирования.
UrBackup urbackup* в AUR (Русский) C++ Pull Нет Нет Да Только при сетевой передачи данных Да Да Да Да На основе файлов, c жёсткими и символьными ссылками ссылки[59]/CoW-снимки на основе блоков данных[60] Да (client) GUI, Web AGPLv3+ Windows, macOS Да Идентичные файлы резервных копий одного или более клиентов хранятся только в одном экземпляре. Поддерживается интеграция с LVM, dattobd и btrfs для создания снимков ФС.

Системы управления версиями

Хотя системы управления версиями чаще всего используются для исходного кода, они могут хранить любые файлы.

См. List of applications/Utilities#Version control systems и dotfiles.

Смотрите также