View previous topic :: View next topic |
Author |
Message |
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
(Separately) Posted: Thu May 03, 2007 17:55 Post subject: Скрипт для автоматизированной синхронизации каталогов |
|
|
Знаю, что задача решается очень просто, и я способен решить её самостоятельно, но нахожусь в сильном цейтноте, и прошу помочь кто чем может.
Задача: есть локальный каталог и сетевой (возможно даже примонтированный как диск). Требуется написать скрипт, который бы выполнял следующие задачи:
1) При запуске синхронизировал содержимое сетевого каталога с локальным. Т.е. все файлы, которые были изменены на в локальном каталоге копировались на сетевой. Копировать нужно именно только изменённые файлы, в целях уменьшения нагрузки на сеть (общий размер под десятки гигов, изменения могут быть в одном-двух файлах).
2. Опционально мог бы делать обратную синхронизацию (сетевой каталог->локальный).
3. Также опционально перед началом работы запрашивать у пользователя подтверждение.
Предполагаю использовать встроенную синхронизацию TC, написав скрипт, который просто нажимает нужные кнопки. TC без скрипта в данном случае использовать не совсем рационально, т.к. он всё-таки требует действий от пользователя, а скрипт сможет отработать через стандартный планировщик Windows.
Или, если есть утилиты для синхронизации, которые выполнили бы эту задачу, попрошу дать наводку.
Заранее спасибо. _________________ База знаний о Total Commander
Блог |
|
Back to top |
|
|
CaptainFlint
Joined: 14 Dec 2004 Posts: 6151 Location: Москва
|
(Separately) Posted: Thu May 03, 2007 19:59 Post subject: |
|
|
Может, Synchronize It! поможет? У него, вроде, есть режим автоматической работы с командной строки. (Точно не знаю, т.к. очень мало с ним работал, Тотала всегда хватало.) _________________ Почему же, ё-моё, ты нигде не пишешь "ё"? |
|
Back to top |
|
|
Kent
Joined: 14 Dec 2004 Posts: 208
|
|
Back to top |
|
|
GeNtlE
Joined: 16 Dec 2004 Posts: 141 Location: Россия, Чита
|
(Separately) Posted: Fri May 04, 2007 19:29 Post subject: |
|
|
nnBackup имеет хорошие возможности по синхронизации/резервному копированию каталогов (http://www.nncron.ru/) в связке с nnCron - незаменимая вещь. Консольная, работает с командной строкой. _________________ Новые версии SM2BT здесь. |
|
Back to top |
|
|
D1P
Joined: 20 Dec 2004 Posts: 2973 Location: Тбилиси
|
|
Back to top |
|
|
Tou
Joined: 02 Oct 2008 Posts: 13
|
(Separately) Posted: Mon Feb 04, 2013 17:28 Post subject: а средствами TC это можно сделать? |
|
|
Господа скриптописатели! У меня вопрос такой же как у автора темы, за исключением того, что нельзя использовать никаких внешних программ. Т.е. надо сделать средствами TC и/или штатными средствами Windows 7. в принципе никаких параметров скрипт обрабатывать не должен, все пути к каталогам можно указать прямо в теле скрипта, так как они не будут меняться. Я полагаю, это скрипт из 3-5 строк, но не могу его написать, так как не знаю объектной модели TC. Максимум, что нашел в документации - имена команд для вызова тех или иных окон. Не нашел как "нажимать на кнопки" в этих окнах с помощью скриптов и как передавать параметры встроенным командам TC (хотя надеюсь, что параметры можно передавать так же как и внешним программам - с помощью всяких %n, %L и т.д.). Я думаю, быстро все пойму, увидев описанный скрипт и дальше смогу править его самостоятельно. Буду очень признателен за скрипт (а не советы ). |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Mon Feb 04, 2013 19:21 Post subject: |
|
|
Tou wrote: | нельзя использовать никаких внешних программ | Консольные программы не требуют установки, если в этом проблема.
Tou wrote: | никаких параметров скрипт обрабатывать не должен, все пути к каталогам можно указать прямо в теле скрипта | Тогда при чём тут Total Commander?
Tou wrote: | Я полагаю, это скрипт из 3-5 строк | Нельзя заранее узнать, когда отработает инструмент синхронизации в ТС, поэтому нужен собственный скриптовый обработчик каталогов. Соответственно, ни о каких 3-5 строках речи не пойдёт.
Tou wrote: | не знаю объектной модели TC | Я тоже не знаю и обхожусь без неё. Кое-что можно тут почерпнуть.
Tou wrote: | Не нашел как "нажимать на кнопки" в этих окнах с помощью скриптов | Можно переходом Tab и нажатием Space/Enter, можно ставить фокус по классу в AHK (но это опять же отдельная программа).
Tou wrote: | как передавать параметры встроенным командам TC | Команд, воспринимающих параметры, не так много. _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Tou
Joined: 02 Oct 2008 Posts: 13
|
(Separately) Posted: Tue Feb 05, 2013 01:40 Post subject: |
|
|
Flasher wrote: | Консольные программы не требуют установки, если в этом проблема. | Проблема не в этом. Это будет часть другого скрипта. Во-первых, мне нужен пример решения этой конкретной задачи, чтобы разобраться. Во-вторых, синхронизилка TC уже зарекомендовала себя как надежная, а тратить время на исследование безглючности других программ мне не хочется. Ибо речь идет о моих данных.
Flasher wrote: | Тогда при чём тут Total Commander? | при том что надо использовать его функцию Synchronize dirs
Flasher wrote: | Нельзя заранее узнать, когда отработает инструмент синхронизации в ТС, поэтому нужен собственный скриптовый обработчик каталогов | . Не нужен. Запускаем скриптом синхронизацию и на этом работа желаемого мной скрипта закончится. Через 15 мин (с большим запасом) я вытаскиваю флэшку.
Flasher wrote: | Кое-что можно тут почерпнуть. | Спасибо, попробую. Но мой вопрос подразумевал готовый пример скрипта
Flasher wrote: | Не нашел как "нажимать на кнопки" в этих окнах с помощью скриптовМожно переходом Tab и нажатием Space/Enter, можно ставить фокус по классу в AHK (но это опять же отдельная программа). | Я представляю общие принципы программирования. Но я никогда не взаимодействовал из скриптов с конкретной программой - Total Commander. Что у него там - API, зарезервированные имена классов, формальный протокол передачи данных, синтаксис вызовов? Нужен конкретный пример. На любом языке программирования.
Flasher wrote: | Команд, воспринимающих параметры, не так много. | Увы. Как я вижу, синхронизация к ним не относится. Ну да фиг с параметрами, интереснее как "поставить стрелочки" (направление синхронизации) для тех файлов, у которых не совпадает размер и как "нажать на кнопку" (отправить в окно синхронизации нужное количество табов и прочих хоткеев). Если это вообще возможно... |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Feb 05, 2013 10:04 Post subject: |
|
|
Tou wrote: | тратить время на исследование безглючности других программ мне не хочется. Ибо речь идет о моих данных. | От проблем никто не застрахован, поэтому в памятке и написано о предварительных тестах.
Tou wrote: | Не нужен. Запускаем скриптом синхронизацию и на этом работа желаемого мной скрипта закончится...
... интереснее как "поставить стрелочки" (направление синхронизации) для тех файлов, у которых не совпадает размер | Вот тут и не получится. Узнать, когда закончится сравнение скрипт опять же не сможет. Хэндлов построчно инструмент синхронизации не предоставляет. Отловить маркеры также не получится.
Копать в этом направлении можно только, непосредственно контактируя с Гислером (если он вообще готов необходимую информацию предоставить). _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Tou
Joined: 02 Oct 2008 Posts: 13
|
(Separately) Posted: Tue Feb 05, 2013 10:32 Post subject: |
|
|
Flasher wrote: | Вот тут и не получится. Узнать, когда закончится сравнение скрипт опять же не сможет. Хэндлов построчно инструмент синхронизации не предоставляет. Отловить маркеры также не получится.
Копать в этом направлении можно только, непосредственно контактируя с Гислером (если он вообще готов необходимую информацию предоставить). | А проблема именно в том, когда закончится сравнение? так как файлов не больше сотни, можно просто подождать 60 секунд. вот еще интересно - если из скрипта вызывается какая-то функция, имеющая в интерфейсе TC окно, (например, синхронизация) то по идее юзер должен видеть само окно и все его атрибуты - работающие кнопки, прогресс-бары и т.д. Или я не прав? |
|
Back to top |
|
|
Flasher
Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Tue Feb 05, 2013 12:04 Post subject: |
|
|
Tou wrote: | Как я вижу, синхронизация к ним не относится. | syncopen имя_шаблона
%COMMANDER_EXE% /O /S=S:имя_шаблона
Tou wrote: | А проблема именно в том, когда закончится сравнение? | Нет. Я же написал про маркеры. Нельзя программно пройтись по списку и сменить состояние.
Tou wrote: | если из скрипта вызывается какая-то функция, имеющая в интерфейсе TC окно, (например, синхронизация) то по идее юзер должен видеть само окно и все его атрибуты - работающие кнопки, прогресс-бары и т.д. | Естественно, вызывается стандартная команда cm_FileSync, вызывающая окно синхронизации ТС. Только что с того? _________________ Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой. |
|
Back to top |
|
|
Tou
Joined: 02 Oct 2008 Posts: 13
|
(Separately) Posted: Thu Feb 07, 2013 02:37 Post subject: |
|
|
Flasher wrote: | syncopen имя_шаблона
%COMMANDER_EXE% /O /S=S:имя_шаблона |
что такое шаблон синхронизации? где прочитать? может, если шаблон можно сделать, то и скрипт не понадобится? |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
Tou
Joined: 02 Oct 2008 Posts: 13
|
(Separately) Posted: Thu Feb 07, 2013 23:49 Post subject: |
|
|
ясно. даже не замечал эту кнопочку никогда! похоже, что опция вроде select left to write for newer files only при создании шаблона не предусмотрена |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10263 Location: Россия, Саратов
|
(Separately) Posted: Fri Feb 08, 2013 00:19 Post subject: |
|
|
Tou
Во-первых, не надо цитировать то, что объектом цитирования вообще не должно являться. Во-вторых, прошу обратить внимание, на каком языке предполагается общение на форуме (это касается и названий существующих или гипотетических опций). См. правила форума. Оверквотинг удалён. И лучше излагать свои мысли без злоупотребления английской терминологией — обсуждение будет продуктивнее. В частности, выяснение, что там где предусмотрено. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|