По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Если вы когда-то пользовались какой-нибудь серверной версией Linux, то скорее всего сталкивались с командой curl. Эта мощная утилита системы Linux позволяет скачивать и загружать файлы на сервер и поддерживает более 20 протоколов. Раньше мы писали про первые 15 примеров cURL в Linux. Статья зашла - это продолжение :) cURL идеальная команда для взаимодействия с веб-сайтом или API, отправления запросов и получения ответов на терминал или с выводом в файл. Иногда она используется как часть сложного скрипта для передачи полученных данных другим функциям на дальнейшую обработку. Наряду с получением файлов из сервера, cURL так же используется для закачки части вебсайта. Несмотря на то, что она довольно хорошо справляется с работой, но всё же wget лучше наточен под такую работу. В конце материала мы рассмотрим несколько отличий и сходств этих двух утилит, но а пока расскажем как пользоваться утилитой curl. Скачивание файла Самая базовая команда, которую можно дать утилите cURL это скачать сайт или файл. По умолчанию, cURL использует протокол HTTP, но мы можем задать любой другой. Чтобы открыть исходный код сайта просто нужно ввести команду: $ curl http://www.google.com Когда мы вводим указанную команду, окно терминала заполняется HTML и другим кодом, используемым для создания веб страницы, но от такого вывода мало пользы. Изменим команду так, чтобы вывод перенаправлялся в HTML файл, чтобы затем можно было просмотреть содержимое. $ curl www.likegeeks.com --output likegeeks.html Теперь файл можно открыть любым браузером. Если нужно скачать какой-то файл, то команда остается та же. Только нужно добавить опцию output, как мы и сделали ранее. Если не сделать команда вернёт бинарный код файла, что может привести к сбою. Ниже показано что мы видим при попытке загрузить Word документ размером 500Кб. Файл начинает закачиваться, и мы видим текущий статус закачки. Когда загрузка завершится файл будет расположен по пути, указанной во время запуска команды. Если такового не было указано, то файл будет расположен в текущей директории. Также, вы, наверное, заметили ключ L в команде. При загрузке файла этот ключ необходим, но о его назначении поговорим чуть позже. Отслеживание редиректа Если после выполнения команды ничего не вернулось это значит, что на сайте есть редирект (переадресация) на другую ссылку, но cURL не понимает этого. Это можно исправить, указав ключ L при вводе команды. Во время подготовки материала мы заметили, что данный ключ нужен в подавляющем большинстве случаев. Так что возьмите себе эту фишку на вооружение. Остановка и продолжение скачивания Если во время закачки файла что-то пошло не так или же качаете большой файл, но ввиду каких-то причин не хотите делать это за одну сессию, cURL предоставляет возможность остановки и продолжения закачки. Чтобы остановить процесс вручную, нужно нажать комбинацию CTRL+C, которая используется для остановки почти всех процессов, запущенных в терминале. Итак, загрузка была начата, но мы прервали её комбинацией клавиш, а теперь нам нужно продолжить закачку. Для этого вводим следующую команду. $ curl -C - example.com/some-file.zip --output MyFile.zip Ключ C говорит утилите cURL продолжить закачку, но обратите внимание, что сразу после ключа указан дефис. Этот дефис указывает команде перед продолжением просмотреть уже закачанную часть, чтобы понять с какого места нужно продолжать загрузку. Закачка продолжилась и успешно завершилась. Указание времени выполнения команды Если нужно чтобы прервать выполнение команды cURL по истечении указанного времени, мы можем указать таймер выполнения команды. Это особо полезно так как некоторые операции выполняются бесконечно, что может привести к зависанию системы. Чтобы избежать этого можно указать максимальный период в секундах, по истечении которого cURL прервёт выполнение команды. Вышесказанное реализуется следующим образом: $ curl -m 60 example.com Также есть возможность указать в течении какого времени держать соединение активным. Это позволит избежать бесконечных попыток соединения с узлом, который не доступен. Эта опция тоже в качестве аргумента принимает значение в секундах. А команда выглядит так: $ curl --connect-timeout 60 example.com Указание логина и пароля Утилита cURL позволяет указывать имя пользователя и пароль при подключении. Чаще всего это нужно при аутентификации на FTP сервере. Для этого используется ключ u. Синтаксис команды указан ниже: $ curl -u username:password ftp://example.com Данную опцию можно использовать с любым протоколом, но FTP является самым распространённым для простой передачи файлов. Если нужно скачать файл указанный на скриншоте ниже запускаем ту же команду, только указываем полный путь к нужному документу. $ curl -u username:password ftp://example.com/readme.txt Использование прокси cURL можно указать, чтобы подключение выполнялось через прокси сервер. По умолчанию, она использует HTTP прокси, но можно указать и другие. Чтобы направить трафик через прокси используется ключ x. $ curl -x 192.168.1.1:8080 http://example.com Данная команда обязует cURL подключиться к прокси по адресу 192.168.1.1 на порту 8080 перед обращением на example.com Прокси можно использовать и с другими протоколами. Ниже показан пример использования прокси сервера для получения файла с фтп сервера. $ curl -x 192.168.1.1:8080 ftp://example.com/readme.txt cURL поддерживает много типов прокси и соответствующих ключей, но охватить их всех в одном руководстве сложно. Для более подробной информации о туннелировании, SOCKS прокси, аутентификации и т.п. можете прочитать man по команде cURL. Загрузка больших файлов по частям Мы уже показывали как можно остановить и запустить закачку, но что если мы хотим скачать файл большого размера по частям? cURL имеет и такую возможность. Чтобы реализовать это достаточно указать ключ -range и размер загружаемой части. Размер должен быть указан в байтах. Чтобы скачать последнюю версию Ubuntu частями по 100 МБ нужно прописать следующую команду: $ curl --range 0-99999999 http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso ubuntu-part1 Во вторая команде нужно указать с какого байта начинать загрузку. И так пока не скачается весь файл. $ curl --range 100000000-199999999 http://releases.ubuntu.com/18.04/ubuntu-18.04.3-desktop-amd64.iso ubuntu-part2 Затем просто нужно собрать воедино скачанные части: $ cat ubuntu-part? > ubuntu-18.04.3-desktop-amd64.iso Аутентификация по сертификату Для подключения к сайту использованием сертификата вместо обычной аутентификации можно указать опцию cert и путь к сертификату. $ curl --cert path/to/cert.crt:password ftp://example.com cURL поддерживает большое количество форматов сертификатов и имеет очень много опций для работы с ними: -cacert, cert-status, -cert-type, и т.д. Для списка всех ключей посмотрите man. Тихий режим Если вас раздражают разные сообщения об ошибках во время работы с cURL, то можно запустить её в тихом режиме. Для этого используется ключ s. Но, чтобы увидеть результат выполнения команды вывод нужно перенаправить в файл. Для сохранения файла в текущей директории просто нужно указать ключ O. $ curl -s -O http://example.com Как альтернатива, команду можно запустить с опцией --output и указать название и путь к месту сохранения файла. $ curl -s http://example.com --output index.html Получение заголовков cURL позволяет легко получать заголовков какого-либо сайта. Для этого достаточно запустить команду с ключом I. $ curl -I example.com Если запустить команду с ключами I и L совместно, то cURL выведёт заголовки даже если на сайте стоит переадресация. Множественные заголовки Команде cURL можно передать и заголовки. Для этого есть ключ H. Для передачи нескольких заголовков перед каждым из них нужно поставить данный ключ. $ curl -H 'Connection: keep-alive' -H 'Accept-Charset: utf-8 ' http://example.com POST Закачка файла на сервер POST самый распространённый метод получения данных на веб-сайтах. Например, когда заполняете форму на сайте, скорее всего данные из форм передаются серверу методом пост. Чтобы отправить сайту данные этим методом нужно использовать ключ d. $ curl -d 'name=geek&location=usa' http://example.com Чтобы загрузить файл вместо текста нужно ввести следующую команду $ curl -d @filename http://example.com Используйте ключ d столько раз, сколько данных или файлов нужно отправить на сайт. Чтобы загрузить файл через протокол FTP используйте ключ T $ curl -T myfile.txt ftp://example.com/some/directory/ Отправка почты Отправка почты это один из видов загрузки данных на почтовый сервер. Так как cURL может загружать файлы, то мы можем использовать ее и для отправки почты. Есть много вариантов сделать это, но здесь мы рассмотрим, как посылать почты через SMTP сервер. $ curl smtp://mail.example.com --mail-from me@example.com --mail-rcpt john@domain.com --upload-file email.txt Учтите, что файл e-mail должен быть отформатирован нужным образом. Что-то вроде этого: $ cat email.txt From: Web Administrator <me@example.com> To: John Doe <john@domain.com> Subject: An example email Date: Sat, 7 Dec 2019 02:10:15 John, Hope you have a great weekend. -Admin Как всегда, за подробной информацией можете обратиться к man. Чтение почты Для получения почты используется IMAP и POP3 и сurl поддерживает оба протокола. Зайдем на почту используя протокол IMAP: $ curl -u username:password imap://mail.example.com Данная команда выведет список доступных почтовых ящиков, но не покажет их содержание. Чтобы прочитать письмо нужно указать UID письма аргументов для опции X. $ curl -u username:password imap://mail.example.com -X 'UID FETCH 1234' Разница между cURL и wget Иногда пользователей путаются между curl и wget, так как обе они могут получать информацию с сервера. Но это единственное сходство между ними. В этом материале мы показали возможности curl. wget дает другие возможности. wget лучшая утилита для скачивания файлов, а также у него есть возможность делать это рекурсивно, переходя по всем ссылкам и директория и скачать сайт полностью. Таким образом, если вам нужно скачать все исходные файлы сайта используйте wget. Если же используется протокол отличный от HTTP или HTTPS, или нужно закачать файл на сервер, выберите curl. cURL удобен для скачивания одиночных файлов, хотя и wget неплохо справляется с данной задачей.
img
Повышение нагрузки на серверы Linux может быть хорошей идеей, если вы хотите увидеть, насколько хорошо они работают, когда они загружены. В этой статье мы рассмотрим некоторые инструменты, которые помогут вам нагрузить сервер и оценить результаты. Для чего вам необходимо подвергать свою систему Linux нагрузке? Потому что иногда вам может потребоваться узнать, как система будет вести себя, когда она находится под большим давлением из-за большого количества запущенных процессов, интенсивного сетевого трафика, чрезмерного использования памяти и т. д. Этот вид тестирования позволяет убедиться, что система готова к использованию. Если вам нужно спрогнозировать, сколько времени потребуется приложениям для ответа и какие процессы могут выйти из строя или работать медленно под большой нагрузкой, проведение стресс-тестирования заранее является очень хорошей идеей. К счастью для тех, кому нужно знать, как система Linux отреагирует на нагрузку, есть несколько полезных методов, которые вы можете использовать, и есть инструменты, которые вы можете использовать, чтобы упростить этот процесс. В этой статье мы рассмотрим несколько вариантов. Создаем циклы своими руками Данный первый метод предполагает запуск некоторых циклов в командной строке и наблюдение за тем, как они влияют на систему. Этот метод нагружает ЦП, значительно увеличивая нагрузку. Результаты можно легко увидеть с помощью команды uptime или аналогичных команд. В приведенной ниже примере мы начинаем четыре бесконечных цикла. Вы можете увеличить количество циклов, добавляя цифры или используя выражение bash, например {1..6} вместо «1 2 3 4». for i in 1 2 3 4; do while : ; do : ; done & done В примере выше, команда, запускает четыре бесконечных цикла в фоновом режиме. $ for i in 1 2 3 4; do while : ; do : ; done & done [1] 205012 [2] 205013 [3] 205014 [4] 205015 В этом случае были запущены задания 1-4. Отображаются как номера заданий, так и идентификаторы процессов. Чтобы увидеть влияние на средние значения нагрузки, используйте команду, подобную показанной ниже. В этом случае команда uptime запускается каждые 30 секунд: $ while true; do uptime; sleep 30; done Если вы собираетесь периодически запускать подобные тесты, вы можете поместить команду цикла в скрипт: #!/bin/bash while true do uptime sleep 30 done В выходных данных вы можете увидеть, как средние значения нагрузки увеличиваются, а затем снова начинают снижаться после завершения циклов. Поскольку показанные нагрузки представляют собой средние значения за 1, 5 и 15 минут, потребуется некоторое время, чтобы значения вернулись к нормальным для системы значениям. Чтобы остановить циклы, выполните команду kill, подобную приведенной ниже - при условии, что номера заданий равны 1-4, как было показано ранее в этой статье. Если вы не уверены, используйте команду jobs, чтобы проверить ID. $ kill %1 %2 %3 %4 Специализированные инструменты для добавления нагрузки Другой способ создать системный стресс - это использовать инструмент, специально созданный для того, чтобы нагружать систему за вас. Один из них называется stress и может воздействовать на систему разными способами. Стресс-инструмент - это генератор рабочей нагрузки, который обеспечивает стресс-тесты ЦП, памяти и I/O. С параметром --cpu команда stress использует функцию извлечения квадратного корня, чтобы заставить ЦП усердно работать. Чем больше указано количество ЦП, тем быстрее будет нарастать нагрузка. Второй сценарий watch-it (watch-it-2) может использоваться для оценки влияния на использование системной памяти. Обратите внимание, что он использует команду free, чтобы увидеть эффект стресса. $ cat watch-it-2 #!/bin/bash while true do free sleep 30 done Начало и наблюдение за стрессом: $ stress --cpu 2 Чем больше ЦП указано в командной строке, тем быстрее будет нарастать нагрузка. Команда stress также может вызвать нагрузку на систему, добавив I/O и загрузку памяти с помощью параметров --io (input/output) и --vm (memory). В следующем примере выполняется команда для добавления нагрузки на память, а затем запускается сценарий watch-it-2: $ stress --vm 2 Другой вариант для стресса - использовать параметр --io, чтобы добавить в систему действия по вводу/выводу. В этом случае вы должны использовать такую команду: $ stress --io 4 После чего вы можете наблюдать за стрессовым I/O с помощью iotop. Обратите внимание, что iotop требует привилегий root. До После stress - это лишь один из множества инструментов для добавления нагрузки в систему.
img
МТТ бизнес - виртуальная АТС от компании МТТ. Платформа позволяет обеспечить офис телефонной связью, организовать голосовую почту, маршрутизацию вызовов и прочие параметры. Сегодня мы поговорим о том, как интегрировать облачную ВАТС от МТТ Бизнес и IP – АТС Asterisk по протоколу SIP. Настройки ЛК МТТ Бизнес Приступаем к работе. Переходим по адресу https://business.mtt.ru/user/login: Указываем наш логин и пароль. Входим в интерфейс управления ВАТС и переходим в раздел Настройки → Рабочие места → Создать рабочее место, как показано на скриншоте ниже: Создаем рабочее место, как показано на скриншоте ниже: Имя - придумайте имя для вашего пользователя; Должность/Описание - какое – то описание. Можете написать что-то связанное с Asterisk, для очевидности и прозрачности дальнейшего администрирования; SIP ID - отмечаем чекбокс, как показано на скриншоте; Логин - сохраняем и записываем отдельно. Он нам пригодится :) Пароль на оборудование - можете указать свой пароль, можете сгенерировать автоматически. Сохраните его – им мы тоже воспользуемся; Кстати, если находитесь в поиске виртуальной АТС, то посмотрите в сторону МТТ Бизнес. Неплохое соотношение цена/качество :) Попробовать ВАТС от МТТ Бизнес Продолжаем экскурсию. Настроим маршрутизацию на нашего пользователя. Для этого, переходим в раздел Настройки → Входящая связь. Там, где указан ваш номер телефона, нажмите на зеленый плюсик («+»): В появившемся окне выбираем На рабочее место: В разделе настроек Переадресация на рабочее место нажимаем кнопку Выбрать: Выбираем нашего юзера через чекбокс. В нашем случае мы создали PBXuser, как показали ранее: Когда выбрали пользователя, нажимаем Сохранить: В итоге работы, у вас должно получиться вот так: Большая часть настроек позади. Приступаем к конфигурации на стороне Asterisk. Настройки выполним через FreePBX. Настройки Asterisk (FreePBX) Классика. Нам нужно сделать SIP – транк, а потом настроить маршрутизацию. Начнем с SIP – транка. Переходим в раздел Connectivity → Trunks. Далее нажимаем Add Trunk → Add Chan_sip trunk. Что тут нужно сделать: Trunk name - имя транка. Как вам имя mtt? :); Outbound CallerID - номер телефона, который у вас прикручен к ВАТС МТТ Бизнес. То есть тот, на который звонят клиенты; Тут все. Переходим во вкладку sip Setting, заполняем секцию Outgoing: username=Логин type=peer secret=Пароль на оборудование qualify=3000 nat=yes insecure=invite,port host=login.mtt.ru dtmfmode=rfc2833 disallow=all allow=alaw,ulaw Переключитесь на вкладку Incoming и там в поле Register String укажите следующую конструкцию: логин:пароль_на_оборудование@login.mtt.ru/ваш_номер Сохраняем. Теперь нужно настроить только исходящую и входящую маршрутизацию. О том, как это сделать, можете прочитать в статье по ссылке ниже: Настройка маршрутизации вызовов
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59