По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Удобный, простой, да и просто родной - SSH и telnet клиент Putty является неотъемлемым инструментом в работе системного администратора, сетевого инженер, девопса, да и вообще кого угодно из IT. Клиент умеет многое - от простого подключения к CLI сервера, до установления SSH туннеля с помощью путти. Ловите гайд о том, как максимально быстро скачать putty, установить и начать пользоваться. История! В целом, самое название PuTTY не имеет какого - либо устойчивого значения. Однако, исторически, tty - телетайп (англ. teletypewriter), это утилитка для Unix подобных систем, которая выводит имя терминала. Скачать Putty ”Бессмертная” ссылка, с которой берет начало любое SSH/telnet подключение к серверам. Скачать Putty Перейдя по ссылке, вы увидите фразу "You can donwload PuTTY here". Кликайте на этот самый "хир" и скачивайте нужный файл: Установить Putty Загрузив .msi инсталлятор, запускаем его: Нажмите Next: Указываем путь установки. Оставьте по умолчанию, почему нет? А здесь смело нажимайте Install. Начнется установка путти на ваш “комплюктер”. По окончанию установки нажмите Finish: Запустить Putty Находим значок Putty и запускаем ПО. Что нужно сделать чтобы подключиться по SSH к хосту? А вот что: Просто укажите IP - адрес/имя хоста и выберите тип подключения (в примере SSH). Хотите подключиться по Telnet? Нет проблем. Выберите чекбокс с телнетом. Как только укажите нужные параметры, кликайте кнопку Open. Готово! Введите авторизационные данные и наслаждайтесь подключение к командной строке (CLI).
img
В данной статье мы рассмотрим работу с пакетами и менеджерами пакетов в Red Hat (CentOS) операционных системах. Для работы с пакетами в операционных системах используют yum и rpm. В современной версии используется пакетный менеджер dnf, но он является "форком" от пакетного менеджера yum. Данный пакет разрабатывался в целях решить проблему производительности в первую очередь и в принципе он очень похож, поэтому мы посмотрим в статье на примере классических пакетных менеджеров. В статье мы рассмотрим следующие вопросы: Установка, удаление и обновление пакетов. Поиск пакетов и их зависимостей. Получение полной информации о пакетах. В статье нам понадобится понимание: rpm утилита управления пакетами в Red Hat системах. rpm2cpio разбор пакета на двоичные файлы. yum программа для работы с пакетами в Red Hat системах yumdownloader скачивание пакетов /etc/yum.repos.d./ - перечень репозиториев. Если сравнивать с Ubuntu можно сказать, что вместо dpkg у нас будет rpm, а вместо apt будет yum и дополнительные особенности centos. Открываем консоль. Переходим в режим суперпользователя, команда su. Посмотрим на команду rpm --help. Функционал достаточно большой, все ключи на один экран не помещаются. Есть опции по запросу и проверке пакетов можно найти ключи в секции queryverify. Очень мощная утилита, но для работы все таки удобнее использовать пакетный менеджер yum. Попробуем воспользоваться rpm, чтобы посмотреть его особенности. Лучше всего смотреть на примере. Скачаем программу webmin в виде установочного rpm пакета. Скачали пакет и положили в директорию tmp. Переходим в нее cd /tmp. Далее можно посмотреть наличие файлов ls la. Установим данный пакет. Для установки используем два ключа, ключ i означает install, ключ v означает verbose показывать ход установки. rpm iv webmin-1.955-1.src.rpm Пакет установился. Можно теперь зайти в браузер и начать работу, но цель была посмотреть, как работает rpm. Для того, чтобы удалить пакет необходимо использовать ключ e, который означает erase. Команда будет выглядеть следующим образом: rpm e webmin Название пакета можно полностью не писать, должно работать. Для того, чтобы проверить ключ у скаченного пакета есть ключ K. rpm K webmin-1.955-1.noarch.rpm Как из вывода видим, с пакетом не все в порядке отсутствует ключ для расшифровки подписи. Но данному пакету можно доверять, т. к. он скачан из надежного источника и качали сами. Для того, чтобы проверить состоянии самого пакета есть другой ключ V rpm Vv webmin-1.955-1.noarch.rpm Можно получить информацию о пакете для этого необходимо использовать ключи qi, где query information. rpm qi webmin-1.955-1.noarch.rpm В данном выводе мы можем много информации получить о пакете, Название, Версия, дата сборки и т.д. Возможно, когда-то может возникнуть необходимость посмотреть из чего состоит пакет rpm и разобрать его на составные части. Для этого необходимо использовать небольшую утилиту rpm2cpio. Расшифровывается т.е. rpm переделывается в cpio "copy inputoutput" это и двоичный архиватор, и формат файла. Сейчас пакет rpm должен пере паковаться в формат cpio. Пользоваться следующим образом: rpm2cpio webmin-1.955-1.noarch.rpm > webmin.cpio Как мы видим, получили еще один файл с расширением cpio и вот этот файл в формате родном для других unix систем. И так RPM это такая низкоуровневая утилита, которая позволяет работать с RPM пакетами. YUM Родной и понятный yum, так же имеет файл помощи, как и все другие утилиты. yum help У него меньше опций, меньше возможностей. И есть большое количество команд, проверить, очистить, удалить, получить информацию. Здесь не просто уже ключи, а целые слова и маленькие опции для комфортной работы. Например, мы можем написать: yum install openssh-clients Можно видеть, как он ищет проверяет и говорит, что данный пакет установлен, последняя версия пакета и ему нечего делать. Для удаления мы даем команду: yum remove openssh-clients Он запросит подтверждение на данное действие и если мы подтвердим, то утилита будет удалена. Можно удалить весь ssh: yum remove openssh, но тогда будет предупреждение, что обнаружена одна зависимость от openssh-clients и, если мы подтвердим обе утилиты будут полностью удалены. Т.е это умный пакетный менеджер позволяет работать так, чтобы лишние утилиты не болтались, т.е он сам находит и разрешает зависимости. Еще интересный факт, что при установки пакетный менеджер проверяет зеркала и кэш, что ему позволяет определять, что установлена последняя версия программного обеспечения. В отличии от пакетного менеджера apt (Ubuntu), которому надо сначала обновить кэш apt update, yum автоматически сам обновляет информацию в процессе установки пакетов. Репозиторий yum находится в следующей директории и лежат как отдельные файлы. /etc/yum.repos.d/ Посмотрим базовый репозиторий cat CentOS-Base.repo Написано, что это зеркало для подключения клиентов и проверки статуса обновлений. Тут мы можем увидеть имя репозитория и зеркала где находятся обновления. Есть еще ключи, которые можно проверять, а можно и не проверять. Если мы изменим строчку gpgcheck = 0 то проверка осуществляться не будет. Можно самостоятельно добавить репозиторий, создав файл с расширением repo. И тогда получится свой репозиторий. Для обновления всех пакетов используется команда yum upgrade. Если пакетный менеджер видит обновления, то он предложит сделать выбор установить или нет. Дополнительно есть утилита для просто закачки пакетов без установки yumdownloader. Работает просто. Переходим в нужную директорию и вводим, например, yumdownloader openssh и происходит закачка. И последнее пакетный менеджер умеет искать пакеты. Например, yum search openssh.
img
Сегодня хотим рассказать про любопытный сценарий, которой наверняка может быть полезен в сфере E-commerce. Речь пойдет про автоматизацию клиентского обслуживания, а именно: /p> Клиент звонит в интернет – магазин и ему предлагают ввести номер заказа; Введенные абонентом значения по DTMF передаются в AGI скрипт; По номеру заказа, мы формируем SQL – запрос к базе данных, где храним информацию о заказах. Из соответствующей таблицы мы получаем статус заказа и имя клиента; Мы формируем строку, которую необходимо озвучить клиенту и отправляем ее на аудио-генерацию в сторону API Yandex.SpeechKit (TTS технология – text to speech); Получаем аудио файл от Yandex, декодируем его в нужный нам формат (.wav, 8k) и воспроизводим клиенту; Удаляем воспроизведенный файл и завершаем звонок клиента; На наш взгляд это любопытная автоматизация. Приступаем к настройке? :) Получение API - токена Yandex.SpeechKit Для знакомства с технологией Яндекс предоставляет бесплатный тестовый период в 1 месяц с момента отправки первого запроса. После этого, чтобы продолжить использование Yandex. SpeechKit Cloud нужно заключить договор. Подробности условия использования можно прочитать здесь. Первым делом перейдите в кабинет разработчика по ссылке https://developer.tech.yandex.ru и нажмите Получить ключ: Имя ключа - введите имя для ключа. Например, Asterisk + TTS; Подключение - выберите из списка SpeechKit Cloud; Запоминаем значение, которое выделено красным на скриншоте выше – это и есть ваш токен. Переходим к настройке AGI – скрипта. Создаем таблицу с заказами Создадим SQL – таблицу, в которой будем хранить данные о заказах. В лабораторных целях, мы развернем ее на том же хосте, что и IP – АТС Asterisk (+ это снизит задержку и процессинг по времени). Итак, вводим следующие команды в консоли сервера (предварительно подключитесь по SSH): use asteriskcdrdb; CREATE TABLE zakazy(name varchar(20),phone varchar(20),nomerzakaza varchar(20),status varchar(20)); INSERT INTO zakazy (name, phone, nomerzakaza, status) VALUES ("Александр", "79257777777", 300388, "Отправлен"); INSERT INTO zakazy (name, phone, nomerzakaza, status) VALUES ("Иван", "79251111111", 476656, "Оплачен"); INSERT INTO zakazy (name, phone, nomerzakaza, status) VALUES ("Сергей", "79252222222", 0089822, "Доставлен"); Мы создали и наполнили таблицу. Теперь необходимо создать пользователя, который сможет иметь SELECT – доступ к таблице: CREATE USER 'логин_mysql'@'localhost' IDENTIFIED BY 'пароль_mysql'; GRANT SELECT ON asteriskcdrdb.zakazy TO 'логин_mysql'; Запомните ваш логин и пароль и переходите к следующему шагу – адаптации скрипта AGI. Традиционно, комментарии к коду после двойного слеша //: AGI - скрипт Ниже представлена структура скрипта: #!/usr/bin/php -q <?php error_reporting(0); require('phpagi.php'); $agi = new AGI(); $result = $agi->get_data('custom/generate', 6000, 10); //принимаем DTMF от клиента; $number= $result['result']; //записываем в переменную введенный клиентом номер заказа; $hostname = "localhost"; // у нас localhost. У вас может быть IP адрес сервера, на котором хранится БД с заказами (настройте предварительно pg_hba.conf на удаленном хосте); $username = "логин_mysql"; // логин, который вы создали этапом ранее; $password = "пароль_mysql"; // пароль, который вы создали этапом ранее; $dbName = "asteriskcdrdb"; mysql_connect($hostname,$username,$password) OR DIE("Не могу создать соединение "); mysql_select_db($dbName) or die(mysql_error()); $query = "SELECT * FROM zakazy WHERE `nomerzakaza`='$number';"; // подключаемся и парсим данные по номеру заказа; $res=mysql_query($query) or die(mysql_error()); while ($row = mysql_fetch_assoc($res)) { $status = $row['status']; $name = $row['name']; // имя и статус, полученные из SQL пишем в переменные; }; $str = 'Дорогой '.$name.'! Статус вашего заказа '.$status.' Спасибо за обращение, всего доброго!'; // формируем строку, которую необходимо синтезировать; $qs = http_build_query(array("format" => "wav","lang" => "ru-RU","speaker" => "jane","key" => "ваш_токен","emotion" => "good", "text" => $str)); //описываем переменные, которые будем отправлять в сторону API Яндекса. Вы можете регулировать формат файла, локаль, спикера (мужской или женский голоса) и эмоциональный окрас. Заменить "ваш_токен" на ключ, полученный от API Yandex. SpeechKit Cloud; $ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer: "))); $soundfile = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx); $file = fopen("file1.wav", "w"); fwrite($file, $soundfile); fclose($file); // получаем аудио файл (сохраняем его как file1.wav); shell_exec('sox -t raw -r 48k -e signed-integer -b 16 -c 1 file1.wav -t wav -r 8k -c 1 /var/lib/asterisk/sounds/ru/custom/output1.wav'); // выполняем преобразование аудио в нужный для Asterisk аудио-формат и копируем его в директорию /var/lib/asterisk/sounds/ru/custom/; shell_exec('chown asterisk:asterisk /var/lib/asterisk/sounds/ru/custom/output1.wav'); shell_exec('chmod 775 /var/lib/asterisk/sounds/ru/custom/output1.wav'); // даем файлу нужные пермишны; $agi->exec('Playback',"custom/output1"); // передаем в AGI команду проиграть полученный аудио – файл; shell_exec('rm -f /var/lib/asterisk/sounds/ru/custom/output1.wav'); shell_exec('rm -f file1.wav'); // удаляем оба файла; Скачать скрипт AGI После загрузки файла, сохраните его с расширением .php Сохраните скрипт под именем tts.php в директории /var/lib/asterisk/agi-bin и дайте следующие команды в консоль сервера: dos2unix /var/lib/asterisk/agi-bin/tts.php chown asterisk:asterisk /var/lib/asterisk/agi-bin/tts.php chmod 775 /var/lib/asterisk/agi-bin/tts.php Адаптируем функционал в «продакшн» Итак, первым делом, открываем файл /etc/asterisk/extensions_custom.conf для редактирования и добавляем в него следующую запись: [tts_menu] exten => s,1,Answer() exten => s,2,AGI(tts.php) Очень хорошо. Сделаем вызов кастомного контекста из FreePBX. Для этого воспользуемся модулем Custom Destinations. Переходим по пути Admin → Custom Destinations и нажимаем Add Destination: Нажимаем Submit и Apply Config. Мы хотим чтобы из главного IVR – меню клиент при нажатии 4 мог бы узнать статус своего заказа. Переходим в главный IVR и в секции IVR Entries добавляем следующее: Готово. Если что – либо не получилось, напишите нам в комментариях, постараемся помочь :)
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59