По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В предыдущей статье, мы рассказывали, как установить Asterisk 14.3.0 из источников, в сегодняшней статье, хотелось бы поговорить про базовые возможности управления Asterisk из командной строки после установки.
По умолчанию, после запуска Asterisk будет работать как процесс в фоновом режиме и для того, чтобы подключиться и начать управлять работающим процессом, необходимо включить удаленную консоль следующей командой:
[root@localhost ~]# asterisk -r
Asterisk 14.3.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
Connected to Asterisk 14.3.0 currently running on localhost (pid = 1887)
localhost*CLI>
Опция -R также поможет подключить удаленную консоль, однако она будет автоматически пробовать переподключиться к Asterisk, если по каким-то причинам, соединение было разорвано.
Чтобы отключиться от удаленной консоли Asterisk, нужно нажать сочетание клавиш Ctrl+C
Существует несколько способов остановки работающего процесса Asterisk:
core stop now - данная команда мгновенно останавливает процесс, обрывая все проходящие на сервере соединения и звонки
core stop gracefully - данная команда не позволяет новым соединениям устанавливаться на Asterisk, но позволяет текущим соединениям продолжаться. Когда все соединения заканчиваются, то Asterisk останавливается
core stop when convenient - данная команда также дожидается пока на сервере не останется текущих звонков, а затем останавливает Asterisk. Однако, новые звонки, поступающие на сервер - разрешены
Команды для перезапуска процесса Asterisk работают аналогично командам, останавливающим процесс, которые описаны выше, но вместо того чтобы останавливать Asterisk, они его перезапускают в соответствии с синтаксисом команды:
core restart now
core restart gracefully
core restart when convenient
Существует также команда, которая отменяет введенную ранее команду остановки или перезапуска, если пользователь вдруг передумал:
core abort shutdown
Также можно подключиться к Asterisk как root, командой:
[root@localhost ~]# asterisk -c
Asterisk 14.3.0, Copyright (C) 1999 - 2016, Digium, Inc. and others.
Created by Mark Spencer <markster@digium.com>
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for detail s.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
=========================================================================
[ Initializing Custom Configuration Options ]
*CLI> Asterisk Ready.
Мы категорически не рекомендуем запускать Asterisk с правами root’а, поскольку это опасно и может негативно повлиять на систему, на которой работает Asterisk.
Управление степенью логирования событий в Asterisk
Вы можете управлять тем, насколько подробно будут логироваться события Asterisk, для этого используется специальная опция -v. Каждая –v повышает уровень VERBOSE сообщений.
Например, следующая команда повышает уровень логирования на 2:
# asterisk –r –v -v
Возможен и такой вариант ввода, разницы между ними нет
# asterisk -rvv
Другие опции
Можно также запускать Asterisk от имени другого пользователя:
# asterisk –U asteriskuser
Для работы от имени другого пользователя, советуем убедиться, что у него есть разрешения на доступ к следующим директориям. Используйте команды:
# sudo chown -R asteriskuser:asteriskuser /usr/lib/asterisk
# sudo chown -R asteriskuser:asteriskuser /var/lib/asterisk
# sudo chown -R asteriskuser:asteriskuser /var/spool/asterisk
# sudo chown -R asteriskuser:asteriskuser /var/log/asterisk
# sudo chown -R asteriskuser:asteriskuser /var/run/asterisk
# sudo chown asteriskuser:asteriskuser /usr/sbin/asterisk
Команды в консоль сервера IP - АТС Asterisk можно и давать с помощью графической оболочки FreePBX. Для этого, перейдите в раздел Admin → Asterisk CLI
Существует большое множество других опций и режимов, доступных при запуске Asterisk, для того чтобы посмотреть и ознакомиться с ними, используйте команду:
# asterisk –h
Чтобы управлять сервисом Asterisk из командной строки Вашей операционной системы используйте следующие команды:
Для запуска сервиса:
# service asterisk start
Starting asterisk (via systemctl): [ OK ]
Для остановки сервиса:
# service asterisk stop
Stopping asterisk (via systemctl): [ OK ]
Для перезапуска сервиса:
# service asterisk restart
Stopping asterisk (via systemctl): [ OK ]
Starting asterisk (via systemctl): [ OK ]
Для проверки статуса:
# service asterisk status
? asterisk.service - LSB: Asterisk PBX
Loaded: loaded (/etc/rc.d/init.d/asterisk; bad; vendor preset: disabled)
Active: active (running) since Wed 2017-03-01 15:59:26 MSK; 2s ago
Docs: man:systemd-sysv-generator(8)
Process: 11611 ExecStop=/etc/rc.d/init.d/asterisk stop (code=exited, status=0/SUCCESS)
Process: 11672 ExecStart=/etc/rc.d/init.d/asterisk start (code=exited, status=0/SUCCESS)
Main PID: 11697 (asterisk)
CGroup: /system.slice/asterisk.service
+-11695 /bin/sh /usr/sbin/safe_asterisk
L-11697 /usr/sbin/asterisk -f -vvvg -c
Mar 01 15:59:26 localhost.localdomain systemd[1]: Starting LSB: Asterisk PBX...
Mar 01 15:59:26 localhost.localdomain asterisk[11672]: Starting asterisk:
Mar 01 15:59:26 localhost.localdomain systemd[1]: PID file /var/run/asterisk/...
Mar 01 15:59:26 localhost.localdomain systemd[1]: asterisk.service: Supervisi...
Mar 01 15:59:26 localhost.localdomain systemd[1]: Started LSB: Asterisk PBX.
Hint: Some lines were ellipsized, use -l to show in full.
Конфигурационные и служебные файлы и директории, в которых они хранятся, определяют принципы работы IP – АТС Asterisk, маршрутизации вызова, настройки оконечных устройств и прочих параметров.
Сегодня поговорим о том, где эти конфигурационные файлы находятся и расскажем про способ смены конфигурационных директорий «по умолчанию».
Настройка локации файлов
Файл asterisk.conf, который находится по пути /etc/asterisk, используется для настройки местонахождения директорий и файлов, которые использует Asterisk. По факту, это перечень путей:
Подробно
Пробежимся по каждому из путей:
astetcdir=/etc/asterisk - в данном директории хранятся основные конфигурационные файлы Asterisk. В основном, это файлы с расширением .conf, но так же это могут быть файлы .lua или .ael, если вы пишите диалплан на LUA или Asterisk Extension Language;
astmoddir=/usr/lib/asterisk/modules - по данному пути находятся модули Asterisk в формате .so (Shared Object), которые обеспечивают различные функции и возможности АТС;
astvarlibdir=/var/lib/asterisk - директория для хранения различных библиотек;
astagidir=/var/lib/asterisk/agi-bin - если вы используете AGI приложения в диалплане, то скрипты для Asterisk Gateway Interface необходимо перенести именно в эту директорию;
astspooldir=/var/spool/asterisk - директория, в которой хранятся файлы, используемые и создаваемые модулями Asterisk. Внутри директории находятся такие каталоги как dictate, meetme, monitor, outgoing, recording, system, tmp и voicemail;
astrundir=/var/run/asterisk - когда Asterisk запущен, у вас будет присутствовать 2 файла в этой директории: asterisk.ctl и asterisk.pid - эти файлы контролируют соответствующий процесс (PID) и сокет;
astlogdir=/var/log/asterisk - в данной директории будут храниться лог – файлы Asterisk;
Теперь давайте разберемся с параметрами в секции [options]:
transmit_silence_during_record = yes - «тихая» запись канала. Это означает, что при записи канала, никаких дополнительных звуковых уведомлений не будет подано в канал;
languageprefix = yes - с версии Asterisk 1.4 реализовано новое расположение файлов. Если данный параметр отмечен как yes, то используются новые пути, если nom то старые;
execincludes = yes - включаем директиву #exec для выполнения в файлах конфигурации;
В этой статье мы объясним, как узнать, кто использует тот или иной файл в Linux. Это поможет вам узнать системного пользователя или процесс, который использует открытый файл.
Как узнать, кто использует файл в Linux?
Мы можем использовать команду lsof (которая является аббревиатурой от List Of Opened Files), чтобы узнать, использует ли кто-то файл, и если да, то кто. Он читает память ядра в поиске открытых файлов и перечисляет все открытые файлы. В этом случае открытый файл может быть обычным файлом, каталогом, специальным файлом блока, специальным файлом символов, потоком, сетевым файлом и многими другими, поскольку в Linux все является файлом.
Lsof используется в файловой системе, чтобы определить, кто использует какие-либо файлы в этой файловой системе. Вы можете запустить команду lsof в файловой системе Linux, и выходные данные идентифицируют владельца и информацию о процессах для процессов, использующих файл, как показано в следующих выходных данных.
$ lsof /dev/null
Список всех открытых файлов в Linux
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1480 merionet 0r CHR 1,3 0t0 6 /dev/null
sh 1501 merionet 0r CHR 1,3 0t0 6 /dev/null
sh 1501 merionet 1w CHR 1,3 0t0 6 /dev/null
dbus-daem 1530 merionet 0u CHR 1,3 0t0 6 /dev/null
xfce4-ses 1603 merionet 0r CHR 1,3 0t0 6 /dev/null
xfce4-ses 1603 merionet 1w CHR 1,3 0t0 6 /dev/null
at-spi-bu 1604 merionet 0r CHR 1,3 0t0 6 /dev/null
dbus-daem 1609 merionet 0u CHR 1,3 0t0 6 /dev/null
at-spi2-r 1611 merionet 0u CHR 1,3 0t0 6 /dev/null
xfconfd 1615 merionet 0u CHR 1,3 0t0 6 /dev/null
xfwm4 1624 merionet 0r CHR 1,3 0t0 6 /dev/null
xfwm4 1624 merionet 1w CHR 1,3 0t0 6 /dev/null
xfce4-pan 1628 merionet 0r CHR 1,3 0t0 6 /dev/null
xfce4-pan 1628 merionet 1w CHR 1,3 0t0 6 /dev/null
Thunar 1630 merionet 0r CHR 1,3 0t0 6 /dev/null
Thunar 1630 merionet 1w CHR 1,3 0t0 6 /dev/null
xfdesktop 1632 merionet 0r CHR 1,3 0t0 6 /dev/null
xfdesktop 1632 merionet 1w CHR 1,3 0t0 6 /dev/null
....
Чтобы вывести список файлов, открытых для конкретного пользователя, выполните следующую команду: замените merionet вашим именем пользователя.
$ lsof -u merionet
Список файлов, открытых пользователем:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1480 merionet cwd DIR 8,3 4096 2 /
systemd 1480 merionet rtd DIR 8,3 4096 2 /
systemd 1480 merionet txt REG 8,3 1595792 3147496 /lib/systemd/systemd
systemd 1480 merionet mem REG 8,3 1700792 3150525 /lib/x86_64-linux-gnu/libm-2.27.so
systemd 1480 merionet mem REG 8,3 121016 3146329 /lib/x86_64-linux-gnu/libudev.so.1.6.9
systemd 1480 merionet mem REG 8,3 84032 3150503 /lib/x86_64-linux-gnu/libgpg-error.so.0.22.0
systemd 1480 merionet mem REG 8,3 43304 3150514 /lib/x86_64-linux-gnu/libjson-c.so.3.0.1
systemd 1480 merionet mem REG 8,3 34872 2497970 /usr/lib/x86_64-linux-gnu/libargon2.so.0
systemd 1480 merionet mem REG 8,3 432640 3150484 /lib/x86_64-linux-gnu/libdevmapper.so.1.02.1
systemd 1480 merionet mem REG 8,3 18680 3150450 /lib/x86_64-linux-gnu/libattr.so.1.1.0
systemd 1480 merionet mem REG 8,3 18712 3150465 /lib/x86_64-linux-gnu/libcap-ng.so.0.0.0
systemd 1480 merionet mem REG 8,3 27112 3150489 /lib/x86_64-linux-gnu/libuuid.so.1.3.0
systemd 1480 merionet mem REG 8,3 14560 3150485 /lib/x86_64-linux-gnu/libdl-2.27.so
...
Еще одно важное использование lsof - выяснение процесса прослушивания определенного порта. Например, определите процесс, прослушивающий порт 80, с помощью следующей команды.
$ sudo lsof -i TCP:80
Процессы, прослушивающие порт:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
httpd 903 root 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1320 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1481 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1482 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1493 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 1763 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2027 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2029 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 2044 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 3199 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
httpd 3201 apache 4u IPv6 20222 0t0 TCP *:http (LISTEN)
Примечание: поскольку lsof читает память ядра при поиске открытых файлов, быстрые изменения в памяти ядра могут привести к непредсказуемым результатам. Это один из основных недостатков использования команды lsof.
Для получения дополнительной информации, смотрите справку lsof:
$ man lsof
На этом все! В этой статье мы объяснили, как узнать, кто использует тот или иной файл в Linux.