Основные команды Linux для управления системой - Asterisk и FreePBX: От GUI к Глубокому Администрированию и Оптимизации - Qpel.AI

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

Вы уже умеете разворачивать FreePBX и управлять им через графический интерфейс. Отлично! Но чтобы по-настоящему глубоко понимать, как работает ваша АТС, и решать любые проблемы, нужно освоить командную строку Linux. Ведь FreePBX — это лишь надстройка над CentOS/RHEL, а под капотом у него — чистый Asterisk.

Командная строка даст вам суперсилу: вы сможете диагностировать сбои, тонко настраивать систему и делать то, что недоступно через GUI. Давайте погрузимся!

Навигация по файловой системе

Представьте, что вы — исследователь, а файловая система — это карта. Вот как по ней перемещаться:

  • pwd (print working directory): Покажет, где вы сейчас находитесь.
    pwd
    # Вывод: /home/user
    
  • ls (list): Выведет содержимое текущего каталога.
    • ls -l: Подробно: права, владелец, размер, дата.
    • ls -a: Покажет даже скрытые файлы (начинаются с точки).
    • ls -lh: То же, что -l, но размер файлов — в удобном формате (например, 1.2K, 3.5M).
    ls -lh /etc/asterisk/
    # Вывод:
    # total 1.2M
    # -rw-rw-r--. 1 asterisk asterisk 1.2K Jan 15 2025 extensions_custom.conf
    # -rw-rw-r--. 1 asterisk asterisk 85K Jan 15 2025 sip.conf
    # ...
    
  • cd (change directory): Перемещает вас по каталогам.
    • cd /etc/asterisk: Переход в каталог /etc/asterisk.
    • cd ..: На уровень выше.
    • cd ~: В ваш домашний каталог.
    • cd -: Вернуться в предыдущий каталог.

Работа с файлами и каталогами

Вы научились ходить, теперь пора научиться строить, переставлять и убирать.

  • touch: Создаёт пустой файл или обновляет время доступа к существующему.
    touch my_new_file.txt
    
  • mkdir (make directory): Создаёт новый каталог.
    • mkdir -p /var/log/my_app/temp: Создаст всю цепочку каталогов, если их нет.
    mkdir /home/user/backups
    
  • cp (copy): Копирует файлы и каталоги.
    • cp file.txt /home/user/backups/: Копирует file.txt в backups.
    • cp -r my_dir /home/user/backups/: Копирует каталог my_dir со всем содержимым (рекурсивно).
    cp /etc/asterisk/sip.conf /etc/asterisk/sip.conf.bak
    
  • mv (move): Перемещает или переименовывает файлы и каталоги.
    mv old_name.txt new_name.txt # Переименование
    mv file.txt /var/www/html/   # Перемещение
    
  • rm (remove): Удаляет файлы и каталоги. Будьте предельно осторожны, особенно с -r!
    • rm file.txt: Удаляет файл.
    • rm -r my_dir: Удаляет каталог со всем содержимым.
    • rm -rf my_dir: Удаляет каталог со всем содержимым без запроса подтверждения. Используйте только если на 100% уверены!
    rm /home/user/temp_file.log
    

Важно: Всегда делайте резервные копии перед удалением или изменением важных файлов, особенно конфигурационных. Команда cp с суффиксом .bak (например, sip.conf.bak) — ваш лучший друг.

Просмотр содержимого файлов

Конфигурационные файлы Asterisk — это сердце вашей АТС. Вот как их читать:

  • cat (concatenate): Выводит содержимое файла на экран. Хорошо для небольших файлов.
    cat /etc/asterisk/modules.conf
    
  • less: Просмотр больших файлов постранично, с поиском и прокруткой. Выход — q.
    less /var/log/asterisk/full
    
  • head: Показывает первые 10 строк файла.
    • head -n 20 file.txt: Выведет первые 20 строк.
    head /etc/asterisk/sip.conf
    
  • tail: Показывает последние 10 строк файла. Незаменим для логов в реальном времени!
    • tail -n 50 file.txt: Выведет последние 50 строк.
    • tail -f /var/log/asterisk/full: Непрерывно выводит новые строки, добавляемые в файл. Для выхода — Ctrl+C. Это ваш главный инструмент при диагностике!
    tail -f /var/log/asterisk/full
    

Управление процессами и службами

Asterisk — это служба, которая постоянно работает в фоне. Вот как ею управлять:

  • systemctl: Основная команда для управления службами в CentOS/RHEL.
    • systemctl status asterisk: Проверить статус Asterisk.
    • systemctl start asterisk: Запустить Asterisk.
    • systemctl stop asterisk: Остановить Asterisk.
    • systemctl restart asterisk: Перезапустить Asterisk.
    • systemctl enable asterisk: Включить автозапуск при загрузке.
    • systemctl disable asterisk: Отключить автозапуск.
    systemctl status asterisk
    # Вывод:
    # ● asterisk.service - Asterisk PBX
    #    Loaded: loaded (/usr/lib/systemd/system/asterisk.service; enabled; vendor preset: disabled)
    #    Active: active (running) since Thu 2025-01-16 10:30:00 MSK; 1h 20min ago
    # ...
    
  • ps (process status): Показывает запущенные процессы.
    • ps aux | grep asterisk: Найти все процессы, связанные с Asterisk.
  • top: Интерактивный монитор процессов. Показывает загрузку CPU, памяти в реальном времени. Выход — q.

Управление пользователями и правами доступа

Безопасность — это не шутки. Понимание прав доступа поможет избежать многих проблем.

  • whoami: Покажет, кто вы.
  • sudo: Выполнить команду с правами суперпользователя (root). Используйте с большой осторожностью!
    sudo systemctl restart asterisk
    
  • chmod (change mode): Изменяет права доступа к файлам и каталогам. Права задаются цифрами или символами.
    • r (read) - чтение (4)
    • w (write) - запись (2)
    • x (execute) - выполнение (1)
    • chmod 755 script.sh: Владелец: чтение, запись, выполнение (4+2+1=7); Группа: чтение, выполнение (4+1=5); Остальные: чтение, выполнение (4+1=5).
  • chown (change owner): Изменяет владельца файла или каталога.
    • chown asterisk:asterisk /var/log/asterisk/full: Изменит владельца и группу файла на asterisk.

Сетевые утилиты

Проблемы со связью в VoIP — обычное дело. Эти команды помогут их диагностировать:

  • ip a (ip address): Показывает сетевые интерфейсы и их IP-адреса.
    ip a
    # Вывод:
    # 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    #     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    #     inet 127.0.0.1/8 scope host lo
    # ...
    # 2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    #     link/ether 00:0c:29:ab:cd:ef brd ff:ff:ff:ff:ff:ff
    #     inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute ens33
    # ...
    
  • ping: Проверяет доступность узла в сети.
    ping google.com
    
  • netstat -tulnp (или ss -tulnp в новых системах): Покажет открытые порты и процессы, которые их используют. Это очень полезно для диагностики проблем с SIP-портами!
    netstat -tulnp | grep 5060
    # Вывод:
    # udp        0      0 0.0.0.0:5060            0.0.0.0:*                           2345/asterisk
    
  • firewall-cmd: Управление брандмауэром firewalld.
    • firewall-cmd --list-all: Показать все активные правила.
    • firewall-cmd --add-port=5060/udp --permanent: Открыть UDP порт 5060 (для SIP).
    • firewall-cmd --reload: Применить изменения.

Практическое задание

Время закрепить знания! Откройте терминал и выполните эти шаги:

  1. Проверьте статус Asterisk: Используйте systemctl status asterisk. Убедитесь, что служба запущена.
  2. Просмотрите логи Asterisk: Перейдите в каталог /var/log/asterisk/ и используйте tail -f full. Попробуйте совершить тестовый звонок, чтобы увидеть, как логи обновляются. Это покажет вам, как Asterisk "думает".
  3. Найдите конфигурационные файлы SIP: Перейдите в /etc/asterisk/ и используйте ls -lh. Найдите файлы, связанные с SIP (например, sip.conf, pjsip.conf).
  4. Сделайте резервную копию: Скопируйте sip.conf в sip.conf.bak с помощью команды cp.

Освоение этих команд — ваш фундамент для глубокой работы с Asterisk. В следующем разделе мы углубимся в работу с конфигурационными файлами, используя эти команды для их просмотра и редактирования. Готовы? 😉