InfoCity
InfoCity - виртуальный город компьютерной документации
Реклама на сайте







Размещение сквозной ссылки

 

Часть пятая.
совместная работа


Здесь рассмотрен один из вариантов совместной работы всех этих программ, когда днем станция работает по IP, а ночью - модемами.

*** binkd запускается из /usr/local/etc/binkd.sh :
#!/bin/sh
# этот скрипт переделан из squid.sh ;)
prefix=/usr/local/fidonet
bindir=${prefix}/bin
logdir=${prefix}/log
etcdir=${prefix}/etc
# вечный цикл
while : ; do
   su fido -c "$bindir/binkd -C $etcdir/binkd.cfg >> $logdir/binkd.out 2>&1"
   # если мы дошли до этой строчки, значит binkd уже(или еще ;)не запущен.
   # можно что-нибудь почистить ...
   # rm $prefix/outbound/139c0fff.bsy
   # cd $prefix/outbound && rm -rf *.hld
   sleep 5
done


*** inn запускается из /usr/local/etc/innd.sh :
#!/bin/sh
su news -c /usr/local/news/bin/rc.news
rc.news стандартный, из поставки inn'а.

*** вызовы mgetty прописан в /etc/ttys :
cuaa0 "/usr/local/sbin/mgetty" cons25r on insecure
cuaa1 "/usr/local/sbin/mgetty" cons25r on insecure


В файле /etc/crontab добавлены следующие строчки :
#
# FidoNet ZMH + NMH, перезапуск mgetty
#
0 8 * * * root killall mgetty
0 6 * * * root killall mgetty

*** В /usr/local/fidonet создайте файлик fido.cron (изменив его, не забывайте запускать crontab -u fido fido.cron) :

# FIDO=/usr/local/fidonet # # IP (binkd) # # С 14:00 до 18:00 (пока работает интернет) регулярно создаем .clo'шки чтобы binkd "прозванивался" */15 14-18 *  *  *  touch $FIDO/outbound/139c0000.clo */40 14-18 *  *  *  touch $FIDO/outbound/139c0fff.clo # # MODEM (ifcico) # # Раз в сутки на всякий случай прозваниваемся NC 0    7     *  *  *  $FIDO/bin/ifcico -r1 f0.n5058.z2 # Ночью каждые полчаса прозвон на аплинка */30 18-8  *  *  *  $FIDO/bin/ifpoll f500.n5058.z2 # # Каждые 15 минут - тоссинг/паковка эх. */15 *     *  *  *  $FIDO/bin/RunToss.sh # Каждые 30 минут обработка файлэх, обработка запросов фиксов */30 *     *  *  *  $FIDO/bin/RunFileFix.sh # Ночью обновление FREQ-базы 0    4     *  *  *  $FIDO/bin/freq/mkfbindex > $FIDO/tmp/filelist # # В полночь запуск обработчика лог-файлов 59   23    *  *  *   $FIDO/bin/fido.daily #
В вышеприведенном примере все события (тоссинг, прозвонка, etc.) происходят по cron'у. Но вы можете использовать специализированные программы типа polld, tossd и другие.
Обратите внимание, что все эти программы вызываются из crontab'а пользователя fido, т.е. от его имени, с его правами. Проверьте скрипты, чтобы он был их владельцем.

Скрипт ifpoll (автор - Rasca Gmelch, 2:2410/305.4@fidonet) берется из $IFMAIL_SRC/misc/contrib/ifpoll. Просмотрите его содержимое, где потребуется поправьте пути и прочее. Скрипт этот довольно многофункционален, так что его можно настроить и на автоматическое накладывание нодедиффов, вызов filefix'а, areafix'а, и всякое такое...

Скрипт RunToss.sh :
#!/bin/sh
# Растоссим...
/usr/local/fidonet/bin/ifunpack >/dev/null 2>&1
# Подготовим для отправки...
/usr/local/fidonet/bin/send-ifmail >/dev/null 2>&1
# Запакуем...
/usr/local/fidonet/bin/ifpack >/dev/null 2>&1

Скрипт RunFileFix.sh :
(filefix)
#!/bin/sh
# toss
/usr/local/fidonet/bin/filefix/filefix -t
# scan
/usr/local/fidonet/bin/filefix/filefix -s
# manager
/usr/local/fidonet/bin/filefix/filefix -m
(gtic)
#!/bin/sh
/usr/local/fidonet/bin/filefix/gtic -t -i >/dev/null 2>&1

Скрипт fido.daily : это примитивный, самописный скрипт примерно следующего содержания :
#!/bin/sh
cd /usr/local/fidonet/log/archive
####################### Обрабатываем лог ifcico
# Убиваем ifcico (если он работает)
killall ifcico
# Передвигаем лог ifcico во временный ifTMP.log, логи за предыдущие
# шесть дней сдвигаем на один
mv -f ../ifmail.log ifTMP.log
touch ../ifmail.log
mv -f if06.log if07.log
mv -f if05.log if06.log
mv -f if04.log if05.log
mv -f if03.log if04.log
mv -f if02.log if03.log
mv -f if01.log if02.log
mv -f ifTMP.log if01.log
# Сливаем логи за последние семь дней в "семидневный лог"
cat if07.log if06.log if05.log if04.log if03.log if02.log if01.log > ifTMP.log
# Время должно быть еще 23:59 с секундами...
# Дописываем сегодняшний лог в лог за 2000 год
cat if01.log >> if2000.log
# Запускаем из /usr/local/fidonet/bin/stat скрипт, генерящий
# статистику по outbound'у - позволяет отследить незаборбандлов ;)
../../bin/stat/statout.pl | /usr/local/news/bin/inews -f "Stat Robot <Stat@f99.n5058.z2.fidonet.org>" -t "Queue statistics" -n "f99.notify"
# Запускаем обработчик логов (см. Часть 4, раздел обработка log-файлов)
../../bin/stat/ifcicost.pl
####################### Обрабатываем лог binkd
# А тут мы выходим, т.к. обработка binkd логов еще не дописана :(
exit 0

*** В /usr/local/news создайте файлик news.cron (отредактировав его, не забывайте запускать crontab -u news news.cron) с содержимым :
0 3 * * * /usr/local/news/bin/news.daily expireover lowmark
0 * * * * /usr/local/news/bin/suck news.provider.my @/usr/local/news/etc/suck.conf -bp -hl localhost -c
1,11,21,31,41,51 * * * * /usr/local/news/bin/nntpsend

Если у вас нет чисто usenet'овских линков, то строчку с nntpsend можно выкинуть. Если вы выключаете компьютер на ночь, проставьте в первой строчке подходящее время для запуска. Прочитайте конец файла INSTALL из $SRC_INN - там все это описано поподробнее. Вторая строчка - вызов программы suck. Подробнее она описана в Части 4, раздел suck.

[Назад][Содержание]


Реклама на InfoCity

Яндекс цитирования



Финансы: форекс для тебя








1999-2009 © InfoCity.kiev.ua