По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
В данной статье я расскажу про опыт одного из наших партнеров, которым мы помогли увеличить рост заказов до 35% за счет уменьшения оттока клиентов и избавили от проблем со связью в офисе навсегда. Наверное, большинство из нас сталкивалось с проблемой связи в офисе: хрипит телефон, непонятные помехи и шум, прерывания в разговоре, сбои при подключении, недоступность оператора, занятые линии и так далее. Вы или ваши сотрудники начинают нервничать, собеседник раздражается от того, что приходится снова и снова повторять слова или постоянно переспрашивать информацию и в конечном итоге мы получаем: Негатив от клиента и потерю лояльности к компании, которая «не может наладить даже качество телефонного разговора»; Эмоциональный стресс сотрудников, который отрицательно отражается на их эффективности работы. Совершенно очевидно, что это огромная проблема для бизнеса, которая влечет за собой конкретные как экономические, так и нематериальные издержки, перечислю только самые основные: Потеря клиентов из-за нестабильной работы телефонии; Низкая эффективность работы сотрудников; Нехватка компетенций внутри команды для решения проблем; Растущие расходы и недополученная прибыль. Предыстория В августе 2018 года к нам обратилась компания «ООО НИКАС», занимающаяся оптовой торговлей напитков и продуктов питания. Телефонные звонки – основной и жизненно важный способ связи для их бизнеса, т.к. по данному каналу: принимаются заказы от текущих клиентов; генерируются заявки новых клиентов (номер телефона привязан к рекламе Яндекса и Google) В офисе клиента была установлена устаревшая аналоговая АТС, которая, как выяснилось, была балластом, тянувшим бизнес ко дну: постоянные срывы звонков и помехи прямо во время разговоров, а порой и невозможность просто дозвониться, сильно пошатнули доверие клиентов в профессионализм и надежность компании. Проблема Из-за некачественных или сорвавшихся звонков, как снежный ком, накапливались отрицательные результаты и к моменту обращения к нам, на стороне клиента по статистике были зафиксированы следующие критические точки: 29% ежемесячный отток лояльных клиентов; 33% потери новых клиентов и «прожигание» маркетинговых бюджетов. Огромные убытки для бизнеса и угроза прекращения существования компании возникли всего лишь из-за игнорирования банальной проблемы. В дальнейшем, как признался один из совладельцев бизнеса – Андрей, причиной того, что на проблему закрывались глаза было простое незнание возможностей IP телефонии: «Мы просто боялись, что-то трогать, т.к. у нас не было на своей стороне компетенции, чтобы решить задачу, а обращаться к подрядчику нам казалось, что будет очень долго, дорого и сложно – и за это «незнание» мы заплатили в 10 раз дороже, чем любому подрядчику и потратили впустую кучу времени…» К счастью для коллег, пускай поздно, но они все-таки обратились к нам для решения своих проблем и оказались абсолютно правы. Проанализировав ситуацию, взвесив все «за» и «против» мы пришли к выводу, что для нашего клиента идеально подойдет установка Asterisk по следующим характеристикам: Стоимость - бюджетное решение, которое мог позволить наш клиент; Скорость выполнения работ – очень быстрая и оперативная реализация; Надежность технологии – отличное сочетание по соотношению цены и качества. Что было сделано: Встретились с клиентом для выяснения основных «болевых точек»; Уточнили пожелания клиента со стороны бизнес и IT подразделений; Проанализировали полученные вводные данные и согласовали смету; Презентовали на демонстрационном стенде возможности технологии; Сформировали проектную документацию; Получили доступы к системе и приступили к пуско-наладочным работам; Завершили настройку системы и провели приемочные испытания; Ошибок выявлено не было, и мы передали систему клиенту в эксплуатацию; Через 3 месяц собрали и провели анализ ключевых показателей эффективности Предложили пути оптимизации скриптов разговора. Что получил наш клиент: Привлечение новых заказов за счет: Уменьшения оттока лояльных клиентов с 29% до 12% * (по результатам работы системы за 3 месяца) Увеличения % удержания новых клиентов с 7% до 35% Увеличение эффективности работы сотрудников за счет экономии времени на разговор снизили среднее время разговора со 156 до 132 секунд Увеличение лояльности клиентов за счет снижения среднего времени нахождения звонка в очереди с 21 до 9 секунд; Увеличение количества отвеченных звонков на 15% за счет уменьшения количества не дошедших до оператора вызовов; Увеличение количества звонков, когда оператор решил проблему клиента с первого раза с 72% до 89%; Основные поставленные перед нами KPI клиента в графиках: Кроме этого: Быструю и качественную модернизацию связи в офисе без лишних затрат; Абсолютно прозрачный план проекта с четкими сроками выполнения работ и расчета стоимости; Техническую поддержку и личного account-менеджера; Обучение сотрудников по использованию продукта; Предоставление технической документации; Предоставление скидок при закупке оборудования. Заключение Из-за недооценки необходимости иметь качественную связь в офисе наш клиент заплатил огромную цену, и точка невозврата была очень близка. Не бойтесь смотреть проблемам в глаза, а самое главное – признаться в себе, что пора начать действовать. Не попадайте в ситуацию нашего клиента и модернизируйте телефонию вовремя, а команда Merion Networks будет всегда готова помочь. Наш лендинг: https://asterisk.merionet.ru/. Пришло время изменений :)
img
В данной статье мы рассмотрим такие вопросы как, копирование, перенос и удаление файлов. Копирование нескольких файлов и папок в том числе рекурсивно. Удаление файлов и папок в том числе рекурсивно. Использование групповых символов. Отбор файлов по типу, размеру, дате и.т.д. Утилиты tar, cpio и dd. Исходя из обозначенных выше вопросов будем разбираться со следующим списком команд: cp, find, mkdir, mv, ls, rm, rmdir, touch, tar, cpio, dd, file, gzip, gunzip, bzip2, xz, file globbing. А также захватим основные виды архиваторов и посмотрим, как с ними работать. Команда touch Данная команда меняет отметки времени файла. При помощи этой команды мы можем создавать новые файлы и менять время доступа к файлу. Например, мы можем посмотреть, что в текущей директории нет текстовых фалов. Убедится мы можем командой ls, а посмотреть в какой директории pwd. Соответственно вводим touch 123.txt и файл появляется. Есть так же другая команда для создания директорий mkdir. Описание можно по ней посмотреть, через ввод команды man mkdir. Данная команда создает директорию, например, mkdir folder1 создаст нам директорию folder1. Для просмотра используем команду ls. По данной команде мы тоже можем посмотреть мануал man ls. В описании написано, что показывает содержимое папки. Мы так же ее можем использовать с ключем –l, листинг, т.е в виде списка. В таком формате мы можем увидеть, кто владелец папки или файла, группу права на папку или файл. Достаточно информативно получается использование данной команды. Создадим еще один файл 456.txt и файл 1.txt в папке folder1 touch 456.txt touch folder1/1.txt и групповое создание файлов touch folder1/{2,3}.txt, а так же мы можем посмотреть, что у нас получилось в папке folder1. Команда cp Команда предназначена для копирования файлов и директорий. Самый простой пример сделать копию: cp 123.txt copy123.txt. Можно скопировать директорию cp folder1 folder2. И команда откажется выполнятся, потому, что по умолчанию рекурсивно не работает. В папке folder1 находятся файлы. И если мы хотим это осуществить то используем ключ –r или –R. Данная команда очень важна, т.к приходится использовать ее достаточно часто, например при настройке, какого–нибудь важного демона. Прежде чем вносить правки в файл конфигурации данного демона, оригинальный конфигурационный файл лучше всего скопировать. Команда mv Данная команда позволяет перенести файлы или папки, или переименовать (перенести данные из одного имени в другое). Для примера, скажем файл 456.txt перенести в файл something.txt, т.е mv 456.txt something.txt. Как мы видим файл 456 исчез, а появился something.txt Данная команда можем переносить так же в другую папку, например, глубже mv something.txt folder1/ Вот так будет выглядеть команда. А также можно вернуть его обратно, командой: mv folder1/something.txt . В конце знак точки выполняет функцию обозначения текущей папки. Аналогичные действия мы можем производить с папками. С помощью команд mv и cp. Команда rm Данная команда предназначена для удаления папок и файлов. rm 123.txt - удаление файла rm folder1 – удаление каталога, но команда выдает ошибку. Это происходит потому, что в папке находится файл. Если мы хотим удалить рекурсивно, то необходимо добавить ключ –r, а если без предупреждений и принудительно , то еще ключик –f. Итоговая команда будет выглядеть следующим образом. rm –rf folder1 Есть еще одна команда которая удаляет непосредственно папки, называется она rmdir. Мануал посмотреть вы можете по ней командой man rmdir. Данная команда удаляет непосредственно пустые директории. Работает достаточно близко по функционалу к rm. Команда file Команда определяет тип файла. Перейдем в папку Folder. cd folder Попробуем определить тип файла file yandex.url, как мы можем убедится команда выдает, что данный файл является текстовым. Если мы наберем, например, File *, то команда применится ко всем файлам в текущей директории и определит все типы файлов. Важной частью работы с файлами и папками являются Групповые Символы. * - все что угодно (заменяет любое количество символов) ? – любой символ (одиночный символ, ?? – два символа) ! – не (отрицание) [ac] – a или с [a-c] – a,b,c Создал несколько новых файлов: touch bag.txt touch bat.txt touch cat.txt touch sat.txt ls * - дает занимательную картинку, где видны файлы и папки. Команда ls *.* нам покажет только те файлы которые имеют расширения. Первая звездочка, означает любое имя, вторая звездочка указывает на любое расширение. Мы можем указать на конкретное количество символов обозначив их знаками “?”. Например, ls *.??? – это означает, что подходят любые файлы, у которых расширение из 3-х любых символов. Знаки вопросов и звездочек, можно использовать с сочетаниями букв и других символов. Можно сказать, покажи нам все файлы, которые начинаются с букв a или b, команда ls [ab]*. Также можно использовать конструкцию ls [a-m]*. Следовательно, работают все конструкции с групповыми символами. Команда find Данная команда будет осуществлять поиск файлов по иерархической структуре папок. Попробуем найти в директории все файлы: find * . Получим вот такой ответ на данную команду. У данной команды очень много ключей. Можем для примера взять такую конструкцию find . –name “In*” . Данная конструкция обозначает поиск в текущей папке, по имени, которое начинается с In и имеет в имени любое количество символов. Данную команду можно использовать для поиска файлов например по размеру: find . –size +5M . Следовательно, данным запросом мы ищем все файлы в текущем каталоге с размером более 5 MB. Команда cpio Работа с архивами очень важная часть операций с файлами. Для того, чтобы разобраться в данном вопросе рассмотрим следующую команду. Данная команда позволяет копировать файлы в архивы и из архивов. Данная команда позволяет работать с архивами, грубо говоря это двоичный архиватор. Смотрим, что есть в директории ls. Далее даем вот такую команду: ls | cpio –o > ../test.cpio В результате получили файл Пояснения, что мы сделали. Мы взяли вывод команды ls по конвейеру передали на вход команды cpio с ключем –o, который создает архив и то, что должно получится мы указали папку .. т.е родительская директория и файл test.cpio. Команда выполнилась и вывела число блоков, сколько обработалось. И переместившись на уровень выше, в родительскую директорию мы можем увидеть, что файл появился. А можем сделать следующую вещь: find . –name ”*.txt” | cpio –o > test2.cpio. Т.е мы можем выполнит поиск всех текстовых файлов в текущей директории и заархивировать, причем положить в текущую директорию. Создадим папку mkdir extract. И перейдем в нее cd /root/extract. Теперь мы попробуем разархивировать cpio –id < .. / test2.cpio Как мы видим все текстовые файлы появились. По сути, что мы сделали. Мы сказали команде cpio подняться на уровень выше взять test2.cpio и разархивировать в текущий каталог. Как видите там же попался каталог folder2, а попался т.к в нем тоже есть текстовые файлы. Напоминаю, что команда find работает так же со вложенными файлами, поэтому данный каталог и попал в архив. Команда dd Еще немного про архивы. Конвертирует и копирует файлы. Данная команда умеет копировать, не части файловой системы, как файлы или папки, а умеет копировать блочные устройства или его части, например, диск. Для того, чтобы показать, как это работает я примонтировал еще один раздел на 5 ГБ. Далее пишем следующее, находясь в директории cd /root/extract. dd if=/dev/sdc of=drive.img dd - сама команда if (Input файл) - диск of (Output файл) - путь куда положить. Мы видим, что команда столько-то получила, столько-то отправила данных в файл. Как можно увидеть, команда отработала. Следовательно, команда dd может сделать целиком резервную копию блочного устройства. Команда gzip Переходим непосредственно к архиваторам. Утилита, которая позволяет разжимать и упаковывать файлы. gzip drive.img Получаем в итоге, что вместо drive.img гигантского, получился более компактный drive.img.gz т.е команда gzip не просто создает архив , но и убивает оригинальный файл. Соответственно если мы хотим его отзиповать, то используем команду gunzip drive.img.gz Все архиваторы различаются по типу сжатия. Команда bzip2 Данный архиватор уже работает с блоками. Если его запустить аналогичным образом предыдущему архиватору, то получим файл немного меньшего размера. Это значить, что данный архиватор работает более эффективно с данным типами файлов. Разархивация осуществляется так же аналогично. Команда tar Теперь посмотрим легендарный архиватор tar Наиболее часто использующийся архиватор. С множеством функций и ключей. Пример использования. tar cvf archive.tar folder2 Синтаксис простой, команда с – создать , v - показывать процесс, f - файл, archive.tar - путь к месту где создастся архив, folder2 папка которую архивируем. Теперь мы можем подключить сжатие архиватора gzip, в опции надо добавить ключ “z” и выходной файл надо назвать archive.tar.gz. Для разархивации мы указываем ключи xvf и путь до архива.
img
Ansible один из двух (наряду с SaltStack) наиболее популярных программных комплексов третьей волны, которые позволяют удалённо управлять конфигурациями. Тем не менее, в сегменте сетевого оборудования лидирует наш сегодняшний герой (если о ПО можно так сказать). В первую очередь это вызвано тем, что Ansible не поставит перед пользователем задачи устанавливать агент на хостинги, требующие от него управления. Тем паче ежели Ваш аппарат взаимодействует с ними через CLI, то Ansible это то, что доктор прописал. Одним выстрелом три "электронных зайца" Вообще, прежде чем знакомить уважаемых читателей со сценарием работы в данном программном комплексе, позвольте перечислить несколько его достоинств: Ansible позволяет параллельно подключать по SSH к устройствам (пользователь может сам определить их число). Ansible может передавать задачи на подключённые машины. Ansible способен разбивать машины, входящих в систему, на подгруппы и передавать специальных задачи для каждой подгруппы. Конечно, указаны не все достоинства Ansible. Просто в данных 3 пунктах, как мне кажется, отражена основная суть работы в данной среде. Выполняя эти три задачи, система автоматически освобождает Вас от головной боли по делегированию задач и функций в компании. Время деньги, как говорится. Сценарии Ну и переходим к основному блюду нашего материала - сценариям (playbook). Они состоят из двух частей набора команд для выполнения (play) и конкретных команд (task). Они выполняются друг за другом. Все записи данных осуществляются с помощью YAMLа. К несомненным плюсам его использования следует отнести то, что он гораздо лучше воспринимается людьми, нежели тот же самый JSON. Ежели Вы больше привыкли Вы к Python, то тут у Вас не возникнет проблем с адаптацией, так как синтаксис у них схожий. А вот так происходит процесс написания сценария (комментарии даны построчно к выводу): Имя сценария обязательный элемент для любого сценария; Сценарий применяется к машинам в подгруппе cisco-routers; Выключение режима сбора событий в конкретной машине (если не выключить данный режим, то система потратит много времени на решение ненужных задач); В разделе task указывается список команд для каждого конкретного случая; После чего происходит выполнение команды: PLAY [Run show commands on routers] *************************************************** TASK [run sh ip int br] *************************************************************** changed: [192.168.100.1] changed: [192.168.100.3] changed: [192.168.100.2] TASK [run sh ip route] **************************************************************** changed: [192.168.100.1] changed: [192.168.100.3] changed: [192.168.100.2] PLAY [Run show commands on switches] ************************************************** TASK [run sh int status] ************************************************************** changed: [192.168.100.100] TASK [run sh vlans] ******************************************************************* changed: [192.168.100.100] PLAY RECAP **************************************************************************** 192.168.100.1 : ok=2 changed=2 unreachable=0 failed=0 192.168.100.100 : ok=2 changed=2 unreachable=0 failed=0 192.168.100.2 : ok=2 changed=2 unreachable=0 failed=0 192.168.100.3 : ok=2 changed=2 unreachable=0 failed=0 И запускаем проверку выполнения команд: SSH password: PLAY [Run show commands on routers] *************************************************** TASK [run s hip int br] *************************************************************** Changed: [192.168.100.1] => {“changed”: true, “rc”: 0, “stderr”: “Shared connection To 192.168.100.1 closed. ”, “stdout”: “ Interface IP-Address OK? Method Status Protocol Ethernet0/0 192. 168.100.1 YES NVRAM up up Ethernet0/1 192.168.200.1 YES NVRAM up up Loopback0 10.1.1.1 YES manual up up ”, “stdout_lines “: [“”, “Interface IP-Address OK? Method Status Protocol”, “Ethernet0/0 192.168.100.1 YES NVRAM up up “, “Ethernet0/1 192.168.200.1 YES NVRAM up up “, “Loopaback0 10.1.1.1 YES manual up up “]} А что внутри? А теперь поговорим о начинке сценария. Основу составляют переменные. Это могут быть данные о машине, выводы команд, а также их можно вводить вручную. Главное не забывать правила написания имён. Их всего два: имена всегда должны состоять из букв, цифр и нижнего подчёркивания; имена всегда должны начинаться с буквы. Переменные могут быть определены разными способами: Инвентарным файлом [cisco-routers] 192.168.100.1 192.168.100.2 192.168.100.3 [cisco-switches] 192.168.100.100 [cisco-routers:vars] ntp_server=192.168.255.100 log_server=10.255.100.1 PLAYBOOKом -name: Run show commands on router: hosts: cisco-routers gather_facts: false vars: ntp_server: 192.168.255.100 log_server: 10.255.100.1 tasks: -name: run sh ip int br raw: s hip int br | ex unass -name: run s hip route raw: sh ip route Специальными файлами, созданными для групп: [cisco-routers] 192.168.100.1 192.168.100.2 192.168.100.3 [cisco-switches] 192.168.100.100 Или группами каталогов |– group_vars _ | |– all.yml | | |–cisco-routers.yml | Каталог с переменными для групп устройств | |–cisco-switches.yml _| | |–host vars _ | |–192.168.100.1 | | |–192.168.100.2 | | |–192.168.100.3 | Каталог с переменными для устройств | |–192.168.100.100 _| | |–myhosts | Инвертарный файл Команда register позволяет сохранять результаты выполнений модулей в переменные. После чего переменная может быть использована в шаблонах, принятиях решений о выполнении заданного сценария. --- - name: Run show commands on routers hosts: cisco-routers gather_facts: false tasks: -name: run s hip int br raw: s hip int br | ex unass register: sh_ip_int_br_result --- debug отображает информацию в стандартном потоке вывода в виде произвольной строки, переменной или фактах о машине. --- - name: Run show commands on routers hosts: cisco-routers gather_facts: false tasks: -name: run s hip int br raw: sh ip int br | ex unass register: sh_ip_int_br_result -name: Debug registered var debug: var=sh_ip_int_br_result.stdout_lines После чего результатом работы станет следующее: SSH password: PLAY [Run show commands on routers] *************************************************** TASK [run sh ip int br] *************************************************************** changed: [192.168.100.1] changed: [192.168.100.2] changed: [192.168.100.3] TASK [Debug registered var] *********************************************************** ok: [192.168.100.1] => { “sh_ip_int_br_result.stdout_lines”: [ “”, “Interface IP-Address OK? Method Status Protocol”, “Ethernet0/0 192.168.100.1 YES NVRAM up up “, “Ethernet0/1 192.168.200.1 YES NVRAM up up “, “Loopback0 10.1.1.1 YES manual up up “ ] } ok: [192.168.100.2] => { “sh_ip_int_br_result.stdout_lines”: [ “”, “Interface IP-Address OK? Method Status Protocol”, “Ethernet0/0 192.168.100.1 YES NVRAM up up “, “Ethernet0/2 192.168.200.1 YES NVRAM administratively down down “, “Loopback0 10.1.1.1 YES manual up up “ ] } ok: [192.168.100.3] => { “sh_ip_int_br_result.stdout_lines”: [ “”, “Interface IP-Address OK? Method Status Protocol”, “Ethernet0/0 192.168.100.3 YES NVRAM up up “, “Ethernet0/2 192.168.200.1 YES NVRAM administratively down down “, “Loopback0 10.1.1.1 YES manual up up “, “Loopback10 10.255.3.3 YES manual up up “ ] } PLAY RECAP **************************************************************************** 192.168.100.1 : ok=2 changed=1 unreachable=0 failed=0 192.168.100.2 : ok=2 changed=1 unreachable=0 failed=0 192.168.100.3 : ok=2 changed=1 unreachable=0 failed=0 Вместо заключения Можно ещё долго приводить примеры работы в системе, но ещё один факт так сказать "вишенка на торте". К плюсам Ansible следует отнести и то, что заданную команду система может выполнять практически до бесконечности. Пока не наступит требуемый результат трансформации не прекратятся. Пользователю можно не беспокоиться - программа сама всё сделает за Вас, а Вы можете заниматься другими делами.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59