По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Сейчас вы точно прочувствуете важное команды screen. Бывало ли у вас такое, что вы выполняете (очень долго) команду в консоли - CLI на удаленной машине, будучи подключенным через SSH? Команда долго выполняется и близится к завершению как вдруг пропадает подключение, рвется SSH подключение и все, что вы делали - пропало? Прости, что напомнили. Знаем, это болезненно. Что же, вытрем слезы. Для этих ситуаций есть команда screen о которой мы и поговорим. Немножко теории Так называемый screen это терминальный мультиплексор (нас тоже пугает это слово). Другими словами, оно дает нам возможность внутри действующей сессии открыть сколько угодно много виртуальных окон/терминалов. Что важно - процесс, запущенный внутри сессии через screen, будет продолжаться даже тогда, когда вы отключитесь от самой первой сессии. Установка screen в Linux Вообще, пакет screen предустановлен на большинстве современных Linux - дистров. Проверить можно командой: screen --version Screen version 4.00.03 (FAU) 23-Oct-06 Если случилось так, что у вас его нет - это можно быстро исправить простой установкой. Установка screen в Ubuntu и Debian apt install screen Установка screen в CentOS и Fedora yum install screen Запуск screen в Linux Чтобы запустить screen в консоли, просто наберите screen. Что может быть проще, не правда ли? screen У вас откроется новая сессия в новом окне. Уже здесь вы можете вводить все нужные shell команды. Находясь в режиме скрина (screen) вы можете посмотреть список доступных вам команд управления этим режимом. Вот так: Ctrl+a и ? Если не получается нажать указанную выше комбинацию, можно поступить проще: нажмите отдельно Ctrl+a, отпустите, а затем в консоль наберите ? и нажмите Enter Сессия screen с именем Ну очень удобная фича. Если вы делаете несколько процессов параллельно, просто обзовите их так, чтобы потом понять, что и где выполняется. Синтаксис такой: screen -S имя_сессия_скрин Например, вы можете запустить ping - замер хоста с 1С и назвать сессию так: screen -S pings_towards_1C Всегда используйте скрин именно так. Будет значительно удобнее. Как правильно работать с окнами в Windows Как мы уже сказали, когда вы создаете новую screen - сессию, вы создадите новое окно с shell оболочкой внутри. И что интересно - внутри скрин сессии вы можете создать множество дополнительных окон. Чтобы это сделать, воспользуйтесь командой (внутри скрина) Ctrl+a и c. Новому окну будет назначен номер от 0 до 9 (первый свободный). Ниже мы собрали все команды, которые понадобятся вам для управления скринами: Ctrl+a и c - создать дополнительное окно ; Ctrl+a и " - показать список всех имеющихся окон; Ctrl+a и 0 - переключиться на окно с номером 0 (номер может быть иной); Ctrl+a и A - переименовать текущее окно; Ctrl+a и S - разделить окно по горизонтали на две области; Ctrl+a и | - разделить окно по вертикали на две области; Ctrl+a и tab - переключить рабочий фокус на следующую область разделенного окна; Ctrl+a и Ctrl+a - переключить рабочий фокус на предыдущую область разделенного окна; Ctrl+a и Q - закрыть все разделенные области кроме; Ctrl+a и X - закрыть текущую область; Выход из screen сессии Вы можете легко выйти из screen - сессии набрав: Ctrl+a и d Самое важное: запущенная вами в этот момент команда не остановится и будет продолжать свое выполнение. Возврат к screen сессии Чтобы вернуть к screen - сессии используйте команду: screen -r Если у вас запущено больше чем одна screen - сессия, то после ключа r нужно указать ее ID. Узнать его просто с помощью команды: screen -ls Вывод этой команды будет выглядеть вот так: screen -ls There are screens on: 32328.pings_towards_1C (Detached) 32482.wiki.merionet.ru_is_one_love (Detached) 2 Sockets in /var/run/screen/S-root. В выводе выше мы выделили ID - сессий. Например, чтобы вернуться к сессии 32328 (pings_towards_1C), дайте команду: screen -r 32328 Немножко кастомизации screen под вас Когда screen запускается, он считывает свои конфигурационные параметры из /etc/screenrc и ~/.screenrc, если файл присутствует. Так вот - мы можем легко перенастроить предпочтения использования screen и сделать это в файле .screenrc. Посмотрите пример с комментариями, как мы закастомили screen для себя: # Выключаем приветствие startup_message off # включаем визуальный звонок vbell off # буфер для сохраненных строк делаем 10000 defscrollback 10000 # кастомим строку состояния hardstatus alwayslastline hardstatus string '%{= kG}[ %{G}%H %{g}][%= %{= kw}%?%-Lw%?%{r}(%{W}%n*%f%t%?(%u)%?%{r})%{w}%?%+Lw%?%?%= %{g}][%{B} %m-%d %{W}%c %{g}]' Типовой сценарий использования screen Общий случай, так сказать. Обычно он состоит из следующих шагов: После SSH подключения к серверу, набираем screen; Запускаем интересующую нас команду в режиме screen - сессии; Выполняем команду Ctrl + a и d, чтобы выйти из режима работы с экран-сессией Через какое-то время возвращаемся к запущенному ранее экрану командой screen -r Выводы Мы разобрались, как создавать screen сессии, управлять ими внутри, открывая новые окна, выходить из их режима управления (без прекращения выполнения команды), делить горизонтально и вертикально экраны. Ах да, ещё мы научились кастомизировать screen под себя. Профит!
img
Что такое API? Поскольку мы говорим про REST API, то наше определение API не будет сильно выходить за тематику сетей. Подробнее про API можно прочитать тут. API означает Application Programming Interface. API задает связь между программами для возможности передачи данных. То, что программа имеет API, подразумевает, что она передает часть своих данных для использования клиентом. Клиентом может быть фронтенд часть той же самой программы или другая внешняя программа. Для получения этих данных необходимо отправить структурированный запрос на API. Если запрос удовлетворят желаемым требованиям, то ответ, содержащий данные, будет отправлен туда откуда был сделан запрос. Обычно ответ представлен в формате JSON или XML. В некоторых случаях, для получения доступа к внешнему API, от вас может потребоваться авторизация. Каждый API имеет документацию, в которой говорится какие данные доступны и как структурировать свой запрос для получения правильного ответа. Примеры API Рассмотрим в качестве примера реальную ситуацию. Представьте посещение нового ресторана. Вы пришли, чтобы заказать еду, а поскольку вы здесь впервые, то точно не знаете какие блюда они подают. Официант дает вам меню, в котором можно выбрать, чтобы вы хотели съесть. После того, как выбор сделан, официант отправляется на кухню и приносит вам еду. В данном случае официант - это API, который обеспечивает вашу взаимосвязь с кухней. Документация API - это меню. Запрос выполняется в тот момент, когда вы отмечаете желаемые блюда, а ответ - это блюда, которые вам принесли. Что такое REST? REST означает REpresentational State Transfer (передача состояния представления). Это стандарт, который определяет форму и работу процессов, позволяющих нам взаимодействовать с данными на вебсерверах. Приведенное выше определение может выглядеть не так сложно или «профессионально», как то, что вы могли встретить в интернете, но главное, чтобы вы поняли основную цель REST API. API, который удовлетворяет некоторым или всем шести руководящим ограничениям REST считается RESTful. Мы можем взаимодействовать с серверами при помощи протокола HTTP. Благодаря этим протоколам мы можем Create (создавать), Read (читать), Update (обновлять) and Delete (удалять) данные – также известные как CRUD операции. Но каким образом мы можем выполнять CRUD операции и взаимодействовать с данными на сервере? Мы делаем это, посылая HTTP запросы, и это тот самый момент, когда REST начинает действовать. REST упрощает процесс взаимодействия с сервером, предоставляя различные HTTP методы/операции/команды, с помощью которых можно посылать запросы на сервер. Как взаимодействовать с сервером, используя REST API? Как мы уже обсуждали, REST API облегчает процесс взаимодействия с сервером, предоставляя нам различные методы HTTP запросов. Наиболее распространенные методы: GET: Метод get используется для Чтения данных с сервера. POST: Метод post используется для Создания данных. PATCH/PUT: Метод patch используется для Обновления данных. DELETE: Метод delete используется для Удаления данных. Эти методы предоставлены нам REST, что упрощает выполнение CRUD операций. Таким образом: Создать => POST Прочитать => GET Обновить => PATCH/PUT Удалить => DELETE Если мы хотим сделать запрос на сервер, например, для получения данных, то мы отправляем запрос GET на узел/источник данных на сервере. Узел данных аналогичен URL. Если запрос составлен корректно, то сервер отправит нам в ответ запрашиваемые данные. Также он отправит код состояния, где 200 - это успешное выполнение, а 400 - это ошибка пользователя. Пример запроса на JSONPlaceholder API, используя JavaScript: fetch('https://jsonplaceholder.typicode.com/todos/1') .then(response => response.json()) .then(json => console.log(json)) При выполнении запроса с использованием fetch API по умолчанию используется метод GET, поэтому мы можем не указывать его явно. Но мы должны будем это сделать при использовании других методов. В приведенном выше примере, узел данных - это https://jsonplaceholder.typicode.com, а запрашиваемые нами данные - это один элемент todo. Данные будет получены в JSON формате. Если бы мы использовали запрос POST, тогда бы мы использовали метод POST, а в теле запроса находились бы данные, которые мы создали для отправки на сервер. Для удаления нам потребуется использовать соответствующий запрос, содержащий id элемента todo, который мы хотим удалить. Например: fetch('https://jsonplaceholder.typicode.com/posts/3', { method: 'DELETE', }); Для обновления данных нужно, чтобы запрос содержал id и данные для обновления. Как в этом примере: fetch('https://jsonplaceholder.typicode.com/posts/5', { method: 'PATCH', body: JSON.stringify({ title: 'new todo', }), headers: { 'Content-type': 'application/json; charset=UTF-8', }, }) .then((response) => response.json()) .then((json) => console.log(json)); Заключение В этом руководстве вы узнали, что такое REST и как он помогает нам эффективно взаимодействовать с сервером. Мы дали определение API и рассмотрели пример, который помог объяснить его смысл. Мы также узнали некоторые методы REST для создания, чтения, обновления и удаления данных, хранящихся на сервере.
img
Всем привет! В сегодняшней статье расскажем об одном из самых полезных, на наш взгляд, коммерческих модулей FreePBX и продемонстрируем процесс его настройки. Особенно поможет данный модуль системным администраторам, которым часто приходится подготавливать телефонные аппараты для новых сотрудников, а также обслуживать и обновлять их. Итак, встречайте - модуль EndPoint Manager! Его стоимость на момент написания статьи 17.01.18 составляет 149$ (8 418 рубля), лицензия предоставляется на 25 лет. Согласитесь, в масштабах компании - это не такая большая сумма, а время Вашего админа – бесценно :) /p> Конечно, если Вы являетесь счастливым обладателем телефонов от Sangoma, то благами модуля EPM вы можете пользоваться бесплатно :) Обзор Модуль EndPoint Manager позволяет организовать функционал auto-provisioning, когда телефонный аппарат нужно только подключить к сети, а все необходимые настройки он автоматически скачает с сервера, после чего сразу же будет готов к работе. Помимо телефонных аппаратов, с помощью данного модуля можно также настраивать шлюзы, конференц-фоны, беспроводные трубки, дверные телефоны и пэйджинг устройства самых популярных производителей VoIP оборудования: Aastra Algo AND Audiocodes Cisco Cortelco Cyberdata Digium Grandstream HTek Mitel Mocet Obihai Panasonic Phoenix Audio Polycom Sangoma Snom Uniden Vtech Xorcom Yealink Полный список конкретных поддерживаемых устройств можно найти на сайте разработчика: https://wiki.freepbx.org/display/FPG/EPM-Supported+Device Основное предназначение EPM - это создание шаблонов (template) с необходимыми настройками, которые потом можно применять на одном или группе аналогичных устройств, что сводит подготовку устройств к минимуму. Общий механизм работы примерно такой - После создания шаблона с настройками для определённой модели телефонного аппарата, администратор, с помощью модуля EPM, привязывает данный шаблон к конкретному внутреннему номеру (extension) по MAC адресу данного устройства. После этого автоматически создаётся конфигурационный файл вида ХХХХ.cfg, где ХХХХ – MAC адрес устройства, который, сервер FreePBX с установленным EPM, хранит на файловом хранилище. Когда телефонный аппарат подключается в сеть, то вместе с IP адресом, он получает по DHCP адреса сервера (option 66), на котором для него создан файл конфигурации. После чего телефон обращается на данный сервер и скачивает готовую конфигурацию и, опционально, актуальную прошивку. То есть, по сути, для того чтобы ввести новый телефон в эксплуатацию, нам нужно только подключить его в сеть, узнать его MAC адрес и всё! Более подробно про процесс auto-provisioning и option 66 можно почитать в нашей статье Модуль имеет несколько подразделов, каждый из которых имеет своё предназначение, рассмотрим их: Global Settings - в данном разделе настраиваются общие параметры модуля, такие как внутренняя и внешняя адресация, порты, административные и пользовательские пароли для устройств Extension Mapping - данный раздел предназначен для настройки соответствия внутреннего номера, настроенного на IP-АТС и назначения определённого шаблона конфигурации. Привязка происходит по MAC адресу аппарата Brands - данный раздел содержит шаблоны конфигураций для определённого бренда и моделей VoIP оборудования. Брендов может быть несколько, они добавляются в разделе Add Brand. По умолчанию тут только шаблон для телефонов Sangoma. Add Brand - здесь Вы можете добавить новый бренд, для которого в дальнейшем будете создавать шаблоны конфигураций Image Management - данный раздел предназначен для управления фоновым изображением на телефонном аппарате, если конечно он его поддерживает Ringtone Management - данный раздел предназначен для управления рингтонами звонка на телефонном аппарате; Basefile Edit - с помощью данного раздела можно изменять дефолтные параметры самих шаблонов для любой модели телефона. Как правило, это подразумевает редактирование XML файла конфигурации. Custom Extensions - данный раздел предназначен для настройки телефонных аппаратов, которые не зарегистрированы на вашей АТС. Поскольку модуль EPM по умолчанию видит только пул внутренних номеров локальной АТС, то для настройки удалённых устройств, например с другой АТС, необходимо сначала объявить их в этом разделе. Firmware Management - данный раздел позволяет управлять прошивками устройств всех брендов. Помимо этого, можно управлять их версиями и назначать определённому шаблону ту или иную версию прошивки. Network Scan - с помощью данной утилиты можно просканировать сеть и получить список MAC адресов устройств, которым ещё не назначены шаблоны конфигураций и сразу же их назначить через раздел Extension Mapping. Стоит отметить, что поскольку MAC адреса не маршрутизируются, то определить можно только устройства, находящиеся в одной сети с IP-АТС, поэтому здесь нужно указывать локальную сеть. То есть, например, если IP адрес Вашей АТС – 192.168.11.64/24, то Вы сможете успешно просканировать только устройства в сети 192.168.11.0/24. Настройка Рассмотрим подробнее каждый из разделов, описанных выше. После установки, модуль появляется в разделе Settings. Доступ к разделам модуля осуществляется по нажатию на кнопку в правом углу: Первое, с чего необходимо начать - это глобальные настройки Global Settings. Internal IP - здесь указываем локальный адрес нашей IP- АТС. Можно ввести слово auto, тогда локальный IP адрес будет определён автоматически. External IP - в этом поле указываем внешний адрес нашей IP-АТС или валидный FQDN. Это поле нужно только если у вас есть телефоны, которые подключаются из вне. Можно ввести слово auto, тогда внешний IP адрес будет определён автоматически, чтобы не использовать данное поле – введите none Ports - данная секция отображает номера портов, которые настроены для различных сервисов - Web Server - порт для доступа к вэб-интерфейсу модуля, HTTP Provisioning - порт для auto-provisioning по протоколу HTTP, TFTP Provisioning - порт для auto-provisioning по протоколу TFTP, RESTful Apps - порт использующийся для интеграции Phone Apps с IP-АТС. Номера данных портов настраиваются в модуле System Admin, настроить через EPM их нельзя. Phone Admin Password - здесь можно административный пароль для доступа к вэб-интерфейсу телефонных аппаратов. Пароль будет одинаковым для всех устройств под управлением модуля EPM Phone User Password - некоторые телефоны имеют разные уровни доступа к вэб-интерфейсу управления. В данном поле можно настроить пароль для пользовательского уровня. ReSync Time - время, по истечению которого телефон будет заного запрашивать конфигурацию с сервера, чтобы актуализировать её. По умолчанию это день – 86400 секунд XML-API (RestAPI) Default Login - разрешает доступ к Phone Apps, если это поддерживается телефоном. Extension Mapping IP Address и Phone Status - здесь настраивается как будет отображаться статус телефонного аппарата в разделе Extension Mapping. Можно показывать IP адрес телефона и время последнего ping’а данного аппарата По завершению настроек необходимо нажать Save Global Теперь, когда у нас есть глобальные настройки, можно добавлять и настраивать шаблоны для любых брендов телефонных аппаратов, которые будут подключаться к нашей IP-АТС. Для этого открываем меню и кликаем Add Brand, перед нами откроется список поддерживаемых производителей, выберем Cisco. После этого, перед нами откроется окно с параметрами настроек нового шаблона для устройств Cisco: Внимание! Дальнейшие параметры могут отличаться в зависимости от выбранного в предыдущем шаге производителя. Ниже будет приведён пример для Cisco Template Name - имя шаблона. Рекомендуем указывать здесь модели, для которых создаётся шаблон, а также для каких телефонных аппаратов он предназначен – локальных или удаленных. Например, в нашем случае шаблон будет для локальных телефонов Cisco SPA 504G Destination Address - адрес IP-АТС, на который телефон будет обращаться для того, чтобы зарегистрироваться. Значения Internal и External берутся из Global Settings или же вы можете указать адрес вручную нажав Custom Provision Server Protocol - протокол, который будут использовать телефоны для получения своих конфигурационных файлов - TFTP или HTTP Provision Server Address адрес provisioning сервера, на который телефон будет обращаться для получения конфигурации. Значения Internal и External берутся из Global Settings или же вы можете указать адрес вручную нажав Custom. В нашем случае - Destination Address и Provision Address будут совпадать и являться адресом IP-АТС 192.168.11.64, это наиболее распространённый случай. Time Zone - временная зона Primary Time Server и Time Server 2 - сервера синхронизации времени NTP Daylight Savings - включает переход на летнее время Background Image - фоновое изображение для телефонного аппарата. Загружается в разделе Image Management Line Label - позволяет вывести идентификатор линии на LCD экран телефона (если он есть): Extension - выводит внутренний номер, например “7007” Name - выводит имя внутреннего номера, например “Alex Dobronravov” Name-Extension - выводит имя и номер, например “Alex Dobronravov 7007” Обратите внимание, что в зависимости от используемого телефона количество отображаемых символов может быть ограничено Dial Pattern - здесь можно поменять стандартные шаблоны набора номера, используемые телефоном. Символы в данном поле будут зависеть от выбранного производителя Firmware Version - здесь мы можем настроить загрузку прошивок для моделей телефонных аппаратов, для которых создаётся шаблон. При нажатии на кнопку Firmware Management мы попадаем в соответствующий раздел, в котором уже доступны все прошивки для телефонов Cisco (в том числе и для нужного нам SPA 504G), выберем самый актуальный пак. В каждом паке содержатся прошивки для разных моделей телефонов. Из пака загружаются только прошивки для моделей, которые выбраны в шаблоне. Можно указать разные версии прошивок, для этого нужно выбрать разные паки в Firmware Slot 1 и с После чего в настройках шаблона в поле Firmware Version мы можем выбрать нужный слот, чтобы загрузить его на все телефонные аппараты, которые будут выбраны в данном шаблоне. Available Phones - в данном списке находим нужную нам модель телефонного аппарата (в нашем случае – SPA 504G) и кликаем на неё. После чего перед нами открывается окно с настройками кнопок телефонного аппарата. Доступные настройки будут зависеть от выбранной модели В данном случае мы настроили на первой кнопке телефона SPA 504G отображение линии, а на второй BLF по номеру 3032. Отметим, что подобная конфигурация будет присвоена всем телефонам, которым мы назначим данный шаблон. Если их много, то некоторым, например, может не понадобиться BLF одного и того же номера, учитывайте это. В дальнейшем, настройки кнопок можно будет изменить для каждого телефона индивидуально. Отметим также, что можно создать один шаблон для нескольких моделей телефонов (а также для панелей расширения Expansion Module и других устройств, например, в случае Cisco - FXS), для этого просто отметьте и настройте необходимые модели: По завершению настройки шаблона доступно несколько опций сохранения - Save - просто сохранит новый шаблон, Save and Rebuild Config(s) - сохранит конфигурацию подготовит её к загрузке на телефоны, которые используют данный конфиг при следующем цикле синхронизации, Save, Rebuild and Update Phones - данный вариант перезапишет новую конфигурацию, подготовит её к загрузке на телефоны, которым назначен данный шаблон и отправят её на эти телефоны, что может вызвать перезагрузку телефонов. Стоит отметить, что пока никаким телефонам не назначен данный шаблон – при использовании опций Save and Rebuild Config(s) и Save, Rebuild and Update Phones ничего не произойдёт, опции действуют только когда в разделе Extension Mapping есть активные устройства. Для более тонкой настройки параметров, которые невозможно настроить стандартными средствами шаблона, используйте функционал Basefile Edit. Он предназначен для опытных пользователей и позволяет править конфигурацию шаблона для определённой модели на уровне её конфигурационного файла, как правило – формата XML Завершение настройки и назначение настроенного шаблона телефонным аппаратам Теперь, когда мы закончили с настройкой шаблона, самое время привязать его к внутреннему номеру и к конкретному телефонному аппарату. Для этого есть 2 способа: Предварительно убедитесь, что настраиваемые телефонные аппараты подключены в сеть и получают адреса по DHCP. Также, на DHCP сервере должна быть настроена опция 66 (option 66), сообщающая телефону адрес provisioning сервера, на котором хранится конфигурация. Заходим в раздел Extension Mapping и нажимаем Add Extension. Выбираем внутренний номер, из списка зарегистрированных на нашей IP-АТС, которому хотим назначить шаблон (тут также можно настроить Custom Extension, о котором говорилось выше), далее выбираем учётную запись SIP, в нашем случае - Account 1. Во втором столбце выбираем бренд - Cisco и ниже прописываем MAC адрес настраиваемого телефона. В последнем столбце выбираем шаблон, который мы только что настроили (в нашем случае spa504g_internal) и модель телефона (в нашем случае Cisco SPA 504G) После этого выбираем способ сохранения конфигурации и нажимаем Use Selected. Мы выбрали Save, Rebuild and Update Phones, чтобы конфиг сразу же отправился на телефон. Заходим в модуль Extensions ищем нужный внутренний номер и открываем вкладку Other. В разделе Endpoint заполняем необходимые поля и нажимаем Submit В обоих случаях, после данных манипуляций, создаётся конфигурационный файл XXXXYYYYZZZZ.cfg , где XXXXYYYYZZZZ – МАС адрес телефонного аппарата и хранится в файловом хранилище сервера. Когда телефон подключится в сеть, то от DHCP сервера он получит IP адрес, а также через опцию 66 – адрес provisioning сервера, в нашем случае – это TFTP сервер 192.168.11.64. Телефонный аппарат обратится на TFTP сервер и скачает от туда свой конфигурационный файл XXXXYYYYZZZZ.cfg. Таким образом, телефон будет сразу готов к работе.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59