Все о Linux. LinuxRSP.Ru


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


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

25 лет исполнилось ядру Linux

Релиз KDevelop 5.0

Oracle открывает код JDK9 для ARM

Выпущен Timewarrior 1.0.0

Релиз Android 7.0

Percona Memory Engine для MongoDB на базе WiredTiger

PowerShell открыт и доступен для Linux

Форк TrueCrypt: VeraCrypt 1.18

Релиз Snapcraft 2.14

Релиз Go 1.7

Стабильный выпуск рабочего стола Lumina

Вышла первая версия аналога OpenCV - DCV 0.1

Выпуск минималистичной программы для мониторинга jsonmon 3

В MIT разработали новый язык программирования

Первый релиз Qt5Gtk2

Godot 2.1 - новая версия открытого игрового движка

Свободная цифровая станция звукозаписи: Ardour 5.0

Обновление SkypeWeb Plugin for Pidgin

Вышла версия 3.0 Android File Transfer для Linux (и для OS X)

Программный аналог MIDI-контроллера для создания музыки: Launchpadd v1.3

Mozilla спонсирует поддержку Python 3.5 в PyPy

Ef 0.08 - программа для моделирования динамики заряженных частиц

Обновление текстового редактора TEA до версии 42.0.0

Релиз OpenOrienteering Mapper 0.6.4

Вышли Guix и GuixSD 0.11

Релиз Opera 39

Выпуск LibreOffice 5.2

В OpenSSH обнаружены и устранены некоторые уязвимости

Эмулятор FCEUX 2.2.3

Компания Билайн переходит на российскую СУБД с открытым исходным кодом Tarantool

Google

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

Утилиты для восстановления потерянных данных в Linux

Лучшие файловые менеджеры для Android

20 лучших бесплатных книг о Linux

Как сгенерировать открытый/закрытый SSH-ключ в Linux

Grive - клиент Google Drive для Linux с открытым исходным кодом

Протокол IPv6: варианты подключения

Сервер из образа: DHCP + TFTP + Initrd + OpenVZ

Обзор веб-панелей управления хостингом

Приёмы работы с Vim

Nginx как Reverse Proxy для сайта, использующего SSL

Разработка модулей ядра Linux

Мониторинг нагрузки http-сервера Apache 2

Перевод комментариев к файлу конфигурации Squid

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

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







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-2017 LinuxRSP