пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ Asterisk
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Во многих наших статьях проскакивают различные команды, связанные с файловыми манипуляциями – создание директорий, файлов, установка пакетов и т.д. В данной статье мы решили начать повествование последовательно.
Основы
Итак, в Linux в отличие от Windows существует понятие полного и относительного пути. Разница между ними в том, что полный путь всегда начинается с корневого каталога (корневой каталог обозначается как /), и далее также через слеш происходит перечисление всех названий каталогов на пути к искомому файлу или директории, а в случае относительного пути – в начале слеш не указывается. То есть без слеша путь указывается относительно нынешнего местоположения, а со слешем – относительно корневого каталога. Примеры:
/home/user1/tmp/test.sh - полный путь;
~/tmp/file1 - относительный путь;
Ниже вы встретите часто используемые команды для работы с файлами, архивами и установкой программ.
Команды для работы с файлами и директориями
Команд довольно много, я перечислю самые, на мой взгляд, часто используемые:
cd - смена директории на домашнюю, можно добавлять аргументы – к примеру, cd /root;
pwd - команда покажет текущий путь к директории, в которой вы находитесь в данный момент;
ls - вывод списка файлов и каталогов по порядку (наверное, самая известная команда) если добавить модификаторы lax, то команда выведет форматированный список всех файлов и директорий (в том числе скрытые);
cat - показывает содержимое файла, к примеру – cat /root/file.txt;
tail - например, tail /root/file.txt, выводит только конец файла, удобно при работе с логами;
cp - копирование директории или файла, то есть cp /root/file.txt /etc/folder1/file.txt – из /root файл будет скопирован в указанную директорию
mkdir - создание директории, например, mkdir /root/1;
rmdir - удаление директории, синтаксис такой же, как и у команды выше;
rm -rf - очень опасная команда (и довольно популярная в интернет фольклоре), но иногда и она может пригодиться – она удаляет директорию со вложенными файлами;
mv - переименование файла или директории, сначала указывается целевая директория и затем её новое название;
locate - поиск файла с заданным названием;
Для наглядности, посмотрите на вывод команды tail
# tail install.log
Installing dosfstools-3.0.9-4.el6.i686
Installing rfkill-0.3-4.el6.i686
Installing rdate-1.4-16.el6.i686
Installing bridge-utils-1.2-10.el6.i686
Installing eject-2.1.5-17.el6.i686
Installing b43-fwcutter-012-2.2.el6.i686
Installing latrace-0.5.9-2.el6.i686
Installing trace-cmd-2.2.4-3.el6.i686
Installing crash-trace-command-1.0-5.el6.i686
*** FINISHED INSTALLING PACKAGES ***
В примере выше, команда tail вывела только последние 11 строк.
Работа с архивами
Работа с .tar архивами – очень часто встречающаяся задача, поэтому хотим привести несколько полезных команд, чтобы не пришлось лишний раз пользоваться поисковиком :)
tar cf example.tar /home/example.txt - создание .tar архива, который будет содержать в себе текстовый файл example.txt;
tar cjf example1.tar.codez2 /home/example1.txt - команда с тем же функционалом, только будет использоваться сжатие Bzip2;
tar czf example2.tar.gz /home/example2.txt - опять архивация, только на этот раз со сжатием Gzip;
tar xf example.tar - распаковка архива в текущую директорию, если тип сжатия нестандартный, то после расширения нужно добавить тип сжатия (.codez2 или .gz соответственно);
Работа с .rpm пакетами
Так как мы больше всего рассказываем и пишем про FreePBX, который по умолчанию скачивается с официального сайта вместе c СentOS, здесь место для пары команд по работе c RPM пакетами. Почему? Потому что CentOS – RPM-based Linux Distribution :) Команды требуют наличие прав супер - пользователя.
rpm -qa - вывод списка всех установленных RPM пакетов в системе;
rpm –i rpmpackage.rpm - установка пакета с именем rpmpackage;
rpm –e rpmpackage - удаление пакета с таким именем;
dpkg -i *.rpm - установка всех пакетов в директории;
Про жёсткие диски
Команда fdisk –l выводит информацию о всех подключенных жёстких и сменных дисках в системе, бывает очень полезной. Ниже пример вывод этой команды (в качестве пример рассматривается OTRS - сервер)
umask 0077
В эпоху, когда многие процессы автоматизированы, люди постоянно ищут способы, как эффективно выполнять задачи. А почему бы и нет? Дорога каждая секунда!
Совершенно аналогично, если вы используете Unix-подобную операционную систему, вы можете сэкономить свое время, прибегнув к автоматизации задач посредством заданий Cron. Давайте быстро разберемся, как это работает, и рассмотрим несколько облачных решений, предназначенных для мониторинга заданий Cron.
Итак, что же такое задание Cron на самом деле?
Задание Cron – это программа-утилита, которая планирует сценарии и команды на сервере. У этой встроенной команды есть запланированное время и дата для того, чтобы она могла запуститься автоматически без ручной реализации.
Более того, задания Cron созданы именно для того, чтобы автоматизировать повторяющиеся задачи, например, удаление файлов в недельный срок, перезагрузка сервера или выполнение ряда других функций.
Основные элементы задания Cron
Задание Cron работает с тремя важными компонентами:
Сценарий. Сценарий – это первое, что внедряется в задание Cron и вызывается для исполнения.
Расписание. Расписание определяет, когда необходимо запускать указанные сценарии.
Действие. Действие – это порядок, в котором должен появляться результат после того, как сценарий будет полностью выполнен.
Типы заданий Cron, которые нужно контролировать
Конечно, если вы пропустили какое-то уведомление о заданиях Cron, это не будет иметь никаких моментальных негативных последствий, но, если говорить о долгосрочной перспективе, то это может препятствовать работе системы. Вот список некоторых заданий Cron, которые зачастую остаются незамеченными, если люди не используете хорошую службу мониторинга:
Резервное копирование
Обновление SSL-сертификата
Антивирусное сканирование
Динамическое обновление DNS
Перезагрузка сервера
и многие другие.
Приятные бонусы мониторинга заданий Cron
Если не принимать во внимание истинную эффективность заданий Cron, которые предлагают пошаговое управление текущим выполнением по мере того, как идет время, службы мониторинга обладают следующими «плюшками»:
Планирование заданий. С помощью любых выражений Cron и временных интервалов можно легко планировать задачи.
Мгновенные оповещения. Если какой-то прикладной процесс или задание занимает больше времени, чем было рассчитано, эти службы отправляют мгновенные оповещения.
Анализ метрик. Вы можете отслеживать все метрики заданий, и, кроме того, контролировать их для того, чтобы выполнить наиболее эффективные действия.
А теперь давайте рассмотрим несколько облачных решений для контроля за заданиями Cron.
1. Better Uptime
Better Upime – это современная служба мониторинга, которая объединяет мониторинг cron-заданий и периода работоспособности, управление инцидентами и страницы состояний в один прекрасно устроенный продукт.
Настройка занимает всего 3 минуты. После того, как вы настроите Better Uptime, каждый раз, когда ваше Cron-задание будет выполняться с ошибками, вы получите звонок, письмо на электронную почту или уведомление в Slack. Вот его основные особенности:
Проверки Cron-заданий, API, Ping, HTTP(s) соединений, срока действия SSL и TLD
Неограниченное количество уведомлений посредством телефонных звонков
Простое планирование по требованию
Скриншоты и журналы регистрации ошибок и инцидентов
Slack, Teams, Heroku, AWS и еще более 100 прочих интеграций
2. HealthChecks
HealthChecks считается одной из самых лучших систем мониторинга Cron-заданий за счет своей простоты и эффективности. Она будет оповещать вас о происшествиях из еженедельных отчетов, некорректном выполнении запланированных задач, сбоях резервного копирования и т.д.
У HealthChecks есть еще одна немаловажная особенность. Эта система предоставляет уникальный URL-адрес для каждого периодического задания, для которого выполняется мониторинг. Вы можете с легкостью проверять запросы HTTP-службы или отправлять электронные письма.
Если вы будете использовать HealthChecks, в конечном итоге, число скрытых сбоев уменьшится. У нее есть информационная панель, которая обновляется в режиме реального времени и предоставляет подробную информацию обо всех уведомлениях и проверках. Кроме того, вы можете присвоить имена или теги проверкам, чтобы в последствие вам было проще их различать.
Она имеет простую конфигурацию с параметрами «Grace Time» и «Period», с помощью которых вы можете указать различные подходы и статусы мониторинга. Таким образом вы можете добавить подробное описание для каждой проверки или Cron-задания.
Вы можете добавить указатели или заметки для вашей команды, чтобы она могла работать с ними дальше. Кроме того, вы можете просмотреть отправленную или полученную историю Ping. Есть и другие функции: индикаторы общедоступного статуса, поддержка Cron-выражений и интеграция со Slack, электронной почтой, Webhook, Microsoft Teams и т.д.
3. Cronitor
Cronitor может посодействовать вам в планировании заданий и сделать его более удобным с помощью быстрых уведомлений. Он может работать с несколькими типами Cron-заданий: запланированные события AWS, планировщик задач Microsoft, задание Jenkins, Cron-задание в Kubernetes, Cron-задание в Java и т.д.
Мониторинг контрольного сигнала позволяет получить понимание того, как работают конвейеры данных, фоновые задания, демон-процессы, сценарии, ETL-задания и т.д. Его можно без проблем использовать на любом языке или платформе, у него гибкие политики уведомлений и правила.
Кроме того, Cronitor предлагает мониторинг периода работоспособности веб-сайта, API, хранилища S3 и т.д.
4. Cronhub
Cronhub избавит вас от необходимости писать код для того, чтобы планировать и контролировать фоновые задания. Все, что вам нужно сделать, это сфокусировать свое внимание на своих приложениях и позволить им планировать ваши задачи. Как только в запланированных задачах появятся какие-либо отклонения, вы получите мгновенное уведомление о результатах мониторинга.
Вы можете планировать свои задания с помощью Cron-выражений и временных интервалов. Для этого вам нужно определить API или целевой URL-адрес, который будет выполняться в вашем задании. После чего Cronhub отправит HTTP-запрос к этому API или URL.
Если по какой-либо причине расписание заданий меняется, Сronhub сразу же оповестит вас через встроенные каналы, например, SMS-сообщения, Slack, электронную почту и т.д.
Кроме того, с помощью Cronhub вы можете отслеживать аналитическую информацию для ваших заданий, обеспечивать поддержку работы команды и доступ к журналам. В итоге это поможет вам найти бреши в вашем приложении, а также отследить фоновые задания.
5. Dead Man’s Snitch
Dead Man’s Snitch разогнался только тогда, когда службы мониторинга Cron-заданий уже успели наделать шуму. Его целью стала точка, в которой задания выставления счетов и резервного копирования работали не в соответствии со своими расписаниями.
Dead Man’s Snitch заботиться о том, чтобы задания Cron отслеживались так, как хотят того разработчики и пользователи. С его помощью вы можете контролировать Cron, планировщик Heroku и т.д. Для того, чтобы он имел возможность информировать пользователей о неисправностях любого рода, ему нужно уведомление от HTTP-клиента, например, cURL.
Curl – это фрагмент кода, который добавляется к концу строки Crontab в качестве расширения. Он выполняет запрос к Dead Man's Snitch для того, чтобы проверить, работает ли задание и работает ли оно корректно. Вы можете изменить URL-адреса snitch’а для разных заданий, чтобы получить результаты мониторинга для каждого из них.
Есть еще одна довольно интересная функция. Вы можете добавить к заданию функцию «Field Agent». Вы можете скачать и установить ее для того, чтобы получить более качественные результаты мониторинга, а также метрики и записи данных. С ее помощью вы можете проверять журналы регистрации ошибок Cron-заданий для того, чтобы разрешить их наилучшим образом.
Все эти функции – это идеальный комплекс, с помощью которого вы можете отслеживать фоновые задания более эффективно. Его цена начинается с 5 долларов в месяц за три snitch’а и неограниченное количество членов команды.
6. Web Gazer
Wen Gazer поможет вам планировать задания и запускать мониторинг выбранных Cron-заданий для того, чтобы вы могли отслеживать производительность.
В Web Gazer не бывает ложных оповещений, так как, прежде чем оповещения об инцидентах будут отправлены пользователю, все инциденты проверяются в течение буквально доли секунды. Кроме того, Web Gazer предоставляет функцию мониторинга контрольного сигнала и мониторинга SSL.
Его ценник начинается с 19 долларов в месяц, или же вы можете воспользоваться его бесплатной версией, в которой есть все основные функции.
Заключение
Будущее за автоматизацией.
С помощью планирования и мониторинга Cron-заданий вы сможете эффективно выполнять свою работу. А как иначе вы бы смогли узнать, что что-то идет не по плану? Но вам не о чем беспокоиться, потому что решения, которые мы привели выше, в итоге помогут вам оптимизировать ваши задания и устранить бреши, которые затрудняют работу пользователя.
В данной статье будет произведен общий обзор одного из важнейших модулей для FreePBX – System Status
Настройка
В данный модуль администратор АТС попадает сразу после прохождения процедуры авторизации, и здесь можно найти следующую информацию:
Количество одновременных вызовов
Количество активных транков
Использование центрального процессора/жёсткого диска/сетевых ресурсов
Статус Asterisk/Apache/MySQL/SSH серверов
Статус основных компонент АТС
Общий вид данного модуля можно увидеть на скриншоте ниже:
Далее пройдемся по каждому разделу, начиная со статистики:
На графиках изображена по умолчанию статистика по зарегистрированным телефонам, транкам и активным звонкам. В данном случае – два транка онлайн, один зарегистрированный экстеншен, и ноль активных вызовов. На рисунке видно, что статистику можно вывести за час, день, неделю или месяц:
Далее можно в таком же виде посмотреть статистику по аптайму сервера с АТС, загрузку процессора, использование памяти, дискового пространства и использования полосы.
Конечно, данную информацию так же можно получить с помощью CLI – но, на мой взгляд, так удобнее и нагляднее.
Следующий раздел – System Overview
Так же очень важный раздел – здесь демонстрируется статус ключевых подсистем – сам Asterisk, MySQL, Apache (Web Server) и так далее. Кроме того, под надписью «Show New» находятся уведомления:
Количество модулей, доступных для обновления
«Неподписанные» модули (которые теоретически могут являть собой уязвимость)
Ошибки модулей
Ошибки в маршрутизации (например, очередей - Queues)
И многие другие. Кроме того – сразу виден номер версии FreePBX. В данном случае – 13.0.120
Следующий раздел – краткая статистика по аптайму и нагрузке на сервер
Так же в данном модуле есть возможность подключения необходимой информации по RSS (в Advanced Settings)
Кроме того, в Advanced Settings имеется возможность настройки собственного логотипа и дальнейшей кастомизации Dashboard.
