Автоматическая синхронизация с удалённым сетевым ресурсом
Ни кому на ум не приходит ничего для сабжа?
Поднята Samba на никсе дома, туда доступ на winshare с работы через VPN да еще и через кучу роутов. Канал на работе достаточно слабый, а дома еще и торренты.. Соответственно, открыть то или иное на редактирование можно, но тупить начинает безбожно. Хотелось бы что-нибудь повесить резидентом на локальный каталог и указать удалённый, чтоб редактировать на локальной машине, а оно при каждой перезаписи того или иного файла это дело сразу чуяло и тихенько, ни кому не мешая, уже само копировало его в удалённую шару. |
мне на ум пока пришел только Dropbox. Благо под линукс он тоже появился.
|
не совсем то.
мне не нужно онлайн ничего. и линукс тож непричем. есть шара. обычная. вида \\xx.xx.xx.xx\share и есть локальная копия ее. нужно локальную копию при каких либо изменениях синхронизировать с шарой. |
Цитата:
|
Цитата:
мне нужен синхронизатор измененного, который будет висеть в памяти постоянно и смотреть в заданный каталог. как только в его дереве что-то изменилось, он это "что-то" перенес в указанную шару. а копировать всё - так это у меня с вышеуказанными тормозами быстрей получится.. в принципе да, оно наверно схоже в самой идее с дропбоксом, с той разницей что мне нужно синхронизировать не с их сервисом, а со своим. |
Цитата:
Если заглянешь на Руборд, там есть здоровенная ветка по nnCron - они тебе за пять минут сварганят на Форте всё, что нужно. Если не устраивает, дак я и не настаиваю ))) |
под никсой это как раз через lftp по крону организовать бы можно было. но опять же, крон не очень здесь мне нравится: правильней просто отлеживать событие изменения содержимого... вот это хочется..
|
Plague, можно нарисовать достаточно тупой cmd-скрипт синхронизации и повесить его в шедулер. Запуск, скажем, раз в 5 минут. Можно и чаще, если файлы небольшие и их не шибко много.
Так чтобы оно сразу при изменении синхронизацию запускало - это уже уровень драйвера ФС, сложно в написании и накладно по ресурсам. Впрочем, в виндах такой сервис в принципе реализован, Distributed File System называется. Но, насколь мне известно, для репликации DFS необходимы серверные ОС и Active Directory... Вариант: "резидентный" скрипт, который постоянно пересчитывает в цикле CRC для файлов каталога, и при изменении запускает копирование в сетевой каталог. Дабы меньше грузить систему (такой скрипт в состоянии полностью загрузить ядро процессора) можно вставить между проверками секундные промежутки. Опять же не realtime, но максимально близко к тому (если опять же файлов не слишком много)... |
помозговал - щас правда на dropbox зарегюсь поставлю клиента и на работе и на тачке дома попробую - пускай через него синхронизируется. Хоть и не очень супер - трафик в этом случае побежит через интернеты, а не через локаль местного провайдера, что тоже скорости не добавит...
хотя речь идет о размере файла максимум 220кб, уж проглотит наверно.. Цитата:
|
Plague, смотри утилиту nnbackup, параметр sync. Её через тот же nncron можно повесить на проверку каждую минуту.
Тут подробнее _http://www.nncron.ru/nnbackup/help/RU/working/modes/sync.htm |
Малость ещё подумал. :biggrin:
Если не заморачиваться с контрольными суммами, то можно всё сделать намного быстрее и элегантнее. Используя тот факт, что все программы (а точнее - сама Win) при изменении файла устанавливают ему атрибут "архивный". :biggrin: FileChronizer.cmd Код:
SET "LOCALFOLDER=d:\Temp\0000" Всё гениальное просто. :biggrin: |
Гы. Часа 3 мы с Plague проблему в аське мусолили...
В результате ночных поисков найдено: robocopy http://technet.microsoft.com/ru-ru/magazine/2006.11.utilityspotlight.aspx Утилита сложная, однако практически готовое решение. И до кучи richcopy http://technet.microsoft.com/en-us/magazine/2009.04.utilityspotlight.aspx И демка с реализацией того же самого в PowerShell. http://www.techdays.ru/videos/1033.html :ржать: |
добавлю немного.
Вообще, я видел сабж в следующем функционале: Насколько я себе представляю, любая функция записи куда бы то ни было, использует функцию write:$path или что-то на это похожее. И был полностью уверен в том, что полным-полно софта использующего именно это дело. Логика проста: Не нужно постоянно сканить заданный исходный каталог, достаточно просто пасти обращение write к нему, а уже отловив его, смотреть что за write, куда write, какой результат и производить дальнейшие действия (синхронизацию с целевым в данном случае). И создавая этот топик я думал что щас с хохотом вывалят цельную кучу подобного софта. Потому и не воспринимал варианты с кроном. Но похоже что подобного софта действительно нет :( (Борланд утверждает, что жрать ресурсов софтина основанная на этой функции будет очень много.. Возможно конечно, но я так не думаю). Dropbox, несмотря на то, что я сперва тоже отмел его, действительно работает очень оперативно (и не удивлюсь если как раз использует вышеописанный вызов). Но, блин на моей линуксовой тачке запускаться не захотел (косяк именно у меня: у Caesar'я работает отлично, а мне разбираться неохота - тот debian перенес столько всяческих экспериментов, что спасибо что хоть вообще запускается :biggrin: ), так что "обломался весь банный день"© :( . Из кроновых систем - да, я мануал по ссылке KalaSh поглядел - должно работать; из аналогичных примочек (в одном флаконе, но хотят денег) нарыл DirSync Directory Synchronizer (есть тут где-то ;) ). Щас наверно действительно заюзаю Борландовский скрипт. У него один недостаток: он зеркалит в целевой (REMOTEFOLDER) не содержимое исходного, а сам исходный. Тоесть в том примере, что написал Borland, в целевом каталоге мы будем иметь не то, что у нас было в "0000", а каталог "Temp\0000" со всем содержимым. Борланд сказал, что можно и это поправить, но будет жрать больше ресурсов, проще поманипулировать с самими путями исходного и целевого, что по крайней мере в моём случае, вполне осуществимо. И последнее, по поводу PowerShell: Я нашел приведенную Борландом ссылку шастая по technet.microsoft.com с комментарием: Цитата:
Весьма похоже, что это как раз в духе моего изначального видения темы, но там видео-талмуд на час просмотра, и в третьем часу ночи я его ниасилил, может потом как нибудь вернусь к этому вопросу. |
Цитата:
На самом деле всё даже не просто, а ещё проще: FileChronizer2.cmd Код:
SET "LOCALFOLDER=d:\Temp\0000" Данный вариант скрипта пожалуй что даже легче изначального... |
Полевые испытания показали: на каталоге с 2496 файлов и 1283 папок (общим размером ~85Mb) на моей рабочей (довольно слабой) машине команда xcopy отрабатывает "вхолостую" (когда собственно копировать нечего) за ~45 сек. Не реалтайм, конечно, но довольно приемлемо...
|
Короче, устаканилось все ещё и установкой тулзы FTPDrive и привязкой Борландовского скрипта последней версии к нему. ибо по самбе большое количество файлов обзирать на удаленой шаре - убийству подобно.
это для "полноты картины". скорость обновления/добавления изменений на удаленке - от пары до 40 секунд (зависит от того в каком месте в момент локального обновления находится выполнение скрипта). Обегать скрипту приходится 3100 файлов в 180 каталогах. |
Почитав данную тему, я несколько призадумался. А чем собссно Вам rsync не нравиться? Скорость копирования выше, чем по ftp. Синхронизация папок производится почти мгновенно. Да нужно по крону или как-то там еще его запускать, но ведь этот метод в РАЗЫ быстрее когда просто КОПИРУЕШЬ гигабайты. Про синхронизацию лучше помолчу.
Цитата:
|
Цитата:
Собственно, у меня была мысль о Цитата:
|
Plague, а SyncToy не смотрел?
|
BorLase, ключевое слово "АВТОМАТИЧЕСКАЯ".
А просто синхронизилок - как грязи. Тот же Тотал Коммандер делает это наигениальнейше. Но руками. А если речь о ручном запуске, так мне, извините, проще тогда уж руками просто перекопировать то что нужно и не морочится с чтением/сравнением.. |
судя по описанию, FolderWatch именно то, что надо
Цитата:
|
кстати, наткнулся вот еще на File and Folder Watcher - по ходу, полностью аналогичный продукт (даже по финансам)
|
Часовой пояс GMT +4, время: 13:30. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.