Отслеживание изменений размера файла

Обсуждение программ nnCron и nnCron LITE

Отслеживание изменений размера файла

Postby Neud » Fri, 25 May 2012, 15:52

Чтобы получать сообщения о том, что размер некоторого файла изменился используется (если я правильно понял) что-то такое:

Code: Select all
#( test_watchfile
WatchDir: "c:\xxx"
WATCH-CHANGE-SIZE
Action:
    MSG: "my file size changed"
)#


Вопрос: подскажите, как написать скрипт, который будет раз в сутки проверять размер файла, и сообщать, если его размер НЕ изменился?

(Пояснение: у меня есть файл, который в фоне автоматически порциями сосёт некую инфу из интернета с помощью nncron-скрипта, и изредка бывают в этом процессе сбои. Хочу настроить автоматическое оповещение о том, что этот "автовсос" не пашет.)
Neud
 
Posts: 43
Joined: Tue, 18 Oct 2005, 03:59

Re: Отслеживание изменений размера файла

Postby Morituruz » Fri, 25 May 2012, 17:04

Neud wrote:у меня есть файл, который в фоне автоматически порциями сосёт некую инфу из интернета с помощью nncron-скрипта, и изредка бывают в этом процессе сбои

может лучше над ошибками в этом скрипте поработать? Как минимум прикрутить вывод сообщений о случившихся ошибках.
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Отслеживание изменений размера файла

Postby Neud » Fri, 25 May 2012, 19:39

Ошибок в скрипте нет, причины могут чисто внешние. Например, не проходит авторизация на сервере, сервер в дауне, глюкнула винда (скрипт работает в виртуальной системе) и т. д.
Neud
 
Posts: 43
Joined: Tue, 18 Oct 2005, 03:59

Re: Отслеживание изменений размера файла

Postby Morituruz » Fri, 25 May 2012, 20:16

Я предлагаю таки модифицировать вашу задачу примерно так:
Code: Select all
#( my_secret_script
Action:
\ кладём на стек размер файла:
S" c:\myfile.log" FSIZE

\ оригинальный текст скрипта
\ ...

\ надеемся, что со стека ничего не спёрли, снова подсчитываем размер файла
S" c:\myfile.log" FSIZE D=
IF
  \ если он остался таким же, выводим сообщение:
  MSG: "Нафаня, сундук украли!"
THEN
)#
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Отслеживание изменений размера файла

Postby Neud » Sat, 26 May 2012, 14:16

Cпасибо! Но дело в том, что мой скрипт работает в виртуальной машине, а увидеть тревогу я должен в основной винде. Из виртуалки приходит только сам файл в общую для обеих систем папку. Тут у меня уже второй nncron работает, свои задачи выполняет. Вот в него то мне следящий скрипт и нужен...
Neud
 
Posts: 43
Joined: Tue, 18 Oct 2005, 03:59

Re: Отслеживание изменений размера файла

Postby Morituruz » Sat, 26 May 2012, 18:01

Code: Select all
#( my_secret_script
Action:
\ кладём на стек размер файла:
S" \\home_computer\share\myfile.log" FSIZE

\ оригинальный текст скрипта
\ ...

\ надеемся, что со стека ничего не спёрли, снова подсчитываем размер файла
S" \\home_computer\share\myfile.log" FSIZE D=
IF
  \ если он остался таким же, создаём файл-флаг
  FILE-CREATE: "\\home_computer\share\fail"
THEN
)#


В кроне основной винды:
Code: Select all
#( waiting_for_fail
SingleInstance
\ отслеживаем появления фейл-флага
WatchFile: "c:\share\fail"
Action:
FILE-DELETE: "c:\share\fail"
MSG: "Нафаня, сундук украли!"
)#
User avatar
Morituruz
 
Posts: 727
Joined: Sun, 14 Oct 2007, 01:51

Re: Отслеживание изменений размера файла

Postby Neud » Sat, 26 May 2012, 23:09

Ага! Спасибо. Поскольку может глюкнуть виртуалка или вылететь nncron в ней, попробую в основной винде прописать так:

Code: Select all
#( watching_file_size
Time: 0 0 * * * *
Action:
\ каждую полночь кладём на стек размер файла:
S" C:\share\file.txt" FSIZE
\ прошло 23 часа...
PAUSE: "23:00"
\ надеемся, что со стека ничего не спёрли, снова подсчитываем размер файла
S" C:\share\file.txt" FSIZE D=
IF
  \ если он остался таким же
   MSG: "Нафаня, сундук украли!"
   THEN
)#
Neud
 
Posts: 43
Joined: Tue, 18 Oct 2005, 03:59


Return to nnCron forum (Russian)

Who is online

Users browsing this forum: No registered users and 6 guests

cron