Linux HOWTO


Как автоматизировать процедуру соединения?


Автоматизированная обработка новостей и почты в Linux делается легко.

Во-первых, надо создать /usr/lib/ppp/ppp-on, который устанавливает соединение с ISP. Часто этот файл содержит только:

/usr/sbin/pppd

В /etc/ppp/options указываются такие спецификации:

connect "/usr/lib/ppp/chat -v -f /etc/ppp/chatscript" crtscts modem defaultroute asyncmap 00000000 user dirk /dev/modem 38400

Для завершения соединения, используйте соответственнно файл /usr/lib/ppp/ppp-off.

Проверив функциональные возможности этих двух скриптов, теперь нужно написать скрипты, которые выполняют другие задачи. Скрипт для забора email был описан выше, и мы поместим его в /home/dirk/pop.

Скрипт обмена почтой может быть потом выполнен как /root/mail:

#! /bin/sh # # exchange mail # 10 minutes timeout: TIMEOUT=600 DT=10

# kick sendmail: sendmail -q &

# retrieve mail: su dirk -c /home/dirk/pop

# wait for sendmail to terminate: t=0 while ! mailq | grep -q "Mail queue is empty"; do t=$[$t+$DT] if [ $t -gt $TIMEOUT ] ; then echo "sendmail -q timeout ($TIMEOUT).." exit 1 fi sleep $DT done

exit 0

Скрипт обмена новостями может быть записан как /usr/lib/news/news:

#!/bin/sh # # обмен новостями # должен быть запущен от пользователя news: cd /usr/lib/news

#обновить исходящие пакеты (C News): /usr/lib/newsbin/input/newsrun < /dev/null

#обмен новостями: /usr/lib/newsbin/newsx acme news.acme.net

#и обработать пришедшие пакеты: /usr/lib/newsbin/input/newsrun < /dev/null

Скрипт, соединяет различные составляющие и куски, и может быть размещен как /root/news+mail:

#!/bin/sh # # обмен новостями и почтой # должен запускаться от root # if ! /usr/lib/ppp/ppp-on; then exit 1 fi trap "/usr/lib/ppp/ppp-off" 1 2 3 15

#обмен почтой и новостями /root/mail & su news -c ~news/news wait

#отсодиниться.. /usr/lib/ppp/ppp-off

#обновить исходящие пакеты (C News):: su news -c /usr/lib/newsbin/input/newsrun < /dev/null &

exit 0

Легко добавить расширение к вышеприведенному скрипту для установления соединения, если имеется почта и новости для отправки. Давайте назовем его /root/news+mail.cond, и имейте в виду, что имя спула исходящих новостей должно быть исправлено на значение в вашей системе:




Начало  Назад  Вперед



Книжный магазин