По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
При написании некоторых скриптов бывает нужно обратиться какому-либо ресурсу. Это может быть HTTP/HTTPS запрос какой-нибудь HTML странички сайта, FTP запрос на скачивание файла или же, это может быть GET/POST запрос к удалённому ресурсу, для передачи на него какой-либо информации. Для этих целей в роутерах MikroTik предусмотрен инструмент Fetch, о нём и поговорим. Инструмент Fetch позволяет настроить отправку HTTP и FTP запросов к сетевому ресурсу, чтобы скопировать с, или же загрузить на него определённые данеые (web-страничка, файл). Поддержка HTTPS включена по умолчанию, проверка сертификатов, предъявляемых сетевыми ресурсами при запросе, не осуществляется. Включить проверку цепочки сертификации можно с помощью опции check-certificate. Чтобы начать работу с инструментом Fetch, введите команду: /tool fetch Далее нужно задавать параметры ресурса, к которому Вы хотите обратиться, метод обращения и данные, которые нужно получить или загрузить на этот ресурс. Доступны следующие параметры: address - задаёт IP адрес ресурса, к которому необходимо обратиться; ascii - включает поддержку ASCII (по умолчанию - no); check-certificate - включает проверку цепочки сертификации удаленного ресурса; dst-path - название файла, который нужно скачать и полный путь к нему на удаленном ресурсе; host - доменное имя ресурса, к которому нужно обратиться. Например - shareit.merionet.ru; http-method - метод HTTP обращения. Доступны следующие методы: get, post, put, delete. По умолчанию используется get; http-data - данные, которые нужно отправить на удаленный ресурс, при использовании методов put и post; http-content-type - идентификатор данных, которые нужно отправить на удаленный ресурс в формате MIME. По умолчанию - application/x-www-form-urlencoded; keep-result - если данный параметр активирован, то будет создан входной файл; mode - задаёт протокол, по которому будет осуществляться соединение с удаленным ресурсом. Можно задать http, https, ftp или tftp; password - задаёт пароль который нужен для аутентификации на удаленном ресурсе. (Используйте только если удаленный ресурс требует аутентификации подключения); port - порт, по которому будет осуществляться соединение; src-path - название файла, который нужно загрузить на удаленный ресурс; upload - если данный параметр активирован, то инструмент fetch будет использоваться именно для загрузки локального файла на удаленный ресурс. При этом требуется, чтобы были указаны src-path и dst-path файла; url - URL путь к файлу. Может быть использовано вместо address или src-path; user - имя пользователя, которое нужно ввести для аутентификации на удаленном ресурсе (используйте только если удаленный ресурс требует аутентификации подключения); Давайте рассмотрим несколько use кейсов, когда Вам может пригодиться инструмент fetch. Скачивание файла с удаленного ресурса В статье про защиту роутера MikroTik методом превентивного блокирования адресов из "черных" списков мы уже прибегали к этому методу. Для этого мы писали такую команду: /tool fetch address=www.squidblacklist.org host=www.squidblacklist.org mode=http src-path=/downloads/drop.malicious.rsc В данном случае, мы обращаемся к ресурсу www.squidblacklist.org по протоколу http и скачиваем файл /downloads/drop.malicious.rsc Допустим, мы имеем дело с FTP сервером, требующим аутентификации, тогда запрос может быть таким: /tool fetch address=192.168.11.48 src-path=conf.rsc user=admin mode=ftp password=samplepass dst-path=sample.rsc port=21 host="" keep-result=yes Можно также указать URL, по которому доступен нужный файл для скачивания: /tool fetch url="https://wiki.merionet.ru/rukovodstvo-administratora-freepbx-na-russkom-yazyke/Rukovodstvo_Administratora_FreePBX_na_russkom_yazyke.pdf" mode=http Загрузка файлов на удаленный сервер может быть нужна для автоматизации процесса резервного копирования конфигурации роутера Ниже приведен пример команды для отправки файла с бэкапом по протоколу FTP, на удаленный сервер по адресу 192.168.11.56, который требует аутентификации: /tool> fetch address=192.168.11.56 src-path=cnfig.rsc user=admin mode=ftp password=samplepass dst-path=backup.rsc upload=yes Отправление информации на удаленный сервер С помощью инструмента fetch можно также отправлять информацию на удаленный сервер, используя HTTP запросы. Например, ниже показан пример того, как можно через POST запрос отправить json массив данных на удаленный сервер: /tool fetch http-method=post http-content-type="application/json" http-data="{ "as": "AS16509 Amazon.com, Inc.", "city": "Boardman", "country": "United States", "countryCode": "US", "isp": "Amazon", "lat": 45.8696, "lon": -119.688, "org": "Amazon", "query": "54.148.84.95", "region": "OR", "regionName": "Oregon", "status": "success", "timezone": "America/Los_Angeles", "zip": "97818" }" url="http://locator.loc/index.php" Сохранять результат как переменную В версии RouterOS v6.43, появилась возможность сохранить результат команды fetch в переменную. Это может быть полезно, например, для написания скриптов, которые производят какие-либо действия в зависимости от того, какой был ответ на HTTP запрос. Например, ниже приведен пример скрипта, который отсылает письмо SERVICE FAILED, если при запросе страницы PHP (check.php) возвратился “0” и SERVICE RUNNING, если запрос был успешно обработан. { :local result [/tool fetch url=http://192.168.11.56/check.php as-value output=user]; :if ($result->"status" = "finished") do={ :if ($result->"data" = "0") do={ /tool e-mail send to="mnadmin@mndomain.ru" subject="$[/system identity get name] export" body="$[/system clock get date] SERVICE FAILED; } else={ /tool e-mail send to="mnadmin@mndomain.ru" subject="$[/system identity get name] export" body="$[/system clock get date] SERVICE RUNNING; } } } Предварительно, нужно чтобы был настроен почтовый сервер - tool e-mail> set server=192.168.1.34 set port=25 from=”mnmikrotik@mndomain.ru” Кстати, в WinBox нет отдельной реализации инструмента fetch. Однако, мы можем использовать его, когда пишем скрипты через инструмент Scripts. Например, можно туда добавить скрипт, который мы привели выше:
img
В больших корпоративных сетях, которые занимаются обслуживанием клиентов важно вовремя получать уведомления о неполадках в сети и устранять их. В этом деле администраторам помогают системы мониторинга, которых сегодня в сети существует достаточно много, как платных, так и бесплатных. Своего рода стандартом в ИТ является PRTG (Paessler Router Traffic Grapher), которая может отправлять уведомления о событиях через e-mail, SMS, Push-уведомлений. Сегодня сложно представить кого-то, кто не пользуется хоть одним мессенджером. Среди них особо выделяется Telegram, который пользуется популярностью благодаря своей безопасности и функционалу. Здесь можно создать своего бота, который будет выполнять все ваши команды исходя из поставленной задачи. В одном из материалов мы рассказывали уже о том, как использовать Telegram для управления "Умным домом". Здесь же расскажем о том, как интегрировать Telegram в PRTG и получать уведомления не на почту, на Telegram. Принцип работы такой: система мониторинга, в нашем случае PRTG, отправляет сообщения боту, а тот в свою очередь выводит их группу. Что нам нужно Telegram аккаунт Группа, куда будем добавлять нашего бота Доступ с PRTG сервера на https://api.telegram.org/ Создание бота Для начала нам нужно создать бота, в чем на поможет "The Botfather". Начинаем новый чат с ним в Telegram: Командой /newbot под руководством Botfather начинаем создание бота. Задаем ему имя, которое будет отображаться и имя пользователя: После этих несложных манипуляций получаем API токен нашего бота, который используем в будущем. По умолчанию, бот может быть добавлен в любую группу и может получать сообщения от кого угодно. Ограничить это можно в настройках приватности, которые доступны командами /setprivacy и /setjoingroups. Далее добавляем бота в группу, где находятся администраторы и другой заинтересованный персонал. Через группу посылаем боту сообщение /start, чтобы активировать его. Затем уже настраиваем политики приватности, о которых говорилось выше. С созданием бота закончили, теперь нужно настроить получение уведомлений Настройка уведомлений Помните, в конце создания бота нам выдали API ключ. Перейдите по следующей ссылке, предварительно подставив вместо <apikey> API ключ вашего бота: https://api.telegram.org/bot<apikey>/getMe Вы должны получить что-то подобное: { "ok": true, "result": { "id": 1234567890, "first_name": "PRTGNotiBot", "username": "PRTGNotificationBot" }} Если вышли какие-то ошибки, убедитесь, что API ключ введён правильно. Далее открываем ту же ссылку, только вместо getMe подставляем getUpdates. Мы получим список чатов, в которые добавлен наш бот. { "ok": true, "result": [{ "update_id": 521075218, "message": { "message_id": 3, "from": { "id": 11512298, "first_name": "xxxxxxxxx", "last_name": "xxxxxxxxx", "username": "xxxxxxxxx" }, "chat": { "id":-12345690, "title": "[Paessler] IT", "type": "group", "all_members_are_administrators": true }, "date": 1493834122, "text": "/start", "entities": [{ "type": "bot_command", "offset": 0, "length": 6 }] } }]} Из этого вывода нам нужен идентификатор чата, включая знак "-". Теперь мы готовы создать шаблон уведомления в PRTG. Переходим в Setup > Account Settings > Notifications. Добавляем новый шаблон уведомления: Выбираем вводим название шаблона, выбираем тип сенсора (рекомендуем pingsensor) В качестве шаблона выбираем HTTP. Вводим ссылку https://api.telegram.org/bot<your-api-key>/sendMessage, подставив API токен вашего бота. В строку Postdata вводим следующие строки: chat_id=-<your-chat-id>&text=There's a *%status* sensor in your PRTG![%sensor](%linksensor)*Last Message* %lastmessage*Down since* %since*Device* %device*Group* %group&parse_mode=Markdown chat-id идентификатор чата, который получили выше. text текст сообщения, который будет отправлять бот. Текст можно изменять по вашему усмотрению. %status переменная PRTG. Звездочки вокруг него это стиль редактирования Telegram API. Как именно обрабатывать стиль указано в конце текста параметром parse_mode=Markdown. Если нужно, чтобы уведомление пришло если сеть поднялась, то нужно создать другой шаблон с соответствующим текстом: chat_id=-123456890&text=%device% is *%status*!&parse_mode=Markdown Хотя можно совместить это в одном шаблоне, но лучше сделать два отдельных шаблона, на случай если каждому шаблону нужно добавить разные переменные, как в нашем случае. Затем можно отправить тестовое сообщение, в результате чего должны получить что-то подобное: Если все прошло успешно, нужно привязать шаблон к конкретному сенсору. Чтобы система не бомбила ваш Telegram из-за незначительных событий, лучше привязать шаблон к сенсору PING. Для этого переходим на вкладку Devices, среди сенсоров нужного устройства наводим курсор мыши на сенсор PING и кликаем на иконку звоночка. Открывается страница добавления уведомлений. Выбираем Add State Trigger заполняем поля согласно политике организации. Можно сделать как на скриншоте: Как видно на скриншоте, мы отправляем уведомление только когда сеть упала и поднялась. Повторно не посылаем, чтобы не надоедало. Вот и всё. Думаю материал окажется полезным для вас.
img
Файловые системы и UUID имеют особую взаимосвязь в системах Linux. Что это за очень длинные идентификаторы и как проследить связи между ними и разделами диска? Файл /etc/fstab - очень важный файл в системах Linux. Он содержит информацию, которая позволяет системе подключаться к разделам диска и определять, где они должны быть смонтированы в файловой системе. Хотя этот файл играл важную роль на протяжении многих лет, его формат изменился с введением UUID и, в некоторых системах, более надежного типа файловой системы. Вот пример файла /etc/fstab в системе Fedora: Каждая строка в файле (кроме комментариев) представляет файловую систему и имеет шесть полей. Описывает раздел диска Определяет точку монтирования Показывает тип файловой системы Предоставляет варианты монтирования Определяет, может ли файловая система быть выгружена (0 = нет) с помощью команды dump (не часто) Определяет, должна ли проверка файловой системы выполняться во время загрузки (0 = нет) Файловая система btrfs - это современная файловая система с копированием при записи (copy-on-write- CoW) для Linux, которая предоставляет расширенные функции, а также уделяет особое внимание отказоустойчивости, восстановлению и простому администрированию. Файл /etc/fstab, показанный выше, необычен тем, что новая ОС была только недавно установлена на /dev/sda, а папка /home из системы перед обновлением (на отдельном диске) была затем перемонтирована после того, как первая ссылка на /home была закомментирована. Что такое UUID? Те длинные идентификаторы устройств, которые вы видите в файле /etc/fstab и которые помечены UUID (универсальный уникальный идентификатор), имеют длину 128 бит (32 шестнадцатеричных символа) и расположены в последовательности символов 8-4-4-4-12. Один из способов увидеть, как UUID соединяются с именами устройств (например, /dev/sda1), - это использовать команду blkid. Вы также можете проверить файл by-uuid, чтобы просмотреть взаимосвязь: Устройство 76E8-CACF, смонтированное как /dev/sdc1, - это временно используемый USB-накопитель. Вы можете получить представление о том, как Linux генерирует UUID, выполнив команду uuidgen. Проверьте, есть ли он в вашей системе, набрав команду which uuidgen. Эти идентификаторы для всех практических целей уникальны. Когда вы введете команду uuidgen, вы получите любой из более чем 3.40 ? 1038 возможных ответов. Использование lsblk Еще один удобный способ просмотра файловых систем - это команда lsblk, которая дает четкое представление о том, как файловые системы связаны, а также о точках монтирования, размерах устройств и основных/второстепенных номерах устройств. Эта команда упрощает визуализацию разделов на каждом диске.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59