Основные команды Linux для управления системой
Вы уже умеете разворачивать FreePBX и управлять им через графический интерфейс. Отлично! Но чтобы по-настоящему глубоко понимать, как работает ваша АТС, и решать любые проблемы, нужно освоить командную строку Linux. Ведь FreePBX — это лишь надстройка над CentOS/RHEL, а под капотом у него — чистый Asterisk.
Командная строка даст вам суперсилу: вы сможете диагностировать сбои, тонко настраивать систему и делать то, что недоступно через GUI. Давайте погрузимся!
Навигация по файловой системе
Представьте, что вы — исследователь, а файловая система — это карта. Вот как по ней перемещаться:
pwd(print working directory): Покажет, где вы сейчас находитесь.pwd # Вывод: /home/userls(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.txtmkdir(make directory): Создаёт новый каталог.mkdir -p /var/log/my_app/temp: Создаст всю цепочку каталогов, если их нет.
mkdir /home/user/backupscp(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.bakmv(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.confless: Просмотр больших файлов постранично, с поиском и прокруткой. Выход —q.less /var/log/asterisk/fullhead: Показывает первые 10 строк файла.head -n 20 file.txt: Выведет первые 20 строк.
head /etc/asterisk/sip.conftail: Показывает последние 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 asteriskchmod(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.comnetstat -tulnp(илиss -tulnpв новых системах): Покажет открытые порты и процессы, которые их используют. Это очень полезно для диагностики проблем с SIP-портами!netstat -tulnp | grep 5060 # Вывод: # udp 0 0 0.0.0.0:5060 0.0.0.0:* 2345/asteriskfirewall-cmd: Управление брандмауэромfirewalld.firewall-cmd --list-all: Показать все активные правила.firewall-cmd --add-port=5060/udp --permanent: Открыть UDP порт 5060 (для SIP).firewall-cmd --reload: Применить изменения.
Практическое задание
Время закрепить знания! Откройте терминал и выполните эти шаги:
- Проверьте статус Asterisk:
Используйте
systemctl status asterisk. Убедитесь, что служба запущена. - Просмотрите логи Asterisk:
Перейдите в каталог
/var/log/asterisk/и используйтеtail -f full. Попробуйте совершить тестовый звонок, чтобы увидеть, как логи обновляются. Это покажет вам, как Asterisk "думает". - Найдите конфигурационные файлы SIP:
Перейдите в
/etc/asterisk/и используйтеls -lh. Найдите файлы, связанные с SIP (например,sip.conf,pjsip.conf). - Сделайте резервную копию:
Скопируйте
sip.confвsip.conf.bakс помощью командыcp.
Освоение этих команд — ваш фундамент для глубокой работы с Asterisk. В следующем разделе мы углубимся в работу с конфигурационными файлами, используя эти команды для их просмотра и редактирования. Готовы? 😉