Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

Открыть новую тему     Написать ответ в эту тему

olegupb



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
#CRONTAB FILE  
# Classic crontab format:
# Minutes Hours Days Months WeekDays Years Command
 
#( ERROR_PASS_#_87  
NoActive  
: cron_dir ( -- a u ) tm.exe ONLYDIR ;  
: StrNextAdr ( a u -- a+1 u-1 ) 1- SWAP 1+ SWAP ;  
: StrPrevAdr ( a u -- a-1 u+1 ) 1+ SWAP 1- SWAP ;  
: 2LastInStr { a1 u1 a2 u2 \ aprev uprev aprev2 uprev2 -- aprev uprev a3 u3 flag }  
\ a1u1 - исходный текст, a2u2 - искомая строка  
\ flag = 0 если искомая строка не найдена,
\ если flag=1, a3u3 - содержит текст от последнего вхождения искомой строки и до конца, aprev_uprev - содержит текст от предпоследнего вхождения
\ искомой строки и до конца, если вхождение только одно, то содержит пустую строку;
\ если flag=0, a3u3 - содержит исходный текст, aprev_uprev - пустую строку
u1 u2 < IF ." Исходный текст меньше строки поиска!" THEN
S" " TO uprev TO aprev
a1 u1
BEGIN
a2 u2 SEARCH  
WHILE  
uprev2 TO uprev aprev2 TO aprev  
2DUP TO uprev2 TO aprev2  
StrNextAdr  
REPEAT  
aprev uprev 2SWAP DUP u1 =  
IF FALSE ELSE StrPrevAdr TRUE THEN  
;  
 
: GetLastLine ( a u -- a1 u1 flag )  
2DUP 2>R crlf 2LastInStr  
IF  
2DUP NIP 2 =  
IF  
2OVER NIP 0=  
IF  
2DROP 2R>  
ELSE  
2R> 2DROP  
2SWAP  
StrNextAdr StrNextAdr  
THEN  
2- 2SWAP  
ELSE  
2R> 2DROP  
StrNextAdr StrNextAdr 2SWAP  
THEN  
TRUE  
ELSE  
2R> 2DROP 2SWAP FALSE  
THEN  
NIP NIP  
;  
 
: WaitAccessFile { a u ms -- }  
a u FILE-ATIME  
BEGIN  
ms PAUSE 2DUP  
a u FILE-ATIME D<  
IF 2DROP TRUE ELSE FALSE THEN  
UNTIL  
;  
Time: START-TIME  
Action:  
BEGIN  
cron.log 2DUP 10000 WaitAccessFile \ в цикле, с периодичностью 10000 мс, ожидаем когда лог nnCron'а будет изменен  
2DUP 3 - S" bak" S+ 2DUP 2>R FCOPY 2R> \ делаем копию файла  
2DUP FILE 2SWAP FDELETE \ прочитываем ее в память, а копию удаляем  
GetLastLine \ получаем последнюю строчку из файла  
IF  
S" /.*ERROR PASS # 87/" RE-MATCH \ проверяем - содержит ли она сообщение об ошибке  
IF  
S" Перезагружаемся из-за ошибки: ERROR PASS # 87" crlf S+ CRON-LOG \ выводим в лог причину перезагрузки и перезагружаем nnCron  
StartIn: "%cron_dir%"  
START-APP: %COMSPEC% /c net stop nncron && \  
start/wait nncron.exe 5000 PAUSE BYE && \
net start nncron
THEN  
THEN  
AGAIN  
)#

Всего записей: 734 | Зарегистр. 09-02-2005 | Отправлено: 10:21 14-07-2008
Открыть новую тему     Написать ответ в эту тему

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » nnCron


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru