Здесь рассмотрен один из вариантов совместной работы всех этих программ, когда днем станция работает по 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.
|
|