Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

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

Автоматизированная обработка новостей и почты в 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, и имейте в виду, что имя спула исходящих новостей должно быть исправлено на значение в вашей системе:
       #!/bin/sh
       #
       # exchange news и email, only if outgoing news или mail
       # (C News spool)
       if [ -s /var/spool/news/out.going/acme/togo ] ||
           ! ( mailq | grep -q "Mail queue is empty"); then
            /root/news+mail
       fi
Осталось только задать время, когда все это запускать. Это делается использованием команды crontab -e от имени root. Давайте назначим обмен почтой и новостями на 07:00 утра и затем каждые четыре часа отправку почты и новостей:
       00 7      * * *     /root/news+mail
       00 11,15,19,23 * * *     /root/news+mail.cond
Удостоверьтесть, что каждый компонент тщательно проверен, прежде чем начнете использовать их вместе. Позже можно добавить несколько других задач, таких как установка времени дня (используя ntpdate) и автоматическое обновление (зеркалирование) локально разрабатываемых файлов WWW и FTP на ISP (используя make и ftp).

ALT: В зависимости от предпочтений, также возможно поключить какой-либо процесс. При каждом поднятии PPP, запускается скрипт /etc/ppp/ip-up. Здесь можно добавить команды для запуска процедуры обмена почтой и новостями. См. man pppd для подробностей.

ALT: Также возможно автоматически поднимать PPP при обнаружении трафика. Есть много элегантных решений, но они сильно зависят от правильной настройки, которая должна помочь избежать частых (и дорогостоящих) установлений соединений. Больше информации можно почерпнуть на:

Утилита diald доступна на: В других местах можно обнаружить и другие варианты создания PPP-сессий.


Вперед Назад Содержание
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...