Мы — долго запрягаем, быстро ездим, и сильно тормозим.

RFC
Программирование
FreeBSD
  MPD
  1. Введение
  2. Установка
  3. Работа mpd
man
EXIM


www.lissyara.su —> документация —> FreeBSD —> MPD —> 3. Работа mpd

3. Работа mpd


3.1 Активизация mpd

   Mpd активизируется путём первой установки ваших конфигурационных файлов, и затем, работает.
mpd [ опции ] [ конфигурация ]

   Если конфигурация задана в конандной строке, то mpd просматривает mpd.conf для соответствующей метки, и выполняет соответствующие команды (до первой пустой строки). Если конфигурация не задана, mpd ищет конфигурацию назначенную по умолчанию. Если и она не найдена, то никакие команды из mpd.conf не выполняются
   Mpd может быть запущен как в интерактивном режиме или в фоне как демон. В интерактивном режиме mpd принимает команды набранные в консоле.
   Mpd имеет следующие опции для коммандной строки. Каждая опция имеет короткую, символьную форму, так же как эквивалентную длинную форму.

  • -b --background - Запуск в фоне
  • -d --directory [директория] - Эта опция позволяет Вам определять различные каталоги для mpd, где хранятся конфигурационные файлы. Значения по умолчанию: /usr/local/etc/mpd.
  • -f --file [имя файла]Определяет начальный конфигурационный файл, кроме значения по умолчанию, mpd.conf.
  • -p --pidfile [имя файла] - Mpd до старта открывает и блокирует файл, и записывает в него ID процесса. Если иной mpd уже запущен, то второй не запустится. Значение по умолчанию: /var/run/mpd.pid.
  • -k --kill - C этой опцией, mpd перед запуском попытается убить любой существующий mpd процесс перед началом нового запуска. Предыдущий процесс, должен иметь записаный свой ID процесса в PID файл /var/run/mpd.pid (или другой файл, который вы определили в опции --pidfile).
  • -s --syslog-ident [индификатор] - Mpd обычно логгирается через syslog(3) с идентификатором mpd. Эта опция позволяет Вам изменять этот идентификатор.
  • -v --version - Выводит на дисплей номер версии mpd и выходит.
  • -h --help - Выводит на дисплей сообщение о использовании и выходит.

       Mpd отвечает на следующие сигналы, в то время как он запущен:
  • SIGTERM - Попытаться корректно завершить все активные подключения и выйти.
  • SIGUSR1 - Этот сигнал заставляет mpd инициализировать подключение с активным в настоящее время узлом. Если mpd уже пытается соединиться, этот сигнал не имеет никакого эффекта.
  • - SIGUSR2 - Этот сигнал имеет противоположный эффект, а именно, это заставляет mpd закрывать активную в настоящее время связь. Если связь находится уже в закрытом состоянии, этот сигнал не имеет никакого эффекта.

    3.2 Формат конфигурационного файла

       Mpd, при работе, использет четыре конфигурационных файла. Эти файлы описаны ниже.

    3.2.1 Основные свойства

       Для всех файлов конфигурации, истинны следующие вещи:

  • Любую строку, где первый символ представлен как символ (#), считают комментарием и игнорируют.
  • Строки могут быть цитированы при использовании двойных ковычек ("). Строка будет декодирована согласно нормальным правилам Языка C.

    3.2.2 mpd.conf и mpd.links

       Файлы mpd.conf и mpd.links имеют общую простую структуру. Ввод состоит из метки, сопровождаемой последовательностью mpd команд. Метка начинается в первом столбце и заканчивается символом двоеточия (:). Команды, обычно, выравниваются символом табуляции (это не обязательно требуется), и продолжаются построчно после ввода метки, на следующих строках. Метка заканчивается после первой пустой строчки.
       Вот - пример mpd.conf, котомый содержит единственную метку config1, которая определяет единственную связку myisp, содержа две связи modem1 и modem2:
    #
    # конфигурационный файл mpd.conf 
    #
    
    config1:
    	new myisp modem1 modem2
    	set auth authname "mylogin1"
    	set iface enable on-demand
    	set iface addrs 1.2.3.4 5.6.7.8
    	set iface route default
    	set iface idle 300
    	link modem1
    	set modem var $Telephone "123-4567"
    	link modem2
    	set modem var $Telephone "123-4567"
    

       Соответствующий пример mpd.links мог бы выглядеть так:
    #
    # конфигурационный файл mpd.links
    #
    
    # мой внутренний модем который представлен как COM3
    modem1:
    	set link type modem
    	set modem device /dev/cuaa2
    
    # мой внешний модем который представлен как COM2
    modem2:
    	set link type modem
    	set modem device /dev/cuaa1
    

       Замете, что номер телефона для соединения для каждой связи, установлен в mpd.conf вместо mpd.links, потому что он является определенным для метки config1. C другой стороны, устройство последовательного порта - свойства связи и не зависят от конфигурации; следовательно это установлено для каждой связи в mpd.links.

    3.2.3 mpd.secret

       Этот файл соделжит пару логин, пароль для подключения, по паре на одну строчку. Каждая пара может иметь дополнительный третий параметр, который является адресом IP с опциональной сетевой маской. Это используется когда необходимо определенному узлу присвоить определенный IP адрес. Мы ограничим допустимые IP адреса, которые мы назначим для узла сети, чтобы уложиться в пределах указанного диапазона.
       В примере ниже, мы определяем две учетные записи поставщика интернета, которые мы используем для подключения к интернету. Кроме того, мы имеем трех друзей, которым разрешено соединяться с нами, и мы хотим ограничить IP адреса которыее мы позволим им использовать. Наконец, пароль последнего пользователя ищется с помощью внешней программы.
    #
    # конфигурационный файл mpd.secrets
    #
    
    # две учетные записи поставщика интернета
    mylogin1    password1
    mylogin2    "Xka \r\n"
    
    # три друга
    bob         "akd\"ix23"   192.168.1.100
    jerry       "33dk88kz3"   192.168.1.101
    phil        "w*d9m&_4X"   192.168.1.128/25
    
    # внешний пароль, доступный через программу
    gregory     "!/usr/local/etc/mpd/get_passwd.sh" 
    

       Здесь, bob и jerry должны вести переговоры с 192.168.1.100 и 192.168.1.101, соответственно, в то время как phil может использовать любой адрес от 192.168.1.128 до 192.168.1.255.
       Первый символ "!" показывает что пароль для пользователя gregory не хранится в файле mpd.secret. Вместо этого, названная программа выполняется с провами пользователя, указанным как дополнительный параметр (в этом случае это выглядило бы так, "/usr/local/etc/mpd/get_passwd.sh gregory"). Командная сторка так же может включать дополнительные аргументы. Эта программа должна напечатать пароль в виде обычного текста для заданного пользователя в одну одну линию на стандартный вывод, и после этого закончить свое выполнение. Mpd блокируется для выполнения этой операции, так что она должна быстро ответить и, затем, выйти. Если есть ошибка, то программа должна печатать пустую сторочку, или ничего.
       Как специальный случай, если имя пользователя в файле mpd.secret представлено в виде "*", то это страка должна быть последней, и имя пользователя может соответвовать любому имени пользователя. Это можно использовать для определения правильности введенного имени пользователя. Этот подстановочный знак, работает только для "!".
       Полная длина выполняемой комманды должна быть меньше 128 символов. Программа выполняется от имени того пользователя, от которого запущен mpd, который, обычно, root, таким образом основная проблема может быть с выполнением сценария как root, т.е., позаботтьтесь, чтобы скрипт нельзя было читать и изенять всем. Стандартный ввод и стандартный поток ошибок наследуются от родительского процесса mpd. Отметтьте, что любые дополнительные аргументы будут видны пользователям локальной машины запустившим ps(1). (прим. lissyara: на этот случай, вообще-то, есть переменные sysctl, отвечающие за видимость процессов другими пользователями - security.bsd.see_other_gids и security.bsd.see_other_uids)

    3.2.4 mpd.script

       Этот файл имеет формат, подобный mpd.conf и mpd.links, но он содержит команды сценария чата, вместо mpd команд. Каждая строка содержит единственную команду, и метки идентифицируют отправные точки и/или подпрограммы в сценарии. В отличие от mpd.conf и mpd.links, пустая строка не заканчивает обработку команд.
       Смотрите скриптинг чата для полного его описания.

    3.3 Интерфейс командной строки mpd

       После соединения к порту telnet, mpd предосталяет интерфейс командной строки. Тут могут быть введены команды mpd, для конфигурирования различных слоёв, и проверки статуса заданных связок и связей. Команды доступные в интерфейсе командной строки - те же самые, что и доступны в конфигурационных файлах mpd.conf и mpd.links.
       В любой момент времени, тут всегда активные связки и активные связи в этой связке. Они показываются в подсказке командной строки. Вот - пример работающего mpd с конфигурацией в mpd.conf, которая задаёт связку myisp, содержащую две связи - modem1 и modem2:
    $ mpd config1
    Multi-link PPP for FreeBSD, by Archie L. Cobbs.
    Based on iij-ppp, by Toshiharu OHNO.
    mpd: pid 1419, version 4.0 (root@fish.alkar.net 15:29 15-Dec-2006)
    [myisp] ppp node is "mpd771-myisp"
    [myisp] using interface ng0
    

       В это время, mpd прочитал и выполнил все команды ассоциированные с конфигурацией config1, которая задаёт связку myisp. Когда связка создана, mpd логгирует сообщение, показывающее имя ассоциированного netgraph ng_ppp(4) узла, и системный интерфейс (mpd автоматически выбирает один, если точно не сказано какой использовать). В этом случае, mpd771-myisp - узел netgraph, и ng0 - интерфейс.
       Для управления mpd во время работы, вы можете подключиться к консоли telnet ьзвЖ
    > telnet 0 5005
    Trying 0.0.0.0...
    Connected to 0.
    Escape character is '^]'.
    Multi-link PPP for FreeBSD, by Archie L. Cobbs.
    Based on iij-ppp, by Toshiharu OHNO.
    
    Username: Admin
    Password: 
    mpd: pid 1419, version 4.0 (root@fish.alkar.net 15:29 15-Dec-2006)
    
    [modem1]
    

       Подсказка [modem1] показывает текущую активную связь (modem1). Любая специфичная для связки команда, введённая в этой точке, применяется к modem1.
       Для изменения активноq связи, или связки, используйте команду link или bundle:
    [modem1] link modem2
    [modem2]
    

       Теперь, любые введённые команды применяются к myisp или modem2, соответственно. Технически, это работает таким же способом как и в mpd.conf. Также, если изменение связи требует соответствующего изменения связки, mpd также делает и это.
       Доступные команды описаны в следующей части. Когда mpd работает, для получения дополнительной информации о специфической команде может использоваться help:
    [modem2] help show
    Commands available under "show":
     bundle   : Bundle status                ccp      : CCP status
     ecp      : ECP status                   eap      : EAP status
     events   : Current events               ipcp     : IPCP status
     ipv6cp   : IPV6CP status                iface    : Interface status
     routes   : IP routing table             layers   : Layers to open/close
     phys     : Physical device status       link     : Link status
     auth     : Auth status                  radius   : RADIUS status
     lcp      : LCP status                   mem      : Memory map
     mp       : Multi-link status            console  : Console status
     globals  : Global settings              types    : Supported device types
     version  : Version string
    [modem2]
    

       Mpd позволяет вам использовать лишь преффикс команды, когда продолжение команды не неоднозначно:
    [modem2] b
    Defined bundles:
            Bundle         Links
            ------         -----
            myisp          modem2[DOWN]
    [modem2] s
    s: ambiguous command
    

    =============
    translated by Abigor
    verifying by lissyara





  • Хостинг HOST-FOOD

    2014-07-27, lissyara
    gmirror

    Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
    2013-08-20, zentarim
    Scan+Print server FreeBSD 9

    Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
    2011-11-20, BlackCat
    Разъём на WiFi-карту

    Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
    2011-09-14, manefesto
    Настройка git+gitosis

    Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
    2011-08-14, zentarim
    Wi-FI роутер + DHCP + DNS

    Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
    2011-06-15, -ZG-
    Охранная система на FreeBSD+LPT

    В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
    2011-03-13, terminus
    ng_nat

    Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
    2011-02-20, Капитан
    Nagios+Digitemp

    Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
    2011-02-17, Le1
    Zyxel Configuration

    Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
    2011-02-16, fox
    hast carp zfs ucarp cluster

    HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
    2011-02-04, BlackCat
    Восстановление ZFS

    История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
    2011-02-03, Капитан
    1-Wire

    Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
    2011-01-28, Капитан
    Температура в серверной

    Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
    2011-01-21, m4rkell
    Syslog server

    Как то буквально на днях, у нас завалилось, что то в еве) или не в еве не суть. Суть в том, что когда захотели снять логи с хостов esx обнаружили, что хранят эти негодяи логии только за последнии сутк
    2011-01-07, lissyara
    Canon/gphotofs

    Монтирование цифровых фотоаппаратов Canon (PTP) как файловой системы, автоматизация этого процесса через события devd и внешние скрипты.
    2010-12-13, Al
    IPSec

    Описание принципов работы IPSEC и способов аутентификации.
    2010-12-07, manefesto
    FreeBSD on flash

    Было принято решении переехать на USB Flash и установить минимальный джентельменский набор для работы своего роутера. Делаем =)
    2010-12-05, Fomalhaut
    root ZFS, GPT

    Инструкция по установке FreeBSD с использованием в качестве таблицы разделов GPT и в качестве основной файловой системы - ZFS
    2010-09-05, Cancer
    Настройка аудиоплеера на ximp3

    Цели: Простенький аудиоплеер, для того что бы тетя продавец в магазине утром пришла нажала на кнопку Power и заиграла в зале музыка, так же был доступ по сети, общая шара куда можно заливать музыку, к
    2010-08-31, Cancer
    Установка и настройка OpenVPN

    На днях появилась задача - объединить головной офис и 3 филиала в одну сеть через интернет посредством OpenVPN, чтобы люди могли подключаться через RDP к базам 1С на серверах.
    подписка

        вверх      
    Статистика сайта
    Сейчас на сайте находится: 16 чел.
    За последние 30 мин было: 63 человек
    За сегодня было
    10660 показов,
    1627 уникальных IP
     

      Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
      Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

    © lissyara 2006-10-24 08:47 MSK

    Время генерации страницы 0.1206 секунд
    Из них PHP: 55%; SQL: 45%; Число SQL-запросов: 54 шт.
    Исходный размер: 58504; Сжатая: 14168