Синхронизация данных для линукс

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

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

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

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

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

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

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

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

Легенда

  • односторонняя синхронизация между двумя местами;
  • двухсторонняя синхронизация между двумя местами;
  • многосторонняя — полная синхронизация между более чем двумя местами.

Таблица

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

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

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

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

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

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

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

Название Пакет Реализация Сжатое хранилище Зашифрованное хранилище 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 Нет Репозиторий состоит из неизменяемых файлов.
Читайте также:  Linux restart usb port

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

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

FreeFileSync

Bacula

Bacula

Bacula — мощный набор клиент-серверных программ для резервного копирования и восстановления данных, а также проверки данных, передаваемых по сети. Предназначен для опытных пользователей.

Clonezilla

Clonezilla

APTonCD

APTonCD

APTonCD — полезная программа для создания копий пакетов, которые были установлены через apt (apt-get, aptitude, synaptic). Позволяет создать своего рода оффлайн репозиторий с необходимыми пакетами на внешнем носителе.

Timeshift

Timeshift

Timeshift — программа для автоматического периодического резервного копирования и восстановления системы Linux.

Systemback

Systemback

Systemback — программа для создания резервных копий. Позволяет создавать резервные копии системы, конфигурационных файлов, а также Live-образы.

Яндекс.Диск

Яндекс.Диск

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

Dropbox

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. Мы настроим синхронизацию папок как на локальном компьютере, так и удаленных по сети.

Читайте также:  Linux посмотреть какие видеокарты

Установка и тестовый запуск

Выполним установку 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 к следующему значению:

    Источник

Оцените статью
Adblock
detector