HOWTO : fidonet software for unix
[
index ]
Часть пятая.
совместная работа
Здесь рассмотрен один из
вариантов совместной работы
всех этих программ, когда днем
станция работает по 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 (см. mgetty.html#ZMH)
#
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.
This is a part of "HOWTO : fidonet
software for unix", http://howto.id.ru
Original of this document is located at http://howto.id.ru/together.html
Copyright (c) Vitaly Kuharev, 2:5058/49@fidonet, 1999-2000
Last updated : 14 Apr 2000