Chastniimastertver.ru

Ремонт бытовой техники
0 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Синхронизация времени NTP

Синхронизация времени NTP.

Синхронизация времени является важной задачей, хотя не многие задумывались об этом. Ну что плохого в убежавшем на сервере времени? А знаете ли вы, что многие проблемы с часами влияют на протоколы, связанные с криптографией? По этой причине в Active Directory разница в часах более 5 минут будет приводить к проблемам аутентификации Kerberos.

Часовые уровни. Strata.

Чтобы понять устройство NTP следует знать про концепцию strata или stratum. Авторитетные источники времени, такие как спутники GPS, цезиевые атомные часы, радио волны WWVB — всё это stratum 0. Они авторитетны на том основании, что у них есть некоторый способ поддержания высокоточного хронометража. Можно, конечно, воспользоваться обычными кварцевыми часами, но зная, что за месяц с ними легко потерять 15 секунд, то лучше их не использовать в качестве мерила времени. Stratum 0 это когда секунда не потеряется за 300 000 лет!

Компьютеры, которые напрямую (не по сети!) берут время у stratum 0 — это stratum 1. Так как всегда есть задержки из-за передачи сигнала и затраты на установку времени, то компьютеры stratum 1 не так точны как stratum 0, но в реальной жизни различие достигает пару микросекунд (1 мкс = 10 -6 с), что вполне допустимое отклонение.

Следующий уровень компьютеров, берущих время по сети у stratum 1 — это . барабанная дробь . интрига . stratum 2! Опять таки из-за различных задержек (сетевые точно), stratum 2 чуток отстаёт от stratum 1 и уж точно от stratum 0. На практике это разница от нескольких микросекунд (1 мкс = 10 -6 с) до нескольких миллисекунд (1 мс = 10 -3 с). Многие хотят синхронизироваться со слоем не дальше stratum 2.

Как понятно из схемы, stratum 4 берёт время у вышестоящего stratum 3. stratum 5 у stratum 4 и так далее. stratum 16 считается самым нижним слоем и время там считается несинхронизированным.

Чтобы синхронизировать время с помощью протокола NTP, следует сначала вручную выставить ваше время. Недопустима разница между вашим точным временем и показаниями ваших часов более 1000 секунд. Если используемый вами сервер времени врёт более 1000 миллисекунд (1 секунда), то он будет исключён из списка и будут использоваться другие вместо него. Данный механизм позволяет отсеивать плохие источники времени.

Клиент времени.

В файле /etc/ntp.conf для клиента важны строки Server. Их может быть несколько — до 10 штук!

Сколько добавлять? Следует иметь в виду:

  • Если у вас только один сервер (одна строка server), то если данный сервер начнёт врать, то вы будете слепо следовать за ним. Если его время убежит на 5 секунд и вы убежите в след за ним.
  • Если добавлено 2 сервера (2 строки server), то NTP пометит их обоих как false tickers. Если один из них будет врать, то NTP не может понять кто врёт, так как нет кворума.
  • Если добавлено 3 и более сервера времени, то можно вычислить одного вруна false tickers. Если серверов времени 5 или 6, то можно найти 2 вруна false tickers. Если серверов 7 или 8, то 3 false tickers. Если серверов 9 и 10, то 4 false tickers.

Проект NTP Pool.

Есть такой проект NTP Pool по адресу которого pool.ntp.org/zone/ru/ можно найти рекомендованные для русских пользователей сервера времени.

server 0.ru.pool.ntp.org
server 1.ru.pool.ntp.org
server 2.ru.pool.ntp.org
server 3.ru.pool.ntp.org

Такие операционные системы, как Debian и Ubuntu, предлагают пользователям свои сервера времени.

server 0.debian.pool.ntp.org
server 1.debian.pool.ntp.org
server 2.debian.pool.ntp.org
server 3.debian.pool.ntp.org

server 0.ubuntu.pool.ntp.org
server 1.ubuntu.pool.ntp.org
server 2.ubuntu.pool.ntp.org
server 3.ubuntu.pool.ntp.org

Если вызвать на вашем Linux компьютере, который использует NTP, команду ntpq -pn

О чём говорят названия столбцов:

  • remote — удалённые сервера, с которыми вы синхронизируете время.
  • refid — вышестоящий stratum для данного сервера.
  • st — уровень stratum. От 0 (нам недоступно) до 16 (нам не желательно). Идеально — 2.
  • t — тип соединения. «u» — unicast или manycast, «b» — broadcast или multicast, «l» local reference clock, «s» — симметричный узел, «A» — manycast сервер, «B» — broadcast server, «M» — multicast сервер.
  • when — время, когда последний раз сервер ответил нам. Параметр отображает число в секундах, но может в минутах, если число с m или в часах, если h.
  • poll — частота опроса. Минимум 16 секунд, максимум 32 часа. Число должно быть 2 n . Обычно в данном параметре наблюдается или 64 секунды или 1024.
  • reach — 8 бит октета, показывающий статус общения с удалённым сервером времени: успешный или сбойный. Если биты установлены — то успешно, иначе — сбой. Значение 377 — бинарно это 0000 0000 1111 1111.
  • delay — значение в миллисекундах показывает время между отправкой и получения ответа (round trip time — RTT).
  • offset — смещение в миллисекундах между вами и серверами времени. Может быть положительным и отрицательным числом.
  • jitter — абсолютное значение в миллисекундах с указанием среднеквадратичного отклонения вашего смещения.

Перед IP адресом NTP сервера есть символ — это tally code. Виды tally code:

  • » « — отброшен как недопустимый. Например, нет связи с ним или он в оффлайн, он слишком высокого ранга и не обслуживает таких как вы.
  • «x» — отброшен алгоритмом «пересечения» (intersection algorithm). Алгоритм пересечения подготавливает список кандидатов партнеров, могущих стать источниками синхронизации и вычисляет доверительный интервал для каждого из них.
  • «.» — отброшен из-за переполнения таблицы.
  • «-« — отброшен алгоритмом кластеризации (cluster algorithm). Алгоритм кластеризации сортирует список кандидатов по кодам слоя и расстояния синхронизации.
  • «+» — сервер включён алгоритмом «комбинирования» (combine algorithm). Этот сервер — отличный кандидат если текущий сервер времени начнёт отказывать вам.
  • «#» — сервер является отличным альтернативным сервером времени. Сервер с # можно увидеть только если у вас более 10 записей server в /etc/ntp.conf
  • «*» — текущий сервер времени. Его показания используются для синхронизации ваших часов.
  • «o» — сервер Pulse per second (PPS). Обычно это означает, что данный сервер времени использует источники времени типа GPS спутников и другие сигналы точного времени. Если рисуется о, то другие типы tally code уже отображаться не будут.
Читайте так же:
Как снять синхронизацию с iphone

В поле refid могут быть следующие значения:

  • IP адрес — адрес удалённого сервера времени.
  • .ACST.- NTP manycast сервер.
  • .ACTS.- Automated Computer Time Service из American National Institute of Standards and Technology.
  • .AUTH.- ошибка аутентификации.
  • .AUTO.- ошибка в последовательностях Autokey.
  • .BCST.- NTP broadcast сервер.
  • .CHU.- Shortwave radio receiver от станции CHU в Ottawa, Ontario, Canada.
  • .CRYPT.- ошибка протокола Autokey.
  • .DCFx.- LF radio receiver от станции DCF77 в Mainflingen, Germany.
  • .DENY.- В доступе отказано.
  • .GAL.- European Galileo satellite receiver.
  • .GOES.- American Geostationary Operational Environmental Satellite receiver.
  • .GPS.- American Global Positioning System receiver.
  • .HBG.- LF radio receiver от станции HBG в Prangins, Switzerland.
  • .INIT.- Peer association initialized.
  • .IRIG.- Inter Range Instrumentation Group time code.
  • .JJY.- LF radio receiver от станции JJY в Mount Otakadoya, рядом с Fukushima или Mount Hagane на острове Kyushu, Japan.
  • .LFx.- Обычный LF radio receiver.
  • .LOCL.- локальные часы хоста.
  • .LORC.- LF radio receiver от Long Range Navigation (LORAN-C).
  • .MCST.- NTP multicast сервер.
  • .MSF.- Anthorn Radio Station рядом с Anthorn, Cumbria.
  • .NIST.- American National Institute of Standards and Technology.
  • .PPS.- часы Pulse per second.
  • .PTB.- Physikalisch-Technische Bundesanstalt от Brunswick и Berlin, Germany.
  • .RATE.- превышен порог опроса NTP.
  • .STEP.- изменение шага NTP. Смещение offset менее 1000 миллисекунд, но более 125 миллисекунд.
  • .TDF.- LF radio receiver от станции TéléDiffusion de France в Allouis, France.
  • .TIME.- NTP association timeout.
  • .USNO.- United States Naval Observatory.
  • .WWV.- HF radio receiver от станции WWV в Fort Collins, Colorado, United States.
  • .WWVB.- LF radio receiver от станции WWVB в Fort Collins, Colorado, United States.
  • .WWVH.- HF radio receiver от станции WWVH в Kekaha, на острове Kauai на Hawaii, United States.

Рекомендации для клиента серверов времени.

Во-первых, избавьтесь от мысли как бы получить время от stratum 1, дескать они ближе всех к точному времени. Они то ближе к точнейшему времени на планете, только сами они перегружены и у них высокие задержки RTT для обычных серверов. Лучше найти нормальный stratum 2 и не переживать по этому поводу. Не забывайте, что речь идёт о микросекундах и миллисекундах, что в обычной жизни — вполне достаточно.

Во-вторых, помните, что подключение к ближайшему серверу времени не всегда идеальный вариант. Важнее не территориальная близость, а уровень stratum. Проект NTP Pool публикует список серверов только уровня stratum 1 и stratum 2 и лучше взять до 10 серверов времени из данного списка, что будет просто замечательно.

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

Для крупных контор, лучшим вариантом будет поднятие своего сервера времени для рабочих компьютеров. Данный сервер будет получать точное время от серверов времени в Интернете и предоставлять его локальным компьютерам. На серверах Debian и Ubuntu достаточно раскомментировать строку

в конфигурационном файле демона ntpd — /etc/ntp.conf

Пользователи из сети 192.168/16 будут иметь возможность брать с вашего сервера показания точнейших часов. Для внутренних серверов на базе Linux, которые не являются серверами времени и занимаются своими задачами, вместо запуска демона ntpd в клиентском режиме — вполне достаточно указать в файле /etc/cron.daily/syncntpd. Рекомендуется прочесть различия между ntpdate и ntp и решить для себя вопрос.
#!/bin/sh
/usr/sbin/ntpdate IP.адрес.вашего.сервера > /dev/null 2>&1
exit 0

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

В-четвёртых, NTP никак не связан, в какой стране и какие часовые пояса используются и как происходит переход на летнее и зимнее время и делается ли в данной стране такой переход. Это обязанность лежит на операционной системе, которую вам нужно обновлять, если в стране происходят изменения в часовых делах. В системах Debian и Ubuntu за это отвечает пакет tzdata, который должен быть актуальным.

Читайте так же:
Как синхронизировать рингтон в телефоне

В-пятых, лучше не поднимать свой NTP сервер на высоконагруженной системе.

Как синхронизировать файлы или каталоги на устройстве Android с Ubuntu One?

Если вы хотите установить стандартные пакеты Debian, вы можете использовать apt-zip, который позволяет загружать пакеты в автономном режиме и передавать их на компьютер на каком-то съемном носителе. Я не использовал его в течение нескольких лет, но когда у меня было медленное сетевое подключение дома, это был очень полезный инструмент.

4 ответа

FolderSync — это приложение, которое позволяет синхронизировать выбранные папки между Android и различными облачными сервисами, включая Ubuntu One. Бесплатная версия показывает рекламу и ограничивает количество облачных сервисов, которые вы можете использовать одновременно.

Приложение для Android можно найти здесь .

Это работает так, что все в папке Ubuntu One (расположенной в вашей домашней папке) автоматически синхронизируется с облаком. Вы можете добавить дополнительные папки для синхронизации, щелкнув по ним правой кнопкой мыши в файловом менеджере и перейдя в подменю Ubuntu One и, наконец, щелкнув по Synchronize This Folder .

На Android ваши фотографии загружаются в папку, названную в честь модели вашего телефона (у меня Pictures — HTC Ruby ), и вы можете выбрать файлы для загрузки из Ubuntu One на свой телефон. Однако они не синхронизируются с их версиями в облаке после загрузки.
Вы можете загружать файлы в приложении Android, перейдя в папку и нажав значок + справа. Однако вам понадобится приложение, например File Manager , чтобы можно было просто выбрать любой файл на SD-карте. Для этого выберите Add file после нажатия значка + и выберите File Manager (или предпочитаемое вами приложение) из списка.

enter image description here

Чтобы получить свои фотографии или другие файлы в Ubuntu One на ПК, вам нужно использовать приложение Ubuntu One для Ubuntu (откройте тире и введите Ubuntu One ). Выберите здесь папки, которые вы хотите синхронизировать с вашим компьютером:

enter image description here
Папки в облаке, которые вы выберете, будут помещены в вашу домашнюю папку и синхронизированы с другими компьютеры. Например, я синхронизирую свои сценарии, поэтому у меня всегда есть моя самая последняя работа, независимо от того, какую машину я включаю.

Существует также музыкальное приложение для Ubuntu One, для работы которого требуется подписка. Он может передавать вам всю вашу музыкальную коллекцию, что замечательно, если у вас неограниченный тарифный план. Вы можете найти здесь , если вы заинтересованы.

Очень старая статья и, как ни странно, мобильное приложение Ubuntu One по-прежнему не поддерживает синхронизацию, как настольное приложение Ubuntu One. В мобильных устройствах это просто позволяет вам получить доступ к тому, что присутствует в вашей учетной записи U1. Если вы загружаете и изменяете файл, он не синхронизируется с U1.

Что касается сторонних приложений синхронизации, я не доверяю им в разрешениях, которые они запрашивают, и в рекламе, которую они показывают.

У меня была такая же проблема при использовании приложения Ubuntu One на моем BlackBerry Z10. Это решение, которое я придумал, будет работать на всех платформах всех устройств, не только Z10.

Это может показаться немного сложным в использовании для некоторых пользователей. Но вот оно.

Я создал очень простой сценарий оболочки для синхронизации папки (который уже синхронизирован с приложением Ubuntu One на моем ноутбуке)

Сценарий оболочки, который я использую для синхронизации папки с памятью телефона или картой памяти: После подключения телефона через USB-накопитель (в моем случае это карта памяти MICROSD)

/ MyFolder уже синхронизирована с U1 на моем ноутбуке (ОС: Ubuntu12.04).

Итак, это касается: 1. Во-первых, папка, которую я хочу синхронизировать с моим телефоном, уже синхронизирована с U1 и моим ноутбуком.

Мне сейчас нужно синхронизировать одну и ту же папку либо с моего ноутбука, либо с U1, с моим телефоном.

Поскольку я не знаю, как синхронизировать папку непосредственно из U1 с телефоном, я собираюсь синхронизировать папку на моем ноутбуке с моим телефоном.

Этот скрипт синхронизирует папку на моем ноутбуке, которая находится в

/ MyFolder, с папкой на моей карте памяти Z10 в / media / MICROSD / BlackBerry / documents / MyFolder

Замените эти пути в скрипт с соответствующими путями для вас

Теперь сохраните это как SyncMyFolder.sh и отметьте «Разрешить выполнение файла как программы» (на тот случай, если вы этого не знаете) в разделе разрешений в свойствах файла

Все готово, и теперь вы можете подключить свой телефон с помощью запоминающего устройства. Теперь вы можете нажать Enter на SyncMyFolder.sh и выбрать «Запуск в терминале». Он покажет вам, что делается в окне терминала. Когда вы видите «эхо фаза 2/2 завершена . », папка синхронизируется.

Читайте так же:
Можно ли синхронизировать сообщения на айфоне в айпад

Единственным недостатком этого процесса является то, что мне приходится синхронизировать свой телефон каждую ночь вручную. Файлы, которые я изменяю на моем телефоне, теперь синхронизируются с U1.

Аналоги OneNote в Linux

OneNote — это программа от Microsoft, которая не просто позволяет создавать заметки, но и полностью заменяет бумажный блокнот. Если вы были пользователем ًWindows, и после миграции на Linux не хотите расставаться с привычной «записной книжкой», то для вас есть хорошие новости — это приложение легко устанавливается в большинстве популярных операционных систем.

Сегодня мы расскажем, как установить OneNote в Ubuntu, а также рассмотрим лучшие аналоги OneNote для Linux.

Установка OneNote в Linux

Официального приложения OneNote для Linux не существует, зато доступна веб-версия программы (открывается только в браузере Chromium). Также на сайте Snapcraft есть несколько приложений, разработанных энтузиастами. По сути, они являются той же веб-версией, «упакованной» с помощью electron-packager или другого фреймворка. Наиболее удачное из них — P3X OneNote.

ПреимуществаНедостатки
Подходит для командной работы — все пользователи, с которыми автор записи поделился ссылкой, могут редактировать эту запись.Невозможна работа в оффлайн-режиме.
Синхронизация.Требуется почтовый адрес на outlook.com.
Запись голосовых сообщений, и возможность добавлять их в заметки.Интерфейс не русифицирован.

Для установки в Ubuntu воспользуйтесь Менеджером приложений или выполните в терминале команду:

sudo snap install p3x-onenote

Аналоги OneNote для Ubuntu

Для операционных систем Linux создано немало программ, которые помогают вести записи в режиме цифрового блокнота. Однако полные аналоги OneNote среди них отыскать трудно. Впрочем, можно подобрать программу под конкретные цели, которая будет обладать всеми необходимыми вам функциями.

1. Knowte

Knowte — это небольшое приложение для заметок. Если вы хотите упорядочить свои записи и составить перечень запланированных дел либо покупок, оно вам наверняка понравится.

ПреимуществаНедостатки
Есть сортировка заметок (все, сегодняшние, вчерашние, недельные, с пометками).Интерфейс не русифицирован (доступны французский, английский и нидерландский языки).
Можно импортировать заметки из файла, а также экспортировать в файл и распечатывать.Минимальный набор функций.
Текстовый редактор позволяет создавать списки (в том числе чек-листы), вставлять изображения, ссылки, цитаты и код, выделять текст цветным маркером, делать заголовки H1 и H2.Размер шрифта можно менять только в диапазоне 12-15 px.
Больше 20 цветовых схем.Отсутствие тегов.

Для установки Knowte в Ubuntu используйте команду:

sudo snap install knowte

2. Joplin

По набору функций и дизайну Joplin больше похож на Evernote, чем на OneNote. Это приложение заслуживает внимания, если вы работаете с большим объёмом разнообразной информации.

ПреимуществаНедостатки
Синхронизация с OneDrive, Nextcloud, Dropbox, WebDAV в режиме защиты от сбоев.Не обнаружены.
Шаблоны заметок и задач.
Расширение Joplin Web Clipper для Chromium и Firefox, позволяющее добавлять в заметки веб-страницы и скриншоты веб-страниц.
6 тем на выбор и работа с пользовательскими таблицами стилей.
Сквозное шифрование (E2EE).
Функциональный поиск.
Поддержка меток и прикреплённых файлов.
Удобный редактор.
Импорт и экспорт заметок.

Команда для установки Joplin из Snap Store выглядит так:

sudo snap install joplin-james-carroll

Установка программы с помощью менеджера пакетов npm (требуется наличие Node.js v10.x):

/.joplin-bin npm install -g joplin
sudo ln -s

npm install -g joplin

Установка через npm позволяет работать с Joplin в терминале.

3. Simplenote

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

ПреимуществаНедостатки
Импорт заметок из файлов Evernote, Simplenote и файлов в формате txt.Для активации программы требуется адрес электронной почты.
Экспорт заметок.
Светлая и тёмная темы.Англоязычный интерфейс.
Совместный просмотр и редактирование записей.
Синхронизация.Нет возможности разделять заметки по разным блокнотам.
Создание публичных ссылок на заметки.
Работа с тегами.Отсутствует полноценный редактор текста.
Создание чек-листов.

Для установки Simplenote в Ubuntu используйте команду:

sudo snap install simplenote

4. CherryTree

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

ПреимуществаНедостатки
Импорт (в том числе, импорт отдельных веток) из Knowit, Mempad, Leo, Tomboy, Treepad, Gnote, Zim, Tuxcards, RedNotebook и других программ, а также из папок с текстовыми файлами и файлами html.Не замечены.
Экспорт заметок (в том числе, отдельных веток).
Интерфейс доступен на 19-ти языках, среди которых есть русский и украинский.
Текстовый редактор с широкими возможностями форматирования.
Вставка картинок, ссылок, оглавлений, файлов, якорей, таблиц, кода, дат, горизонтальных линий и символов.
Увеличение/уменьшение иконок на панели инструменов.
Закладки.
Удобная работа с заметками, есть поиск в названиях и в содержимом.

Если вы – пользователь Ubuntu, устанавливайте CherryTree из репозитория Universe с помощью Менеджера приложений либо используйте команду:

sudo apt install cherrytree

Читайте так же:
Найти файл синхронизации в телефоне

Также приложение доступно в Snap Store:

sudo snap install cherrytree

4. QOwnNotes

QownNotes — ещё одна программа для управления заметками, которая может похвастаться большим набором функций и удобством. Рекомендую её людям, регулярно работающим с большими объёмами информации.

ПреимуществаНедостатки
Многоязычный интерфейс.Не найдены.
Возможность располагать панели так, как удобно пользователю.
Шифрование заметок.
10 вариантов цветовых схем.
Вставка изображений и ссылок (в том числе ссылок на заметки).
Хороший текстовый редактор.
Установка сценариев как из репозитория, так и локально.
Удобная организация списков задач.
Браузерное расширение Web Companion для браузеров Chromium и Firefox (позволяет прикреплять к заметкам веб-страницы).
Синхронизация через Nextcloud и OwnCloud.
Импорт и экспорт заметок.

Чтобы установить QownNotes из репозиториев разработчика, выполните в терминале следующие команды:

sudo add-apt-repository ppa:pbek/qownnotes

sudo apt-get update

sudo apt-get install qownnotes

Также возможна установка в Ubuntu из Snap Store:

sudo snap install qownnotes

Выводы

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

Нет похожих записей

alt=»Creative Commons License» width=»» />
Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

Двусторонняя синхронизация локальной папки с Google Drive в Ubuntu Linux

Редкий пост в этом блоге для линуксоидов. Надеюсь, что все описанное ниже скоро станет не актуальным. Дело в том, что для Linux до сих пор нет официального клиента Google Drive. Есть Linux клиенты для Dropbox, для Pcloud, а для Google Drive клиента нет. Есть, правда, google-drive-ocamlfuse, но это решение в виде подключенного сетевого диска, это не то.

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

Для синхронизации с участием облака (того же Google Drive) в Linux есть программа rclone (запускается из терминала). Но дело в том, что rclone позволяет делать только одностороннюю синхронизацию. То есть, rclone позволяет сделать простую вещь: сделать так, чтобы содержимое папки 1 (локальной или на облаке) было таким же, как содержимое папки 2 (на облаке или локальной). Это отлично подходит для организации backup, однако такого функционала недостаточно для организации двусторонней синхронизации, которая нам нужна. Однако, добрые люди написали скрипт на Python (проект rclonesync), который является “надстройкой” над rclone и позволяет сделать полноценную two way синхронизацию в Linux.

Пусть у вас есть аккаунт в Google и вы пользуетесь Google Drive. Для удобства сделайте в корне Google Drive папку которая и будет синхронизироваться. Пусть ее название будет “linuxfolder”.

Заходим на сайт https://rclone.org/ и скачиваем программу rclone. Для большинства современных компьютеров с Ubuntu/LinuxMint можно качать AMD64-64Bit deb-пакет. Устанавливаем программу.

Открываем терминал и начинаем настраивать rclone. Вводим команду:
rclone config

В ответ вы увидите нечто вроде:

No remotes found — make a new one
n) New remote
s) Set configuration password
q) Quit config
n/s/q>

Вводим n и нажимаем Enter, выбирая тем самым “New remote”.

Программа просит ввести имя облачного диска, то есть то, как мы будем называть наш Google Drive:

Вводим, например, gdrive (или что-то на ваш выбор, далее, я буду использовать имя gdrive) и нажимаем Enter.

После этого появится огромный список облачных хранилищ, которые поддерживает rclone. Начинается он так:

Type of storage to configure.
Enter a string value. Press Enter for the default («»).
Choose a number from below, or type in your own value
1 / 1Fichier
«fichier»
2 / Alias for an existing remote
«alias»
3 / Amazon Drive
«amazon cloud drive»
4 / Amazon S3 Compliant Storage Provider (AWS, Alibaba, Ceph, Digital Ocean, Dreamhost, IBM COS, Minio, etc)
«s3»
и т.д.

Нас интересует пункт:
13 / Google Drive
«drive»
Поэтому вводим число 13 и нажимаем Enter. (Может быть в следующих версиях программы номер будет другой, следите за этим внимательно!).

Далее вас попросят ввести client_id и client_secret – ничего не вводите, нажимайте Enter.

Затем появятся следующие опции:

Scope that rclone should use when requesting access from drive.
Enter a string value. Press Enter for the default («»).
Choose a number from below, or type in your own value
1 / Full access all files, excluding Application Data Folder.
«drive»
2 / Read-only access to file metadata and file contents.
«drive.readonly»
/ Access to files created by rclone only.
3 | These are visible in the drive website.
| File authorization is revoked when the user deauthorizes the app.
«drive.file»
/ Allows read and write access to the Application Data folder.
4 | This is not visible in the drive website.
«drive.appfolder»
/ Allows read-only access to file metadata but
5 | does not allow any access to read or download file content.
«drive.metadata.readonly»

Читайте так же:
Шнур для синхронизации iphone

Вводите 1 и нажимайте Enter.

Далее, вас спросят root_folder_id> и service_account_file> – нажимаете Enter оба раза, ничего не вводя.

Затем: Edit advanced config? – выбираете n.

Remote config
Use auto config? – выбираете y.

После этого у вас должен открыться браузер со страницей авторизации Google. Авторизуйтесь, если нужно, и потом вас спросят:

Приложение “rclone” запрашивает разрешение на доступ к вашему аккаунту Google.

После этого в браузере вы должны увидеть:

Success!
All done. Please go back to rclone.

Возвращаемся к терминалу, там будет адрес страницы, которую нужно ввести вручную, если на предыдущем этапе браузер сам не открылся и еще один вопрос:

If your browser doesn’t open automatically go to the following link: http://127.0.0.1:53682/auth?state=yDbMo1beUVS3wUTxNww6AQ
Log in and authorize rclone for access
Waiting for code.
Got code
Configure this as a team drive?
y) Yes
n) No (default)
y/n>

На вопрос отвечаем n.
После этого программа покажет результат, который нужно утвердить. Выглядит это примерно так:

[gdrive]
type = drive
scope = drive
token = <"access_token":"ihwueh73723yfg72h. ">
———————
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d>

Вводим ответ y и нажимаем Enter. После чего программа покажет, что у нее появился в настройках ваш Google Drive:

Name Type
==== ====
gdrive drive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q

Нажимаем q и Enter, выходим из программы rclone.

Представим, что пользователя Linux зовут John и его домашняя директория это /home/John/.

Сделайте в домашней директории папку scripts (/home/John/scripts/)

Сделайте в домашней директории папку .rclonesyncwd (/home/John/.rclonesyncwd/) (название папки с точкой в начале!).

Допустим, локальная папка, которую мы хотим синхронизировать, тоже находится в домашней директории и она называется GOOGLE-DRIVE ( /home/John/GOOGLE-DRIVE/ ).

Скачайте оттуда в папку /home/John/scripts/ файл rclonesync.py.

Зайдите в терминал и попробуйте ввести команду:

Если возникла ошибка, то значит вместо python3.6, нужно попробовать вводить python3.7, или на худой конец python – то есть, интерпретатор Python. Допустим, у вас работает python3.6. По команде выше, если у вас работает Python, будет просто выведено много текста помощи по настройкам скрипта.

Для первого запуска синхронизации нужно в терминале набрать команду:

/scripts/rclonesync.py —first-sync /home/John/GOOGLE-DRIVE/ gdrive:linuxfolder

Если не будет ошибок, то в локальную папку GOOGLE-DRIVE должно скопироваться содержимое папки linuxfolder на Google диске. Это может занять время.

Далее запускать синхронизацию нужно командой:

/scripts/rclonesync.py /home/John/GOOGLE-DRIVE/ gdrive:linuxfolder

(тут уже нет ключа –first-sync).

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

Если вы делаете это впервые, то вас могут спросить про предпочитаемый редактор:

Select an editor. To change later, run ‘select-editor’.
1. /bin/nano

Выбирайте 1 и попадаете в текстовый редактор. И в нем в отдельной последней строке введите:

/scripts/rclonesync.py /home/John/GOOGLE-DRIVE/ gdrive:linuxfolder

После этого введите пару раз Enter, добавляя в конец файла пустые строки. Это важно, за вашей строкой должна быть пустая, иначе работать не будет.

Сохраните файл и выйдите. Если вы работаете в nano (выбрали пункт 1 выше), то сохранить файл: Ctrl+O и затем Enter. А выход: Ctrl + X.

Если вы новичок в Linux и у вас получилось все это настроить, то вы — молодец!

О работе синхронизации:

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

Переименование папок: например, была не пустая папка А, вы ее переименовали в папку Б. При синхронизации у вас может остаться пустая папка А и появится папка Б с содержимым, которое было ранее в папке А.

PS. Я смотрел в сторону проекта Unison, но он очень давно не обновлялся, поэтому я не стал с ним связываться и не знаю, насколько он хорош.

голоса
Рейтинг статьи
Ссылка на основную публикацию
Adblock
detector