imho.ws |
![]() |
![]() |
|
Сообщения:
Перейти к новому /
Последнее
|
Опции темы |
![]() |
# 1 |
Full Member
Регистрация: 30.04.2002
Сообщения: 1 419
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Программы от nnSoft (nnCron, nnCron LITE, nnBackup): проблемы и решения.
:idea:
Фигня какая-то! nnCron должен при соединении с Internet запускать программы (в том числе The Bat и DuMeter). Bat запускает окно, появляющееся обычно после инсталяции (выбор типа соединения, создание ящика), а DuMeter вообще не запускается. ![]() Ссылки на программу - здесь! Последний раз редактировалось Borland; 24.11.2004 в 12:06. |
![]() |
![]() |
# 162 | |
Newbie
Регистрация: 15.07.2003
Адрес: Украина
Сообщения: 38
![]() |
Цитата:
Хотелось бы по-человечески, например, как в GoldEd'е С уважением, StasK |
|
![]() |
![]() |
# 165 |
Junior Member
Регистрация: 18.09.2003
Адрес: Ukraine
Пол: Male
Сообщения: 107
![]() |
Hi, All!
Может кто подскажет? Ситуация - иногда зависает задачка (из-за несвоевременности включения сетевых принтеров) Пытаюсь решить эту задачу - или настроить реакцию на "включаемость" принтеров или (что мне больше нравиться) настроить реакцию на внешнее событие, например, отравить сообщение на "администратора сервера" и чтоб при получении сообщения nnCron выполнил пачку мероприятий. Проблема - не получилось настроить распознавание появления сообщений (Заголовок "Сообщение от....) и не получилось настроить на появление новой записи в Event-логе. --------- Просто на новую запись в Event (System) реагирует, а вот на запись с ID 26 настроить реакцию не удалось. (в принципе было бы достаточно реакции на Event с ID 26)
__________________
--------------------------------------------------------------------------- HP Compaq 6720s, Asus a636n WM 6.0, SE w950i |
![]() |
![]() |
# 166 |
Guest
Сообщения: n/a
|
![]()
Привет всем!
Я слегка подправил стандартный пример. Теперь, если отказаться от закачки, то можно сохранить ссылку в файл. И добавил еще одну задачу, которая мониторит процесс закачки wget-а, и, если файл докачан, приступает к закачке следующего. ################################ # URL monitor ################################ SET WgetPath=S:\wget\Config\ SET WGETRC=%WgetPath%wget.cfg #( WGET_task : WGET-PAT S" /(http)|(ftp):\/\/[^ ]+?\.(zip)|(gz)|(rar)|(jpeg)|(jpg)|(exe)|(mp3)/i" ; AsLoggedUser VARIABLE WgetEnable WatchClipboard: * Rule: RE-MATCH: %CLIPBOARD% %WGET-PAT% RE-MATCH: "%USERNAME%" "/ivanitsa/i" AND Action: WgetEnable ON RE-ALL: %CLIPBOARD% %WGET-PAT% WgetEnable @ IF QUERY: "Загрузить %$0%?" IF ShowNormal START-APP: S:\SocksCap32 V26\Sc32.exe %WgetPath%wget.exe %$0% ELSE QUERY: "Поставить в очередь %$0%?" IF FILE-APPEND: "%WgetPath%links.wgt" "%$0%%crlf%" WgetEnable OFF THEN THEN ELSE FILE-APPEND: "%WgetPath%links.wgt" "%$0%%crlf%" THEN ;RE-ALL )# ############################### # LINK monitor ############################### #( Wget_Refresh AsLoggedUser VARIABLE list-file CREATE list-contents 258 ALLOT VARIABLE log-file CREATE log-contents 258 ALLOT VARIABLE WGDownloadFlag : fREL S>D log-file @ FILE-POSITION THROW D+ log-file @ REPOSITION-FILE THROW ; : fREAD log-contents SWAP log-file @ READ-FILE THROW log-contents SWAP ; Time: */20 * * * * * Rule: PROC-EXIST: "wget.exe" NOT FILE-EXIST: "%WgetPath%links.wgt" AND Action: \ Выставляем переменные \ WGDownloadFlag OFF \ Читаем адрес из очереди S" s:\wget\Config\Links.wgt" R/O OPEN-FILE-SHARED \ Страховка на случай отсутствия файла IF DROP EXIT THEN list-file ! list-contents 1+ 255 list-file @ READ-LINE THROW DROP list-contents C! \ Читаем адрес из log файла S" s:\wget\Config\wgcron.out" R/O OPEN-FILE-SHARED \ Страховка на случай отсутствия Log-файла IF DROP list-file @ THEN log-file ! log-contents 1+ 255 log-file @ READ-LINE THROW DROP log-contents C! log-contents COUNT 14 /STRING log-contents PLACE \ Теперь нужно сравнить эти ссылки, \ и если они совпали, то проверить log-contents COUNT list-contents COUNT COMPARE 0= IF \ Совпали! Смотрим в конце лога: \ Это обрыв или успешная закачка log-file @ >EOF \ на EOF -48 fREL 46 fREAD \ на стеке строка с концовкой лога S" /(\;\snothing\sto\sdo\.)|(\ssaved\s\[)/i" RE-MATCH IF \ используем переменные log-... для копирования list-file @ CLOSE-FILE DROP \ сначала нужно log-file @ CLOSE-FILE DROP \ закрыть дескрипторы \ Переименовали файл Links.wgt PAUSE: 1000 FILE-RENAME: "s:\wget\Config\links.wgt" "s:\wget\Config\links.old" \ теперь выбрасаваем первую ссылку S" s:\wget\Config\Links.old" R/O OPEN-FILE-SHARED THROW log-file ! log-contents 1+ 255 log-file @ READ-LINE THROW DROP log-contents C! \ а остальное сливаем в Links.wgt BEGIN log-contents 1+ 255 log-file @ READ-LINE THROW WHILE log-contents C! FILE-APPEND: "%WgetPath%links.wgt" "%log-contents COUNT%%crlf%" REPEAT DROP log-file @ CLOSE-FILE DROP PAUSE: 1000 FILE-DELETE: "s:\wget\Config\links.old" \ FILE-EXIST: "s:\wget\Config\links.wgt" IF WGDownloadFlag ON THEN ELSE \ Это случай докачки при обрыве WGDownloadFlag ON THEN ELSE WGDownloadFlag ON THEN WGDownloadFlag @ IF START-APP: S:\SocksCap32 V26\Sc32.exe %WgetPath%wget.exe -bc -o %WgetPath%wgcron.out %list-contents COUNT% THEN list-file @ CLOSE-FILE DROP log-file @ CLOSE-FILE DROP )# Логика работы должна быть понятна из комментариев. Замечания и более элегантные решения приветствуються.... ![]() |
![]() |
# 167 | |
Junior Member
Регистрация: 04.04.2003
Сообщения: 181
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
GrIvA
Цитата:
Это то есть добавляет такой раздел в HKCU\Software\Microsoft\Internet Explorer\MenuExt\ который указывает на %windir%\Web\wtask.htm и кидает в папку %windir%\Web файл wtask.htm. Содержимое файла wtask.htm : <script language="VBScript"> Set fso = CreateObject("Scripting.FileSystemObject") Set fs = fso.OpenTextFile("D:\SOFT\task.txt", 8, true) fs.WriteLine external.menuArguments.event.srcElement.href fs.Close </script> вот и все ![]() Вместо D:\SOFT\task.txt там будет ессно то, что вы выберете при инсталляции сами. Тут в архиве(4 Кб) два скрипта, один добавляет этот пункт, один все убирает, если не понравится ![]() ![]() Скрипт инстолла чуть переделал, теперь можно самому выбрать, как будет называться файл, в который будут записываться линки для wget , можно называть как угодно, хоть wget.lst, хоть как. Последний раз редактировалось Premium; 09.03.2004 в 12:51. |
|
![]() |
![]() |
# 169 |
Junior Member
Регистрация: 04.04.2003
Сообщения: 181
![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Ну обрывы - это меня не сильно волнует, провайдер тьфу-тьфу-тьфу
![]() А недокачанные файлы - ночью nnCron запускает wget вот таким Макаром: Action: 2 0 DO StartIn: "D:\SOFT" ShowNormal NormalPriority START-APPW: wget.exe -m -awget.log -i task.txt 5000 PAUSE LOOP То есть wget запускается ночью подряд два раза с интервалом в 5 секунд и проверяет на "зеркальность" список файлов в папке D:\SOFT и то, что в файле D:\SOFT\task.txt, все записывает(добавляет) в D:\SOFT\wget.log Параметр -m вообще-то для зеркалирования сайтов теоретически придуман ![]() Первый раз wget проходит по списку и скачивает каждый файл из него, в wget.log пишет: Length: 41,216 [application/zip] 0K -> ........ [100%] 3:29:51 (2.01 KB/s) - `foldnt.zip' saved [41216/41216] По второму разу пробегается очень быстро по всему списку и если все скачалось нормально пишет в wget.log: Length: 41,216 [application/zip] Local file `foldnt.zip' is more recent, not retrieving. Типа такой файл уже есть нефиг его качать ![]() А если вдруг недокачалось что-то, то он его закачает нормально, в лог напишет: Length: 41,216 [application/zip] The sizes do not match (local 22032), retrieving. В wget в принципе есть параметр -с (возобновление закачки файла), наверно актуально для тех, кто очень большие файлы (iso к примеру) wget-ом выкачивает, но я большие файлы FlashGet-ом качаю, а вот с той мелочевкой, что в течении дня наковырял на закачку у меня и так все работает ![]() |
![]() |
![]() |
# 170 |
Guest
Сообщения: n/a
|
Вопрос к ГУРУ :
Как в обработчике события проверить нажата или нет клавиша модификатор. В том плане, что скрипт запускается по изменению буфера обмена, нужно, чтобы при нажатой клавише Shift с данными в буфере производились одни действия, а при нажатой Ctrl другие. Или скажите как обьединить два спецификатора Watch* логическим "И". |
![]() |
# 171 |
Face Of IMHO
Регистрация: 16.03.2002
Адрес: Moscow
Пол: Male
Сообщения: 4 838
![]() |
Вопрос???
Есть задачка ========================= #( CLASSIC-TASK-#-Monitor_RMK AsLoggedUser VARIABLE UpDateMon? WatchDir: "\\Comp\Shared\Dir" WATCH-CHANGE-LAST-WRITE Action: / Выполнить ========================= В папку Dir могут закидываться любые файлы и папки, а мне нужны только с определенным расшрением и в только в корне Запускать несколько WatchFile: не подходит. Если знаете как модифицировать WatchDir: подскажите и будет мне радость. ))) |
![]() |
![]() |
# 173 |
Face Of IMHO
Регистрация: 16.03.2002
Адрес: Moscow
Пол: Male
Сообщения: 4 838
![]() |
GrIvA
Внутри Action: У меня цикл FOR-FILES ... ;FOR-FILES он как раз и проверяет файлы с нужным расширением Но по чему то часто бывает так что при закидывании файлов в поддеректорию срабатывает вся задача. :-(( Добавлено через 4 минуты: вот кстати полнапя версия задачи, может ошибки какие найдете или упростить поможете #( CLASSIC-TASK-#-Monitor_RMK AsLoggedUser VARIABLE UpDateMon? WatchDir: "%RMK_FROM%" WATCH-CHANGE-SIZE Action: UpDateMon? OFF FILESONLY SKIPERRORS FOR-FILES: "%RMK_FROM%\*" RE-MATCH: "%FOUND-FILENAME%" "/(dll)|(exe)|(doc)|(txt)$/i" IF FILE-WTIME: "%FOUND-FULLPATH%" FILE-WTIME: "%RMK_TO%\%FOUND-RELPATH%" D= IF ELSE UpDateMon? ON THEN THEN ;FOR-FILES UpDateMon? @ IF / Выполнить THEN )# Также срабатывание происходит при включении компа, который мониторит задача, хотелось бы это исключить. |
![]() |
![]() |
# 176 |
::VIP::
Регистрация: 14.05.2003
Адрес: 127.0.0.1
Сообщения: 852
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Пожалуйста помогите кто-нить!!!!!
Пытаюсь запустить вот такой скрипт чтобы автоматически делать резарвную копию моих файлов. Вот сам скрипт: #CRONTAB FILE # Classic crontab format: # Minutes Hours Days Months WeekDays Years Command # see 'example.tab' #( BAckupMusic Time: 28 18 * * 1 * Action: StartIn: "f:\Program Files\nnBackup" ShowNormal NormalPriority START-APP: f:\Program Files\nnBackup\nnBackup.exe sync -i f:\MyMusicz -o j:\Music -s -e -v REMINDER: "Внимание!!!Ничего не трогать,идёт резервное копирование!" )# Всё в принципе запускается, но ничего не сохраняется.Ошибок тут нет, т.к. раньше всё работало исправно. Вот кусок лога после запуска скрипта: 20:02:47 624 TASK: Musicz 20:02:47 624 Start: F:\Program Files\nnBackup\nnbackup.exe sync -i f:\MyMusicz - o j:\Music -s -e -v 20:02:47 624 Start result: 0 Собственно вопрос: Как это дело исправить?
__________________
reality.sys corrupt Kernel panic - not syncing: Fatal exception halt life(y,n)? |
![]() |
![]() |
# 180 |
Guest
Сообщения: n/a
|
Хелп !! :)
Помогайте народ!!
![]() Нужен скрипт для сохранения бекапов (rar). Дано Source: P:\ Destination: C:\Work\CrystalView\BackUPS\ пишу скрипт < -------- Кат фром хере----------------> #CRONTAB FILE # Classic crontab format: # Minutes Hours Days Months WeekDays Years Command # see 'example.tab' #( purge-cron-log Time: 0 12 * * 5 * Action: PURGE-OLD: "log\*.log" 7 )# #( Save_Phobos_backups : write-files NodeValue ASCIIZ> S" C:\Work\CrystalView\BackUPS\Log\changed_files.log" FAPPEND crlf S" C:\Work\CrystalView\BackUPS\Log\changed_files.log" FAPPEND ; VARIABLE list-file CREATE list-contents 258 ALLOT AsLoggedUser Time: 0 2 * * * * Action: FILE-CHANGE: "p:\*.rar" IF ['] write-files FCH-CH-LIST DoList S" C:\Work\CrystalView\BackUPS\Log\changed_files.log" R/O OPEN-FILE-SHARED THROW list-file ! BEGIN list-contents 1+ 255 list-file @ READ-LINE THROW WHILE list-contents C! FILE-COPY: %list-contents COUNT% "C:\Work\CrystalView\BackUPS\Log\" REPEAT DROP list-file @ CLOSE-FILE DROP FILE-DELETE: "C:\Work\CrystalView\BackUPS\Log\changed_files.log" THEN )# < -------- и до хере----------------> получаю ошибку на строке 25. Если я правильно посчитал то это FILE-COPY: Что там криво ? Вроде все по хелпу написано. |