imho.ws |
|
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
19.01.2011, 15:37 | # 1 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
Автоматическая синхронизация с удалённым сетевым ресурсом
Ни кому на ум не приходит ничего для сабжа?
Поднята Samba на никсе дома, туда доступ на winshare с работы через VPN да еще и через кучу роутов. Канал на работе достаточно слабый, а дома еще и торренты.. Соответственно, открыть то или иное на редактирование можно, но тупить начинает безбожно. Хотелось бы что-нибудь повесить резидентом на локальный каталог и указать удалённый, чтоб редактировать на локальной машине, а оно при каждой перезаписи того или иного файла это дело сразу чуяло и тихенько, ни кому не мешая, уже само копировало его в удалённую шару.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
19.01.2011, 16:37 | # 3 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
не совсем то.
мне не нужно онлайн ничего. и линукс тож непричем. есть шара. обычная. вида \\xx.xx.xx.xx\share и есть локальная копия ее. нужно локальную копию при каких либо изменениях синхронизировать с шарой.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
19.01.2011, 16:57 | # 5 | |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
Цитата:
мне нужен синхронизатор измененного, который будет висеть в памяти постоянно и смотреть в заданный каталог. как только в его дереве что-то изменилось, он это "что-то" перенес в указанную шару. а копировать всё - так это у меня с вышеуказанными тормозами быстрей получится.. в принципе да, оно наверно схоже в самой идее с дропбоксом, с той разницей что мне нужно синхронизировать не с их сервисом, а со своим.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
|
19.01.2011, 17:09 | # 7 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
под никсой это как раз через lftp по крону организовать бы можно было. но опять же, крон не очень здесь мне нравится: правильней просто отлеживать событие изменения содержимого... вот это хочется..
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
19.01.2011, 17:15 | # 8 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418
|
Plague, можно нарисовать достаточно тупой cmd-скрипт синхронизации и повесить его в шедулер. Запуск, скажем, раз в 5 минут. Можно и чаще, если файлы небольшие и их не шибко много.
Так чтобы оно сразу при изменении синхронизацию запускало - это уже уровень драйвера ФС, сложно в написании и накладно по ресурсам. Впрочем, в виндах такой сервис в принципе реализован, Distributed File System называется. Но, насколь мне известно, для репликации DFS необходимы серверные ОС и Active Directory... Вариант: "резидентный" скрипт, который постоянно пересчитывает в цикле CRC для файлов каталога, и при изменении запускает копирование в сетевой каталог. Дабы меньше грузить систему (такой скрипт в состоянии полностью загрузить ядро процессора) можно вставить между проверками секундные промежутки. Опять же не realtime, но максимально близко к тому (если опять же файлов не слишком много)...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
19.01.2011, 17:43 | # 9 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
помозговал - щас правда на dropbox зарегюсь поставлю клиента и на работе и на тачке дома попробую - пускай через него синхронизируется. Хоть и не очень супер - трафик в этом случае побежит через интернеты, а не через локаль местного провайдера, что тоже скорости не добавит...
хотя речь идет о размере файла максимум 220кб, уж проглотит наверно.. много. в районе 2,5 тыщ...
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
19.01.2011, 17:49 | # 10 |
Moderator
Регистрация: 30.10.2003
Адрес: 2men'57°10'N65°33'E
Сообщения: 2 165
|
Plague, смотри утилиту nnbackup, параметр sync. Её через тот же nncron можно повесить на проверку каждую минуту.
Тут подробнее _http://www.nncron.ru/nnbackup/help/RU/working/modes/sync.htm
__________________
Последний раз редактировалось KalaSh; 19.01.2011 в 17:59. Причина: Добавил ссылку на help |
19.01.2011, 18:36 | # 11 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418
|
Малость ещё подумал.
Если не заморачиваться с контрольными суммами, то можно всё сделать намного быстрее и элегантнее. Используя тот факт, что все программы (а точнее - сама Win) при изменении файла устанавливают ему атрибут "архивный". FileChronizer.cmd Код:
SET "LOCALFOLDER=d:\Temp\0000" SET "REMOTEFOLDER=\\Server\Share" :INCEPTION for /f "tokens=* delims=" %%F in ('dir "%LOCALFOLDER%" /b /s /A:A') do call :FCOPY "%%F" 1>nul 2>&1 ping -n 6 localhost goto INCEPTION :FCOPY xcopy /m /y %1 "%REMOTEFOLDER%%~p1" goto :EOF Всё гениальное просто.
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий Последний раз редактировалось Borland; 20.01.2011 в 01:36. Причина: ашипке паправел :biggrin: |
20.01.2011, 02:45 | # 12 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418
|
Гы. Часа 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
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
20.01.2011, 12:33 | # 13 | |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
добавлю немного.
Вообще, я видел сабж в следующем функционале: Насколько я себе представляю, любая функция записи куда бы то ни было, использует функцию write:$path или что-то на это похожее. И был полностью уверен в том, что полным-полно софта использующего именно это дело. Логика проста: Не нужно постоянно сканить заданный исходный каталог, достаточно просто пасти обращение write к нему, а уже отловив его, смотреть что за write, куда write, какой результат и производить дальнейшие действия (синхронизацию с целевым в данном случае). И создавая этот топик я думал что щас с хохотом вывалят цельную кучу подобного софта. Потому и не воспринимал варианты с кроном. Но похоже что подобного софта действительно нет (Борланд утверждает, что жрать ресурсов софтина основанная на этой функции будет очень много.. Возможно конечно, но я так не думаю). Dropbox, несмотря на то, что я сперва тоже отмел его, действительно работает очень оперативно (и не удивлюсь если как раз использует вышеописанный вызов). Но, блин на моей линуксовой тачке запускаться не захотел (косяк именно у меня: у Caesar'я работает отлично, а мне разбираться неохота - тот debian перенес столько всяческих экспериментов, что спасибо что хоть вообще запускается ), так что "обломался весь банный день"© . Из кроновых систем - да, я мануал по ссылке KalaSh поглядел - должно работать; из аналогичных примочек (в одном флаконе, но хотят денег) нарыл DirSync Directory Synchronizer (есть тут где-то ). Щас наверно действительно заюзаю Борландовский скрипт. У него один недостаток: он зеркалит в целевой (REMOTEFOLDER) не содержимое исходного, а сам исходный. Тоесть в том примере, что написал Borland, в целевом каталоге мы будем иметь не то, что у нас было в "0000", а каталог "Temp\0000" со всем содержимым. Борланд сказал, что можно и это поправить, но будет жрать больше ресурсов, проще поманипулировать с самими путями исходного и целевого, что по крайней мере в моём случае, вполне осуществимо. И последнее, по поводу PowerShell: Я нашел приведенную Борландом ссылку шастая по technet.microsoft.com с комментарием: Цитата:
Весьма похоже, что это как раз в духе моего изначального видения темы, но там видео-талмуд на час просмотра, и в третьем часу ночи я его ниасилил, может потом как нибудь вернусь к этому вопросу.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
|
20.01.2011, 13:54 | # 14 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418
|
Был неправ!
На самом деле всё даже не просто, а ещё проще: FileChronizer2.cmd Код:
SET "LOCALFOLDER=d:\Temp\0000" SET "REMOTEFOLDER=\\Server\Share" pushd "%LOCALFOLDER%" ||exit :INCEPTION xcopy * "%REMOTEFOLDER%" /M /E /H /R /Y /Q /Z 1>nul 2>&1 ping -n6 localhost goto INCEPTION Данный вариант скрипта пожалуй что даже легче изначального...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
20.01.2011, 16:11 | # 15 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418
|
Полевые испытания показали: на каталоге с 2496 файлов и 1283 папок (общим размером ~85Mb) на моей рабочей (довольно слабой) машине команда xcopy отрабатывает "вхолостую" (когда собственно копировать нечего) за ~45 сек. Не реалтайм, конечно, но довольно приемлемо...
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
21.01.2011, 21:59 | # 16 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
Короче, устаканилось все ещё и установкой тулзы FTPDrive и привязкой Борландовского скрипта последней версии к нему. ибо по самбе большое количество файлов обзирать на удаленой шаре - убийству подобно.
это для "полноты картины". скорость обновления/добавления изменений на удаленке - от пары до 40 секунд (зависит от того в каком месте в момент локального обновления находится выполнение скрипта). Обегать скрипту приходится 3100 файлов в 180 каталогах.
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
23.01.2011, 08:30 | # 17 |
Newbie
Регистрация: 03.09.2006
Адрес: Киев
Пол: Male
Сообщения: 40
|
Почитав данную тему, я несколько призадумался. А чем собссно Вам rsync не нравиться? Скорость копирования выше, чем по ftp. Синхронизация папок производится почти мгновенно. Да нужно по крону или как-то там еще его запускать, но ведь этот метод в РАЗЫ быстрее когда просто КОПИРУЕШЬ гигабайты. Про синхронизацию лучше помолчу.
Приблизительно похожее количество у меня по ночам rsync синхронит. Последний раз редактировалось SergikS; 23.01.2011 в 08:35. |
23.01.2011, 10:39 | # 18 |
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отс
Пол: Male
Сообщения: 14 418
|
Тем хотя бы, что вычисляет контрольные суммы. Это сразу увеличивает время синхронизации на порядок, а то и на два...
Собственно, у меня была мысль о Ничего сложного. По идее, контрольная сумма CRC менее надёжна, чем используемая rsync MD4, но зато и считается намного шустрее... Одно большое НО: время выполнения синхронизации. В "сейчасном" варианте это порядка 40 секунд на цикл. С простейшими контрольными суммами будет порядка 10 минут (и более).
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
06.02.2011, 22:41 | # 20 |
Administrator
Регистрация: 06.05.2003
Адрес: Московская Подводная Лодка
Пол: Male
Сообщения: 12 042
|
BorLase, ключевое слово "АВТОМАТИЧЕСКАЯ".
А просто синхронизилок - как грязи. Тот же Тотал Коммандер делает это наигениальнейше. Но руками. А если речь о ручном запуске, так мне, извините, проще тогда уж руками просто перекопировать то что нужно и не морочится с чтением/сравнением..
__________________
все "спасибы" - в приват и в репутацию! не засоряйте форум!!!! ~~~~~~~~~~~~~~~~~~~~~~ The time has come it is quite clear, our antichrist is M.M.
|
Теги (метки) |
bat, cmd, ftp, синхронизация |
|
|