Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Чт мар 28, 2024 18:54

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 11 ] 
Автор Сообщение
 Заголовок сообщения: Задачка для nnCron
СообщениеДобавлено: Сб апр 14, 2007 12:37 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
В общем, ситуация такая: на компьютере с TiReX-ом стоит nnCron, и надо бы ему скриптик сделать для запуска копирования файлов лога IRC на сайт. Сейчас это просто запуск некоего bat- файла, который копирует на ftp кучку файлов вида forthYYYYMMDD.html в заданный каталог на фтп.

из-за того, что кучка достаточно приличная (YYYYMM - редактирую вручную раз в месяц, а вместо DD - *), копирование идет довольно-таки медленно (и из-за этого обновление логов на сайте сейчас происходит один раз в три часа). Инет-канал хоть и унлимит, но ограничен по ширине, да и другими делами он более занят (ну, там всякие ослы с торрентами пасутся, некоторые Oслы :) даже по сайтам ходют и т.д. и т.п).

Короче, нужен скрипт, который бы подставлял bat-файлу необходимые параметры, зависящие от текущей даты, а именно, запускать задачу такого вида:

log.bat YYYYMMDDnew YYYYMMDDlast ftp-directory

Где YYYY - год, MM - месяц, DD-день (new - текущий, last - вчерашний)

Тогда логи будут копироваться быстрее и можно будет настроить крон на исполнение этого скрипта каждые 10-15 минут, например. (last нужен, чтобы избавиться от глюков в логах, возникающих в моменты, когда бот пишет конкретный файл, а ftp.exe пытается его на сайт перелить - файл блокируется, и на сайте оказывается либо обрывок, либо пустота)

п.с. сам я с nnCron-ом разбираюсь плохо, поэтому и прошу помощи в этом деле, чтобы не накосячить чего-нибудь.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 14, 2007 13:15 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Код:
#( ОбновлениеЛогов
NoActive
Action:
S" log.bat %YYYY%%MM%%DD% " EVAL-SUBST Year@ Mon@ Day@ -1 DAY+ >R >R N>S S+ R> N>S S+ R> N>S S+ S"  ftp-directory" S+ START-APP
)#

Для теста заменить START-APP на MsgBox.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 14, 2007 15:22 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
задача получилась такая:

Код:
#( log2ftp
NoActive
Action:
StartIn: "C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS"
S" C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS\FTP3.BAT %YYYY%%MM%%DD% " EVAL-SUBST Year@ Mon@ Day@ -1
DAY+ >R >R N>S S+ R> N>S S+ R> N>S S+ S"  frt_2007 forth" S+ MsgBox

)#



FTP3.BAT %1 %2 %3 %4

%1 - сегодня
%2 - вчера
%3 - ftp-dir
%4 - log-name

Возникла следующая проблема.
Номер месяца - 4, а надо 04,
То же самое и с днем. Подозреваю, что 1 мая превратится в 200751 вместо 20070501

Короче, надо дальше работать

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 14, 2007 17:04 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Последняя модификация:

определено новое слово ZN>S -- создающее строку с лидирующим нулем, если число меньше 10

Код:
#( Логи_форта->фтп
: ZN>S  N>S DUP 1 = IF S" 0" 2SWAP S+ THEN ;
NoActive
Action:
StartIn: "C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS"
S" C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS\FTP3.BAT %YYYY%%MM%%DD% " EVAL-SUBST Year@ Mon@ Day@ -1
DAY+ >R >R ZN>S S+ R> ZN>S S+ R> ZN>S S+ S"  ftp-directory" S+ START-APP

)#

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 14, 2007 17:24 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
И последняя модификация - время запуска, режим запуска (в свернутом окне, нормальный приоритет)

появился %5 - с именем индекс-файла, который тоже надо периодически кидать на фтп.

Код:
#( Логи_форта->фтп
Time: */15 * * * * *
: ZN>S  N>S DUP 1 = IF S" 0" 2SWAP S+ THEN ;
Action:
StartIn: "C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS"
ShowMinimized   NormalPriority
S" C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS\FTP3.BAT %YYYY%%MM%%DD% " EVAL-SUBST Year@ Mon@ Day@ -1
DAY+ >R >R ZN>S S+ R> ZN>S S+ R> ZN>S S+ S"  frt_2007 forth index_fr" S+ START-APP
)#

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 14, 2007 18:34 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Цитата:
режим запуска в свернутом окне

Ну тогда лучше сразу спрятать - просто заменить ShowMinimized на SWHide да и StartIn: опция не обязательная.

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Сб апр 14, 2007 18:40 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
StartIn: надо, чтобы батник работал правильно, без него он зверски глючит...

SWHide - поставил, но теперь не видно, что задача запускается... :shuffle;

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пн апр 16, 2007 21:15 
Не в сети
Аватара пользователя

Зарегистрирован: Вт мар 20, 2007 23:39
Сообщения: 1261
Благодарил (а): 3 раз.
Поблагодарили: 19 раз.
Цитата:
SWHide - поставил, но теперь не видно, что задача запускается...

Ну так окно прячется, а если надо знать когда запускается, то лучше вывести подсказку при запуске:
Код:
#( Логи_форта->фтп
Time: */15 * * * * *
: ZN>S  N>S DUP 1 = IF S" 0" 2SWAP S+ THEN ;
Action:
S" " S" Логи_форта->фтп" BALLOON
StartIn: "C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS"
SWHide   NormalPriority
S" C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS\FTP3.BAT %YYYY%%MM%%DD% " EVAL-SUBST Year@ Mon@ Day@ -1
DAY+ >R >R ZN>S S+ R> ZN>S S+ R> ZN>S S+ S"  frt_2007 forth index_fr" S+ START-APP
3000 PAUSE
S" " S" " BALLOON   \ Убирает подсказку
)#

_________________
Cтоимость сопровождения программного обеспечения пропорциональна квадрату творческих способностей программиста.
Роберт Д. Блисc


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Вт апр 17, 2007 11:01 
Не в сети

Зарегистрирован: Вт апр 17, 2007 10:20
Сообщения: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
1. ZN>S я бы написал так:
Код:
: ZN>S S>D <# # # #> ;

2. А вообще полезно написать словечко ymd2YYYYMMDD:
Код:
: ymd2YYYYMMDD ( y m d -- a u) <# S>D # # 2DROP S>D # # 2DROP S>D # # # # #> ;

и уже его использовать. Для наглядности лучше.
Код:
#( Логи_форта->фтп
Time: */15 * * * * *
: ymd2YYYYMMDD ( y m d -- a u) <# S>D # # 2DROP S>D # # 2DROP S>D # # # # #> ;
Action:
S" " S" Логи_форта->фтп" BALLOON
StartIn: "C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS"
SWHide   NormalPriority
START-APP: C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS\FTP3.BAT %YYYY%%MM%%DD% %Year@ Mon@ Day@ -1 DAY+ ymd2YYYYMMDD% frt_2007 forth index_fr
3000 PAUSE
S" " S" " BALLOON   \ Убирает подсказку
)#

Для пущей наглядности можно ещё одно слово написать:
Код:
: YYYYMMDD+ ( n -- a u)  >R Year@ Mon@ Day@ R> DAY+ ymd2YYYYMMDD ;

и командная строка будет выглядеть так:
Код:
START-APP: C:\WebServers\HOME\WINGLION.RU\WWW\IRC_LOGS\FTP3.BAT %YYYY%%MM%%DD% %-1 YYYYMMDD+% frt_2007 forth index_fr

_________________
Nicholas Nemtsev


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 19, 2007 01:41 
Не в сети
Administrator
Administrator
Аватара пользователя

Зарегистрирован: Вт май 02, 2006 13:19
Сообщения: 3565
Откуда: St.Petersburg
Благодарил (а): 4 раз.
Поблагодарили: 72 раз.
Возникла еще пара задачек, которые надо бы выполнять с помощью nnCron-а.

1. Мониторинг internet-соединения -
Пробую раз в 5 минут, выполнять команду ping winglion.ru, в результате,
каждые пять минут получаю попытку установить internet-соединение (у меня оно через гпрс сейчас), а надо так, чтобы проверка делалась без таких попыток, по факту того, есть соединение или нет.
+ к этому, надо факт появления/исчезновение интернет-соединения регистрировать в некий лог-файл.

2. При наличии соединения, периодически исполнять некий http-запрос
Запуск для этого explorer.exe - неприемлем, т.к. захламляет экран и мешает нормальной работе на компьютере.

_________________
С уважением, WingLion
Forth-CPU . RuF09WE
Мой Форт
Отсутствие бана это не заслуга юзера, а недоработка модератора (с)


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
 Заголовок сообщения:
СообщениеДобавлено: Пт окт 19, 2007 15:21 
Не в сети
Аватара пользователя

Зарегистрирован: Вс май 07, 2006 11:38
Сообщения: 279
Откуда: Slavyansk, Ukraine
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Мож пригодится(?): у меня nncron рулит удаленный девайс телнетом:
Код:
1. В nncron:
NoLog
Time: */20 * * * * *
Rule: HOST-EXIST: "172.22.0.20" NOT
Action:
StartIn: "TSE.BAT"

2. В tse.bat:
@ECHO OFF
tse.exe 172.22.0.10 ЛОГИН < rebooter.txt

3. В rebooter.txt:
open 172.22.0.10
waitfor "D-Link Access Point login:"
transmit "ЛОГИН^M"
waitfor "Password:"
transmit "^M"
waitfor "D-Link Access Point wlan1 ->"
transmit "reboot^M"
close

Т.е. каждые 20 мин в случае исчезновения пинга на удаленный Access Point(172.22.0.20) nncron запускает утилитку TSE (Telnet Script Executor) с соответствующими параметрами и перегружает центральный Access Point(172.22.0.10)

_________________
Банзай!


Вернуться к началу
 Профиль Отправить личное сообщение  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 11 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB