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

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

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

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

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

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

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

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

См. также:

Легенда

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

Таблица

Tango-edit-clear.pngThis article or section needs language, wiki syntax or style improvements. See Help:Style for reference.Tango-edit-clear.png

Reason: Explicitly list supported protocols / tools. Drop Encrypted transfer column because it depends on the protocol / tool. Simplify and color Change propagation column and move it leftwards. Split unmaintained into subsection? See also User:Larivact/drafts/Synchronization and backup programs#Synchronization. (Discuss in Talk:Synchronization and backup programs (Русский)#)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Fill in the blanks. (Discuss in Talk:Synchronization and backup programs (Русский)#)
Название Пакет Реализация Delta transfer Зашифрованная передача Метаданные ФС Возобновляемая Переименования Контроль версий Передача изменений Решение конфликтов Мониторинг ФС CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
FreeFileSync freefilesyncAUR C++ ? SFTP [1] ? ? Да [2] Да [3] односторонняя / многосторонняя Да ? Нет Да GPL Windows, macOS Да
git-annex git-annex Haskell, git rsync [4] rsync [5] ? ? ? Да многосторонняя; with git remotes [6] переименование конфликтующих файлов [7] ? Да git-annex assistant GPLv3 macOS, Android (beta), Windows (beta) Да Manage files with git
osync.sh osyncAUR Bash, based on rsync rsync rsync ? Да Нет Да двухсторонняя сохраняет несколько версий файла [8] опционально [9] Да Нет BSD Да
rclone rclone Go Нет [10] ? ? ? ? ? односторонняя [11] ? ? Да RcloneBrowser MIT *BSD, Plan9, Solaris, Windows, macOS Да Оптимизировано для работы с облачными хранилищами, поведение варьируется в зависимости от возможностей удалённого хранилища.
rdiff-backup rdiff-backup Python 2, librsync rsync rsync Да ? Нет Да односторонняя Нет Да Нет GPL Win32 ?
Resilio Sync rslsyncAUR C++ Да Да ? Да ? Да многосторонняя ? ? Нет Web Proprietary freemium FreeBSD, Windows, macOS, Android, iOS, Windows Phone, Amazon Kindle Fire Да P2P sync
rsync rsync C Да SSH или свой протокол Да Да Нет
  • --link-dest с жёсткими ссылками [12]
  • --backup
односторонняя Нет Да Rsync#Front-ends GPLv3 Win32 Да Стандартный инструмент, доступный во всех дистрибутивах Linux.
SparkleShare sparkleshare C#, git Да AES-256 [13] ? ? Да Да ? ? ? Нет Да GPLv3 Windows, macOS Да Может синхронизировать с любым Git-сервером через SSH.
Syncany syncanyAUR Java ? ? ? ? ? ? ? ? ? Да Да GPLv3 Нет [14]
Syncthing syncthing Go Да [15] Да [16] частично [17] Да ? Да [18], старые версии перемещаются в архивный каталог многосторонняя переименовывает один файл [19] Да Да Web, GTK MPL v2 BSD, Windows, macOS, Android, Kindle Paperwhite Да P2P sync
Synkron synkronAUR C++ ? ? ? ? ? ? многосторонняя ? ? Нет Qt GPLv2 Windows, macOS No
taskd taskdAUR C++, Python Да Да ? Да ? ? многосторонняя ? Нет Да Нет MIT Android Да
Unison unison OCaml Да Да частично [20] опционально [21] Нет Да [22] двухсторонняя interactive Нет Да GTK2 GPL FreeBSD, Windows, macOS, Android Да [23]

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

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

См. также:

Легенда:

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

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

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

Инкременты на основе фрагментов (chunks)

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Fill in the blanks. FS metadata column: What does Immature mean? Resumable column: What does Pausing only / Kinda through tar mean? (Discuss in Talk:Synchronization and backup programs (Русский)#)

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

Название Пакет Реализация Сжатое хранилище Зашифрованное хранилище Delta transfer Зашифрованная передача Метаданные ФС Лёгкий доступ Возобновляемая Переименования CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
Areca Backup arecaAUR Java Zip, Zip64 AES128, AES256 Да Да Да Нет Pausing only Нет Да Да GPLv2 Windows Да
BorgBackup borg Python, C (Cython) lz4, zlib, lzma, zstd AES256 Да SSH Да [24] Да [25] Да [26] Да Да third party BSD *BSD, macOS, Windows (Cygwin / WSL)[27] Да Deduplication based on variable length chunks; support both local and SSH-based remote backup destination.
btar btarAUR[ссылка недействительна: сохранено в aur-mirror] C Да Да Да Да ? Нет ? ? Да Нет GPLv3 Да Redundancy, indexed extraction, multicore compression, input and output serialisation, tolerance to partial archive errors.
bup bup bup-gitAUR C, Python, git Да Нет Да Да Immature Да [28] pick up where you left off [29] Да Да bupsAUR GPLv2 NetBSD, Windows, macOS Да Same storage format as git.
Duplicati duplicati-latestAUR C# Да Да Да Да Да Нет Pausing only Нет Да Да LGPL Windows Да
Duplicity duplicity librsync gzip gpg Да Да ? Нет Да Нет Да Yes GPL Да
Kup Backup System kup rsync, bup front-end Да Да Да Да Immature Да Нет Да bup Qt GPLv2 Да
obnam obnamAUR Python Да GnuPG Да Да ? Да checkpoints every 100MB ? Да Нет GPLv3 No
restic restic restic-gitAUR Go Нет [30] AES-256 [31] Да Да Да [32] Да [33] Да [34] Да Да Нет [35] BSD OpenBSD, Windows, macOS Да Supports storage on various cloud services natively and through rclone.
ZBackup zbackupAUR C++ LZMA, LZO AES Да Да ? планируется [36] Нет Kinda through tar Да Нет GPLv2 Да Repository consists of immutable files.

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

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Fill in the blanks. (Discuss in Talk:Synchronization and backup programs (Русский)#)

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

Легенда:

  • Жёсткие ссылки: хранение неизменённых файлов в виде жёстких ссылок на предыдущие версии.
Название Пакет Реализация Сжатое хранилище Зашифрованное хранилище Delta transfer Зашифрованная передача Метаданные ФС Лёгкий доступ Возобновляемая Переименования Жёсткие ссылки CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
Back In Time backintimeAUR Python, rsync, diff Нет Нет rsync rsync rsync Да Нет Нет Да [37] Да Qt GPLv2 Да
DAR (Disk ARchive) darAUR C++ special archive format Да Да Да ? ? ? ? Нет [38] Да darguiAUR GPL FreeBSD, NetBSD, Windows, macOS Да
Link-Backup link-backupAUR Python 2 Нет Нет ? SSH ? ? Да Да Нет [39] Да Нет MIT Нет It copies itself to the server.
rdup rdupAUR C tar.gz gpg, blowfish и другие ? ? ? Да ? Нет Да Да Нет GPLv3 Нет Set of command-line tools.
rsnapshot rsnapshot rsync Нет Нет Да Да ? ? ? ? Да [40] Да Нет GPLv2 Win32 Нет [41]
sbackup sbackupAUR Python gzip, bzip2 Нет ? SSH ? Нет Нет Нет Нет Нет GTK GPLv3 Нет
TimeShift timeshiftAUR rsync Нет Нет rsync rsync ? ? ? ? Да Нет GTK GPLv3 Designed for full-system backups to dedicated devices. Да

Сетевая структура

Tango-view-fullscreen.pngThis article or section needs expansion.Tango-view-fullscreen.png

Reason: Fill in the blanks. Encrypted transfer column: What does Internet transfers only mean? (Discuss in Talk:Synchronization and backup programs (Русский)#)

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

Легенда:

  • Направление: Pull: сервер пишет в клиент. Push: клиент начинает сессию архивирования.
  • Тиип инкремента: стратегия уменьшения дублирования данных для экономии места (помимо сжатия).
    • файлы: при изменении файла в новом снимке сохраняется новая версия целиком.
      • жёсткие ссылки: хранение неизменённых файлов в виде жёстких ссылок на предыдущие версии.
    • чанки: при изменении файла в снимке хранятся только изменённые части.
Название Пакет Реализация Направление Сжатое хранилище Зашифрованное хранилище Delta transfer Зашифрованная передача Метаданные ФС Лёгкий доступ Возобновляемая Переименования Тиип инкремента CLI Другие интерфейсы Лицензия Другие платформы Поддержка Особенности
BackupPC backuppc Perl Pull Да Нет Да Да Да Нет Да ? файлы, жёсткие ссылки [42] Нет Web GPLv2 Any (no client needed) Да Identical files across backups of the same or different clients are stored only once.
Bacula bacula* in AUR C++ Pull Да Да ? Да ? ? Да ? файлы [43] Да GUI, Web AGPLv3 Windows, macOS Да
burp burp-backupAUR librsync Push Да Да Да Да Да ? Да ? чанки [44] Да burp-ui AGPLv3 Windows, macOS Да
SafeKeep safekeepAUR rdiff-backup Pull Нет Нет ? Да ? ? ? ? чанки [45] Да Да GPL Нет Integrates with LVM and databases to create consistent backups. Bandwidth throttling.
Snebu snebuAUR[ссылка недействительна: сохранено в aur-mirror] C Push или Pull Да Нет ? Да ? ? ? ? файлы [46] Да Нет GPLv3 ? Supports arbitrary retention schedules.
Synbak synbak Multitool wrapper ? Да Нет Да Да Да ? ? ? ? Нет Web GPLv3 Да Unifies several backup methods.
UrBackup urbackup* in AUR C++ Pull Нет Нет Да Internet transfers only Да Да Да Да файлы, жёсткие и символьные ссылки[47]/chunk-based CoW-Snapshots[48] Да (client) GUI, Web AGPLv3+ Windows, macOS Да Identical files across backups of the same or different clients are stored only once. Integrates with LVM, dattobd and btrfs for file system snapshots.

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

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

Смотрите List of applications/Utilities#Version control systems и dotfiles.

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