Русские Блоги
Синхронизация файлов в реальном времени с помощью инструментов Rot и Inotify.
Адрес исходного файла: 192.168.0.143
Адрес целевого файла: 192.168.0.20
Пожалуйста, отключите брандмауэр: systemctl stop firewalld.service
Просмотр состояния брандмауэра: firewall-cmd –state
Пожалуйста, установите значение SELINUX в файле / etc / sysconfig / selinux на Отключить. Перезапустите Linux после внесения изменений, чтобы изменения вступили в силу. В противном случае это повлияет на синхронизацию файлов.
Эффект следующих шагов:
Содержимое в папке синхронизации на клиенте (сервер приложений, файл-сервер) 192.168.0.143
(/ opt / load /) синхронно копируется на сервер (сервер резервного копирования, целевой сервер) 192.168.0.20.
RealSync — односторонняя синхронизация исходников в реальном времени для веб-разработчиков
Представляю общественности утилиту RealSync (GPL). Ее призвание — облегчить работу тех, кто периодически мучается от лагов сетевой папки Samba при поиске/редактировании файлов веб-проекта. Идея RealSync в том, что вы теперь работаете с файлами сайта на локальной машине в привычной IDE, а результат, как и прежде, смотрите на удаленном разработческом веб-сервере, куда RealSync копирует изменения в реальном времени. В результате вы можете, например, запустить поиск по всем файлам в IDE — они же локальные, а не подключены через сетевую папку по Samba, так что поиск работает очень быстро; при этом ваш Ctrl+S продолжает попадать на сервер моментально, как и при работе через сетевую папку.
RealSync — утилита для Windows, MacOS и Linux, позволяющая в реальном времени содержать на удаленном сервере точную копию файлов (например, скриптов на PHP, Python, Ruby и др.) из папки на вашем локальном компьютере, даже в условиях плохой связи, когда вы работаете из дома. Все изменения, производимые в локальной папке, попадают на сервер практически моментально (задержка около 0.2 с), независимо от того, сколько этих изменений и каким именно образом они были внесены (хоть через IDE, хоть через Блокнот или Far).
Главное отличие RealSync от аналогов — в том, что он крайне устойчив к нестабильности интернет-соединения, реконнектам и тайм-аутам. При этом используется SSH-соединение, доступ через которое конфигурируется автоматически при первом запуске утилиты (т.е. не нужно возиться с ключами — настройка производится в интерактивном режиме).
Фактически, случайно «убить» RealSync почти невозможно. Вы можете держать его постоянно свернутым в трее и забыть про его существование (CPU он почти не ест). Если утилита видит, что соединение разорвалось на длительный срок, автоматически запускается знакомый многим алгоритм RSYNC для быстрого копирования большого количества различий. В режиме же реального времени применяется собственный протокол поверх SSH, чтобы при нажатии Ctrl+S в редакторе вы сразу же видели изменения на сервере. Передача файла сопровождается приятным «треньканьем» (отключаемым при необходимости в конфиге), а временная потеря связи — покраснением иконки (когда связь восстановится, иконка обратно станет серой, а RealSync «догонит» накопившиеся изменения).
И зачем этот велосипед, когда есть Samba или Денвер или XAMPP?
Вообще говоря, существует несколько способов вести разработку веб-скриптов. Первый способ — использовать локальный веб-сервер. У данного метода есть как масса преимуществ (больший контроль, улучшение переносимости и кроссплатформенности и т.д.), так и масса недостатков, как то: потенциальное отличие конфигурации локального сервера от конфигурации дев- и продакшен-зон, необходимость либо следить за синхронностью локальной SQL-базы, либо ждать, пока тормозит доступ к единой дев-базе по интернету и т.д. Мы не будем в данной статье рассматривать этот метод, хотя он, безусловно, имеет право на жизнь (и, как минимум, применяется 1 миллионом зарегистрированных пользователей того же Денвера).
Второй способ — использовать веб-сервер, установленный в офисе компании (или на тестовой машине в датацентре), обслуживаемый штатными админами. На таком веб-сервере может быть несколько директорий, по одной для каждого разработчика. Каждый программист ведет работу в своей директории, чтобы не мешать другим, и смотрит результат на своем поддомене (или на своем номере порта). Вот этот способ мы и рассмотрим.
Использование удаленной папки для веб-разработки
- Для сносной скорости работы вы должны находиться в той же локальной сети, что и сервер.
- Но даже в этом случае вам будет довольно затруднительно запустить поиск по всем файлам большого проекта в IDE — слишком большая задержка.
- В случае разрыва соединения (или же вы не дай бог работаете из дома через интернет) — будьте готовы к странным эффектам и неприятным лагам.
Есть еще, конечно, любители работать в VIM в SSH-консоли прямо на сервере; я их уважаю, но вряд ли когда примкну к их лагерю: все-таки удобства, предоставляемые хорошей графической IDE, для меня перевешивают.
По большему счету RealSync — это решение проблемы скорости работы IDE
- Почти все IDE поддерживают передачу измененного файла (по FTP или SSH) на удаленный сервер при нажатии Ctrl+S. Но только здесь две проблемы. Во-первых, вы не сможете изменять файлы «мимо» IDE (например, сделать git pull из командной строки на локальной машине). Во-вторых, если вы на несколько дней исчезнете из
реальностиинтернета, а потом вернетесь с измененными файлами, IDE уже не сможет определить, какие файлы изменились (особенно если они еще случайно и на сервере поменялись почему-то независимо от вас), и в лучшем случае начнет полное копирование, что займет полчаса. - Запустить в вечном цикле RSYNC. Это более-менее работает, когда проект не очень большой, когда интернет хороший и когда вы сидите НЕ на Windows (в Windows RSYNC весьма медленный при запуске). Во всех остальных случаях будьте готовы к 2-3-секундным задержкам.
- Использовать специальную утилиту синхронизации, такую как RealSync, Unison, WinSCP и т.д.
А если мне нужна двусторонняя синхронизация?
Это очень популярный вопрос, связанный с тем, что RealSync всегда затирает любые изменения, производимые напрямую в папке на сервере (если не сразу, так при очередном реконнекте точно). Только изменения в локальной папке имеют смысл и приоритет.
- Вы хотите работать, например, с Git в консоли на сервере? Но зачем? Ведь можно поставить Git на свою машину и пользоваться всеми преимуществами локальной работы и разными GUI для Git.
- Ваши скрипты пишут в какую-то локальную папку в рамках директории документов? Добавьте эту папку в исключения RealSync (это делается легко, одной строчкой в конфиге или при самом первом запуске). К тому же делать директорию документов доступной для записи скриптами — это антипаттерн.
- Вы работаете на ноутбуке дома и на другом десктопе — на работе и хотите синхронизировать файлы через папку веб-сервера? Но ведь веб-сервер — это не средства синхронизации и контроля версий. Используйте лучше Dropbox или коммитьте в систему контроля версий.
- Вы активно используете симлинки в рабочей копии на сервере? Ну… а не пробовали перестать их использовать, это как минимум упростит поддержку и развертывание в будущем?
Установка RealSync и первый запуск
Все достаточно просто: сначала нужно скачать RealSync и скопировать его куда-нибудь, а затем где-то (в Автозагрузке или на Рабочем столе) разместить ярлык со следующей командной строкой:
При первом запуске вы получите примерно такое окно, в котором нужно будет в интерактивном режиме ввести адрес сервера, ваш SSH-логин и пароль на нем (пароль запрашивается исключительно процессом SSH и не сохраняется на локальной машине, см. ниже), имя папки на удаленном сервере и т.д.
Остальные настройки конфигурации запишутся в файл ПолныйПутьДоВашейПапкиИсходников/.realsync, так что при следующем запуске уже никаких вопросов задано не будет, а просто запустится синхронизация, и программа свернется в трей (для Windows).
Теперь можно править любые исходники и убеждаться, что они моментально попадают на сервер. Если кликнуть на иконку запущенного RealSync в трее, то процесс работы можно наблюдать примерно вот в таком окне:
Итак, RealSync висит в трее, вы его никогда не выключаете, поэтому у вас возникает полная иллюзия, что вы работаете на локальной машине с удаленной папкой. При этом вы имеете все преимущества производительности локального поиска и работы с IDE. Вот это и была цель разработки RealSync.
Буду рад, если утилита сделает еще чью-нибудь повседневную работу легче. Комментарии приветствуются. Проект на GitHub-e: dklab_realsync.
Синхронизировать папки с этими приложениями
FreeFileSync
Это бесплатная программа с открытым исходным кодом, используемая для синхронизация файлов . Он кроссплатформенный и поэтому доступен для Windows, Linux и OS X. С FreeFileSync мы можем создавать резервные копии наших самых важных файлов и управлять ими. Приложение позаботится о том, чтобы положить конец различиям между исходной и целевой папками, чтобы передавать только необходимый объем данных. После того, как мы сравнили различия между файлами, мы можем решить, хотим ли мы, чтобы синхронизация выполнялась полностью в обеих папках.
Мы можем скачать FreeFileSync бесплатно со своего сайта .
GoodSync
Это программное обеспечение было разработано для автоматическая синхронизация файлов между различными устройствами, такими как настольные компьютеры, ноутбуки и внешние жесткие диски. Кроме того, это позволит нам сделать резервную копию всех файлов. С GoodSync мы можем создать сеть, в которой все устройства будут иметь доступ к серии файлов, которые мы выбрали ранее, так что не имеет значения, где находится исходный файл, потому что мы можем получить к нему доступ без проблем. Это не поможет нам оставаться организованными и быть уверенными в том, что наши самые важные файлы синхронизируются и создаются резервные копии.
GoodSync является кроссплатформенным и поэтому может использоваться на компьютерах с Windows, Mac OS и Linux, а также на мобильных устройствах Android и iOS. Мы можем скачать бесплатную пробную версию с официального сайта . Чтобы в полной мере воспользоваться им, вы должны купить лицензию, стоимость которой для индивидуального использования составляет 29,95 евро.
Синхронизация
Это приложение, которое позволит нам синхронизировать файлы по точкам между устройствами в локальной сети между удаленными устройствами, подключенными к Интернету. С помощью Syncthing мы можем синхронизировать файлы между двумя или более компьютерами в режиме реального времени и безопасно, используя TLS , чтобы никто не мог получить доступ к нашим данным. Синхронизация файлов осуществляется через локальную сеть и Интернет, поэтому нам не потребуются IP-адреса или дополнительные настройки для ее использования.
Мы можем настраивать и контролировать Syncthing через его интерфейс, к которому мы можем получить доступ через наш браузер. Приложение с открытым исходным кодом, совместимое с Windows, Mac, Linux, Android, Solaris, Darwin и BSD. Мы можем скачать на их сайте.
Синхромат
Это программа для синхронизации файлов и папок для Windows. С помощью этого приложения мы можем синхронизировать наши самые важные данные с течением времени с другими устройствами, такими как ноутбуки или USB-накопители. Он поддерживает любую файловую систему и предлагает режим однонаправленной синхронизации , позволяя выполнять резервное копирование и восстановление исходных файлов и папок. Этот инструмент также имеет возможность автоматической синхронизации при обнаружении изменений файлов или при подключении съемного устройства.
Мы можем скачать бесплатную 30-дневную пробную версию Synchromat со своего веб-сайта. Если мы хотим использовать программу постоянно, нам придется купить ее лицензию, которая стоит 49,99 долларов. Эта лицензия является пожизненной для одного компьютера и включает пожизненные обновления, исправления и техническую поддержку премиум-класса.
SyncToy
Это приложение, созданное Microsoft что позволит нам быстро и удобно синхронизировать две папки в Windows 10, даже если они находятся на разных компьютерах, совместно используя их реальное время . Этот инструмент имеет несколько вариантов синхронизации, позволяющих копировать, перемещать, перезаписывать или перемещать файлы между ними.
SyncToy — это бесплатная программа, которую мы можем скачать на официальном сайте Microsoft .
Мы столкнулись с бесплатное и портативное программное обеспечение который позволит нам синхронизировать файлы и папки на компьютерах с Windows, чтобы мы могли получить к ним доступ из других мест без необходимости дублировать файлы, делая их резервную копию. Это также позволяет нам добавить исключения для файлов или папок, которые мы не хотим включать в синхронизацию, например скрытых или системных файлов.
Bart — бесплатное приложение, которое поможет нам синхронизировать и делать резервные копии наших файлов и папок. Мы можем скачать его с их Веб-сайт .
PureSync
Это мощный и простой в использовании инструмент, с помощью которого мы можем синхронизировать файлы и папки . Кроме того, в нем есть функции сохранения и копирования фотографий с фотоаппарата. Приложение поддерживает фильтры по расширениям, а также удаление файлов и обнаружение изменений. У него есть помощник, который поможет нам шаг за шагом, чтобы у нас не было проблем с его выполнением. Он также имеет полную интеграцию с проводником Windows и сочетаниями клавиш для каждой из его функций.
PureSync — это бесплатная программа для личного использования, которую можно скачано с официального сайта . У него также есть коммерческая версия по цене 24,95 евро.
GoodSync2Go
Это легкое и портативное приложение, которое позволит нам синхронизировать файлы, а также создавать их резервные копии, подходящее для всех типов пользователей. Мы можем сохранить его на любой USB-накопитель или портативный жесткий диск и запустить с любого компьютера без необходимости установки. Эта программа мы позволяет создавать списки включения или исключения , добавьте глобальные фильтры и настройте параметры прокси. Программа мультиплатформенность и работает на компьютерах с Windows, Mac OS и Linux
GoodSync2Go имеет 30-дневная бесплатная пробная версия с которой мы можем пользоваться всеми его функциями без каких-либо ограничений. По истечении пробного периода мы можем продолжать использовать приложение бесплатно, если мы выполнили 3 или менее заданий и работали менее 100 файлов. В противном случае нам придется заплатить за лицензию GoodSync в размере 29,95 евро.
Постоянная синхронизация
Это приложение, с помощью которого мы можем синхронизировать и сохранять наши файлы, что позволяет нам синхронизировать их как в одном устройстве, так и в разных модулях, на разных носителях или через удаленный сервер, такой как FTP, SFTP и WebDAV. Более того, он позволяет синхронизировать компьютер с Windows и Mac , совместим со всеми файловыми системами и может быть установлен на USB-накопитель.
Allway Sync — бесплатное программное обеспечение для личного использования с некоторыми ограничениями, которые мы можем скачать с официального сайта . Он не содержит шпионского, рекламного или вредоносного ПО и обеспечивает синхронизацию со всеми необходимыми компьютерами. Для коммерческого использования необходимо приобрести лицензию за 25,95 долларов США.
SyncFolders
SyncFolders — это еще одна полноценная программа, которую мы можем использовать совершенно бесплатно для синхронизации двух или более каталогов в качестве резервных копий. Это программное обеспечение совместимо с отдельными файлами, а также с папками и подпапками и поддерживает локальные копии и внешние устройства и, конечно же, сеть.
Несмотря на то, что он довольно незнаком и имеет довольно простой интерфейс, он имеет большое количество опций и настроек, позволяющих настраивать каждый аспект синхронизации данных. Он поддерживает двустороннюю синхронизацию и способен обнаруживать любые возможные конфликты файлов, чтобы мы ни в коем случае не потеряли наши данные.
DSynchronize
Dsynchronize — это бесплатное программное обеспечение, написанное разработчиком из Польши, чей веб-сайт, похоже, восходит к 1990-м годам! Но не судите книгу по обложке, потому что он пишет превосходные программы.
Если вы перейдете по ссылке выше, вам придется немного прокрутить вниз, чтобы перейти к нужной программе. Сначала я подумал, что зашел не на тот сайт, потому что продолжал читать о его первой программе под названием Dspeech. Прокрутите вниз до Dshutdown, и вы увидите Dsynchronize.
Как упоминалось ранее, это довольно уродливый веб-сайт. К счастью, программа чистая и не содержит нежелательного ПО, вредоносных программ, рекламы и т. Д. После того, как вы загрузили ZIP-файл, извлеките все файлы и запустите файл запроса.
Как настроить автоматическую синхронизацию папок?
Изначально все созданные или загруженные папки на Windows 10 не синхронизируются. Но вы можете в любой момент активировать опцию, защитив тем самым каталоги с файлами от непреднамеренного удаления. Причем для осуществления задуманного не обязательно устанавливать на компьютер сторонний софт. Достаточно воспользоваться встроенным «Центром».
«Центр синхронизации»
В Windows 10 уже предусмотрена утилита для синхронизации файлов и каталогов. Но она спрятана в настройках, из-за чего владельцы ПК сразу же исключают вариант со встроенными средствами ОС. Однако в подготовке нет ничего сложного, если следовать требованиям инструкции:
- Откройте «Панель управления», используя поисковую строку Windows или другой способ запуска.
- Перейдите в раздел «Центр синхронизации».
- Щелкните ЛКМ по надписи «Управление автономными файлами».
- В появившемся окошке нажмите на кнопку «Включить автономные файлы».
Вышестоящая инструкция активирует функцию, но не позволяет настроить синхронизацию. Поэтому после выполнения указанных действий необходимо перезагрузить компьютер, а затем в «Центре», а точнее в окошке «Автономные файлы» появятся новые пункты меню:
- Использование диска. Здесь предлагается выбрать объем внутреннего накопителя под автономные файлы.
- Шифрование. Раздел, позволяющий защитить пользовательскую информацию.
- Сеть. Настройка работы с файлами при условии медленного подключения к интернету.
Регулируя эти и другие параметры, вы настроите синхронизацию папок по усмотрению. При необходимости можно ознакомиться со справкой, нажав на соответствующую кнопку.
SyncToys
«Центр синхронизации» – далеко не единственный способ настройки функции. Также предлагается обратиться к сторонним инструментам вроде SyncToys. Это незамысловатая утилита, доступная для бесплатного скачивания в Microsoft Store.
SyncToys не обладает широким набором функций, однако в полной мере позволяет продублировать папки. После запуска приложения пользователю остается выбрать интересующую пару каталогов, нажав на кнопку «Создать». Затем директории автоматически синхронизируются.
DSynchronize
Это приложение является ярким примером того, что потребность в синхронизации появилась давно. Внешний вид DSynchronize напоминает старые программы эпохи Windows 98, однако в данном случае внешность обманчива. За минималистичным интерфейсом скрывается набор функций, которым SyncToys может только завидовать.
Главное меню DSynchronize состоит из множества вкладок. К сожалению, разобраться во всем многообразии опций оказывается сложно из-за отсутствия русскоязычного перевода. При этом для создания пары папок не нужно выполнять долгие манипуляции. Достаточно нажать на кнопку «Browse» для выбора интересующего каталога и подтвердить синхронизацию.
AOMEI Backupper
Пожалуй, эта программа становится оптимальным вариантом для современного пользователя. Интерфейс приложения выполнен в духе последнего времени, благодаря чему даже у новичка не возникает сложностей с освоением функций AOMEI Backupper.
Для синхронизации хранилищ необходимо действовать по инструкции:
- Запустите приложение.
- Перейдите в раздел «File Sync».
- Нажатием на кнопку «Add folder» укажите путь к исходному каталогу.
- Нажмите на кнопку «Start Sync».
Как видите, процесс синхронизации выглядит простым, несмотря на отсутствие русского языка. Кроме того, процесс наглядно отображается в меню приложения, позволяя примерно понять, сколько времени остается до его окончания.
OneDrive
В качестве заключительного средства синхронизации рассмотрим облачное хранилище, которое является разработкой компании Microsoft. Весь необходимый софт уже установлен на компьютере с Windows 10, а потому вам не придется загружать дополнительные приложения:
- Запустите OneDrive через поисковую строку Windows.
- Пройдите авторизацию под своей учетной записью.
- Завершите настройку, следуя инструкциям, появляющимся на экране.
OneDrive сам подскажет, какие действия необходимо выполнять для завершения операции. По окончании все файлы, размещенные на компьютере, будут синхронизированы с облачным хранилищем.
Если требуется синхронизация отдельных папок, то для этого есть специальный раздел «Обновить папки». Так вы сможете продублировать исключительно необходимые каталоги, а не все данные. В дальнейшем для доступа к OneDrive можно использовать одноименную вкладку в «Проводнике».
Всё начинается с таблицы, где отслеживаются оба синхронизируемых репозитория: какие ветви синхронизировать в этих репозиториях, а также любые файлы или папки, которые синхронизировать не нужно. Высокоуровневая схема будет выглядеть следующим образом:
Мы также ведем учет всех так называемых “извлечений” ( pull ), которые мы сделали:
Эта таблица служит промежуточным звеном между началом и окончанием pull ’а. Мы в основном используем его для отслеживания хода извлечения. Так можно оценить успех или неудачу pull , узнать о произошедших ошибках, рассчитать необходимое для операции время и многое другое.
Успешный pull регистрируется в третьей таблице, которая отслеживает пару головных коммитов синхронизированных ветвей (важность этой таблицы станет ясна в следующем разделе):
Примечание: все схемы здесь даны исключительно для того, чтобы создать общее представление. Поля можно как включать, так и исключать, в зависимости от желаемой функциональности.
Автоматическая синхронизация файлов и папок по времени
Автоматическая синхронизация файлов в программе WinSCP настраивается так:
- Добавить новое подключение
- Подключитесь к удалённому каталогу
- Выберите меню “Команды”
- Пункт “Синхронизация” или с помощью горячих клавиш Ctrl+S
- Нажмите ОК
- Создайте текстовый файл с настройками для подключения, вот как он выглядит в нашем случае:
- Соответственно, вышеуказанные значения меняйте на свои:
- user – имя пользователя для подключения к FTP
- password – пароль для пользователя
- ftpserver – адрес сервера, к которому подключаемся
- C:tempBATsynchroKMS – путь к локальной папке
- / – путь к удаленной папке (в моем случае корневая папка)
- Внесите свои значения и сохраните с именем sync-config.txt (или любое другое название на ваше усмотрение)
- Создайте файл synhro.bat и откройте его с помощью блокнота, после чего внесите в него следующую информацию: C:Program Files (x86)WinSCPWinSCP.exe” /console /script=C:tempBATsynchrosync-config.txt, где первая половина – путь к установленной программе, вторая – путь к файлу конфигурации, который мы с вами уже создали
- Запустите файл synhro.bat
Теперь, чтобы настроить синхронизацию файлов и папок по времени, осталось добавить этот файл в запуск по расписанию, например, с запуском каждые 30 минут. Настройка синхронизации файлов по времени: