среда, 14 ноября 2018 г.

Linux. Зеркальная копия каталога на другой хост с помощью ssh

Сохранность данных пользователя – головная боль пользователя, который сам должен позаботиться о том, чтобы ничто из "нажитого непосильным трудом" (из к/ф "Иван Васильевич меняет профессию) не пропало. И если сам пользователь сам об этом не позаботится, то никто другой за него это не сделает. А если он не сумеет это сделать сам, то о таком должен позаботиться близкий человек.

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

Имеющееся решение предусматривало сохранение критически важных данных с компьютера Windows на Диск Яндекс в реальном масштабе времени (синхронизация). Сохранённые на Диск Яндекс данные предоставлялись в доступ в режиме "только чтение" другой учётной записи Яндекс, которые синхронизировались на другой компьютер под управлением Linux. Полученные данные с помощью grsync зеркалировались в другую папку, синхронизируемую с облаком MEGA.

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

Так как доступ к файловой системе второго компьютера в силу определённых причин решено было осуществлять не через Samba, а через SSH, то возникла, на первый взгляд, неразрешимая ситуация, связанная с тем, что выбранное ПО для синхронизации данных FreeFileSync не "умеет" работать с SSH.

И хочется, и колется, и мамка не велит ... Но, как говорится, если нельзя, но очень хочется, значит можно. Поэтому, чтобы было "моня", используем инструменты rclone + rclone browser, который будет транслировать содержание удалённого ресурса SSH в локальный каталог компьютера.

Не буду останавливаться на настройке FreeFileSync. Несмотря на англоязычность сайта, после скачивания архива tar.gz, его последующей распаковки и запуска файла FreeFileSync Вы обнаружите, что программа "разговаривает" по-русски.



На что следует обратить внимание?

Вызовите команду "Действия – Настройки синхронизации" (или нажмите F8). Так как SSH "не понимает" действия удаления в корзину, то следует указать безвозвратное удаление на приёмнике. То есть, при удалении из неё элементов (источник) такие же действия производятся и на приёмнике (получателе).


Второй особенностью является то, что данные для синхронизации источника будут хранится в каталоге, подлежащем зеркалированию, в виде скрытого файла .sync.ffs_db  А как указывалось в поставленной задаче выше, источник синхронизируется с Диском Яндекс в режиме "только чтение". И если файл .sync.ffs_db будет оставаться в каталоге, то при очередном сеансе синхронизации с Диском Яндекс будет отображена ошибка синхронизации, связанная с невозможностью записи файла .sync.ffs_db (ресурс "только чтение").

Решение заключается в том, чтобы:

1) зеркалирование каталога с помощью FreeFileSync осуществлялось при выключенном демоне Диска Яндекс, а при работающем демоне Диска Яндекс файла .sync.ffs_db в синхронизируемом каталоге быть не должно;

2) при запуске FreeFileSync файл .sync.ffs_db записывается в зеркалируемый каталог, а при выключении FreeFileSync файл .sync.ffs_db перемещается в другое место.

Исходя из п.2, для запуска FreeFileSync будет использоваться скрипт sh. Ниже приводится текст реального скрипта:

#!/bin/bash
mv /home/cemea/Yandex/Rovena/.sync.ffs_db /home/cemea/Yandex/Rovena/Логика
/home/cemea/Tools/FreeFileSync/FreeFileSync
mv /home/cemea/Yandex/Rovena/Логика/.sync.ffs_db /home/cemea/Rovena/Traidex
zenity --info --text "sync.ffs_db сохранён" 2>/dev/null --timeout=3
sleep 1 && exit

Теоретически можно предположить, что на компьютере Windows винчестер "прикажет долго жить". И даже то, что по "закону подлости" одновременно с ним выйдет из строя и винчестер на компьютере Linux. Но если возникнет ситуация, при которой одновременно "вылетят" винчестеры всех трёх компьютеров, то в этом случае останется лишь восклицать "дас ист фантастиш" и ...

Комментариев нет:

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