Все о Linux. LinuxRSP.Ru
Альт Линукс СПТ 6.0 Сертификат ФСТЭК

Cвежие новости Linux и BSD, анонсы статей и книг прямо в почтовый ящик!
Подписаться письмом


 Сегодняшние новости:

В GIMP наконец-то появилась обработка с точностью 16 и 32 разряда на канал

В одном окне: GIMP 2.8

Релиз OpenBSD 5.1

HTML-редактор: BlueGriffon 1.5

Релиз Xfce 4.10

Команда Chromium представила кластер для автоматизации выявления уязвимостей

В Microsoft Office 15 будет обеспечена поддержка формата ODF 1.2

Анонсирован новый свободный анимационный фильм Tube

Обновление ядра: Linux 3.0.29, 3.2.16, 3.3.3

Представлен OpenSSH 6.0

Релиз графического редактора Pinta 1.2, претендующего на роль аналога Paint.NET

Вышел Firefox 12

Google прекращает поддержку Linux-версии приложения Picasa

Эмулятор приставок: Mednafen 0.9.21-wip

Линус Торвальдс получил премию Millennium Technology Prize 2012

Canonical не заинтересована в участии в разработке ядра Linux

Распределенные вычисления: BOINC 7.0

Google

 Новые статьи :

Передача снапшота ZFS по сети

Правила хорошего тона: SSH

Некоторые рассуждения о защите от ddos на примере защиты от SSL denial of service attack

Быстрый проброс портов на шлюзе во внутреннюю сеть или на другой хост. Быстро NAT'им порты. rinetd.

NAT'им отдельные порты или "а что делать, если мой веб-сервер внезапно переехал на другую машину". Проброс портов в локалке на шлюзе наружу.

Как справляться с запланированной недоступностью веб-сайта

Архитектура Google 2011

Мониторинг Nginx с помощью MRTG

Решение проблем при использовании "1c предприятие" 8.2 в Linux

25 правил .htaccess, которые должен знать каждый web-разработчик

Централизованное резервное копирование данных Windows и *nix серверов средствами Bacula

Краткое руководство по GNOME Shell в Ubuntu 11.10

Advanced Bash-Scripting Guide Искусство программирования на языке сценариев командной оболочки

   Дистрибутивы и атрибутика



DeveloperWorks Россия





Rambler's Top100


 
 

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

      

Связь | О проекте LinuxRSP | Реклама | О Linux
© 1999-2012 LinuxRSP


Реклама: