пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ пїЅпїЅ пїЅпїЅпїЅ пїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅпїЅ
Слишком длинный поисковый запрос.
По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Операционные системы Unix традиционно используют такие понятия, как стандартный ввод, вывод и вывод ошибки. Чаще всего ввод — это клавиатура, а вывод это на кран. Но конечно же мы можем выводить исполнение какой-то команды в файл и передавать другой команде, потому что работая в Linux, создается такая последовательность из команд, т.е результат предыдущей мы отправляем следующей и т.д Целью данной статьи является рассмотреть: Перенаправление стандартных ввода, вывода и ошибок; Передача вывода одной команды в качестве аргументов другой; Получение выходных данных в файл и на стандартный вывод; Основные понятия: Stdin (0) – ввод Stdout(1) – вывод Stderr (2) – вывод ошибки > - передать в >> - дописать в list.txt. По сути означает выполнить команду, а результат передать в файл. Фал можно посмотреть командой cat list.txt. И мы можем убедится, что в данном файле находится перечень, всего что находилось в данной папке. Если мы выполним еще раз команду ls > list.txt, то данный файл каждый раз будет перезаписываться. Если же мы хотим, чтобы наш файл не перезаписывался, а дописывался, используем другую стрелочку ls >> list.txt. И теперь вы можете видеть, что файл стал больше. Т.е. у нас записалось, то что было, а затем еще раз добавилось. Если опять выполнить команду со стрелочками >> , то опять допишется информация в файл. Вот таким образом работают “стрелочки”. Стандартный вывод ошибок. Мы можем, например, сказать машине, выведи нам содержимое папки bob, которая не существует ls bob > result.txt, естественно мы получим ошибку которую система вывела на экран. Экран является стандартным выводом ошибок. В нашем случае нет папки bob и нет файла resut.txt. Если мы хотим отправить ошибку в файл, так же как результат выполнения команды, то ls bob 2> result.txt, вспоминаем основные понятия, в которых было указанно, что 2 – это стандартный вывод ошибки. Следовательно, на экране мы уже не видим ошибки, потому что она отправилась в указанный файл. Кстати мы можем объединить стандартный вывод команды и стандартный вывод ошибки. Например: ls bob > result.txt 2> error.txt. Выведи содержимое папки bob в файл result.txt, а если возникнет ошибка внеси в файл error.txt. В таком случае и команда выполнится и что-то будет в файле и если ошибка возникнет, то она будет записана в файл error.txt. Это можно применять на практике, когда мы что-то делаем и предполагаем, что в процессе выполнения возникнут ошибки, то используя данную конструкцию данные ошибки мы все можем отправить в отдельный файл. Конвейер Конвейер умеет передавать выходные данные из одной программы, как входные данные для другой. Т.е. выполняется команда, мы получаем результат и передаем эти данные далее на обработку другой программе. Например, выполнить команду ls и далее мы могли стрелочкой отправлять результаты выполнения команды в файл, т.е. мы меняли только стандартный вывод, а не передавали другой программе. А можем выполнить ls | grep r , т.е. получить содержимое и передать по конвейеру команде сортировки и сказать отсортировать по наличию буквы r, а если перенаправить еще вывод в файл, то cat имя файла , мы сможем увидеть информацию в файле. Но есть другая команда tee которая позволяет работать немного удобнее. Например: ls | tee output.txt. Те данная команда выводит информацию сразу на экран и в указанный файл. Что достаточно удобно с точки зрения работы с выводами. И еще одна команда xargs – она построчно работает с выводами. Если у нас есть какая-то команда, которая выдает нам вывод в виде нескольких строк ответа, то мы можем эти строки построчно передавать этой команде, т.е. не одной кашей, а построчно. Например find . –name “*.txt” найти все файлы в текущем каталоге с расширением txt. И если бы мы захотели удалить все эти файлы нам бы пришлось построчно их удалять, но мы можем сказать, чтобы выходные данные были переданы по конвейеру xargs и удалить. find . –name “*.txt” | xargs rm -f Как видите после данной конструкции команд файлов не осталось. Т.е. данные построчно передались на команду удаления, которая построчно каждый файл с ключом –f (принудительно) их и удалила.
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
Прежде чем перейти к более сложным темам, мы завершим эту серию статей об основах OSPF. Здесь мы рассмотрим типы LSA, типы областей и виртуальные ссылки (LSA types, area types, и virtual links). Протокол маршрутизации OSPF: LSA, области и виртуальные ссылки OSPF LSA ТИПЫ Link State Advertisements (LSA) — Объявления состояния канала — это основа работы сетей на OSPF. Наполнение этих обновлений позволяют сети OSPF создать карту сети. Это происходит с помощью алгоритма кратчайшего пути Дейкстры. Не все LSA OSPF равны. Ниже представлен каждый их них: Router (Type 1) LSA - мы начинаем с того, что многие называют «фундаментальным» или «строительным блоком» Link State Advertisements. Type 1 LSA (также известный как Router LSA) определен в пределах области. Он описывает интерфейсы локального маршрутизатора, которые участвуют в OSPF, и соседей, которых установил локальный спикер OSPF. Network (Type 2) LSA - вспомните, как OSPF функционирует на (широковещательном) Ethernet сегменте. Он выбирает Designated Router (DR) and Backup Designated Router (BDR), чтобы уменьшить количество смежностей, которые должны быть сформированы, и хаос, который будет результатом пересечением этих отношений. Type 2 LSA отправляется назначенным маршрутизатором в локальную область. Этот LSA описывает все маршрутизаторы, которые подключены к этому сегменту. Summary (Type 3) LSA – напоминаем вам, что Type 1 LSA и Type 2 LSA ретранслируются в пределах области. Мы называем их intra-area LSA. Теперь пришло время для первого из наших inter-area LSA. Summary (Type 3) LSA используется для объявления префиксов, полученных из Type 1 LSA и Type 2 LSA в другой области. Маршрутизатор границы области (ABR) — это устройство OSPF, которое разделяет области, и именно это устройство рекламирует Type 3 LSA. Изучите топологию OSPF, показанную на рисунке 1 ниже. Топология OSPF Рис. 1: Пример многозональной топологии OSPF Область 1 ABR будет посылать Type 3 LSA в область 0. ABR, соединяющий область 0 и область 2, отправил эти Type 3 LSA в область 2, чтобы обеспечить полную достижимость в домене OSPF. Type 3 LSA остаются Type 3 LSA во время этой пересылки. ASBR Summary (Type4) LSA - есть особая роль маршрутизатора OSPF, который называется пограничный маршрутизатор автономной системы Autonomous System Boundary Router (ASBR). Задача этого маршрутизатора заключается в том, чтобы ввести внешнюю префиксную информацию из другого домена маршрутизации. Для того чтобы сообщить маршрутизаторам в различных областях о существовании этого специального маршрутизатора, используется Type 4 LSA. Эта Summary LSA предоставляет идентификатор маршрутизатора ASBR. Таким образом, еще раз, Area Border Router отвечает за пересылку этой информации в следующую область, и это есть еще один пример inter-area LSA. External (Type 5) LSA - Таким образом, ASBR — это устройство, которое приносит префиксы из других доменов маршрутизации. Type 4 LSA описывает это устройство. Но какой LSA используется для реальных префиксов, поступающих из другого домена? Да, это Type 5 LSA. OSPF ASBR создает эти LSA, и они отправляются к Area Border Routers для пересылки в другие области. NSSA External (Type 7) LSA - в OSPF есть специальный тип области, называемый Not So Stubby Area (NSSA). Эта область может выступать заглушкой, но она также может вводить внешние префиксы из ASBR. Эти префиксы передаются как Type 7 LSA. Когда ABR получает эти Type 7 LSA, он отправляет по одному в другие области, такие как Type 5 LSA. Таким образом, обозначение Type 7 предназначено только для этой специальной области NSSA. Другие типы LSA. Существуют ли другие типы LSA? Да. Но мы не часто сталкиваемся с ними. Например, Type 6 LSA используется для многоадресной (Multicast) передачи OSPF, и эта технология не прижилась, позволяя Protocol Independent Multicast передаче победить. Для завершения ниже показан полный список всех возможных типов LSA: LSA Type 1: Router LSA LSA Type 2: Network LSA LSA Type 3: Summary LSA LSA Type 4: Summary ASBR LSA LSA Type 5: Autonomous system external LSA LSA Type 6: Multicast OSPF LSA LSA Type 7: Not-so-stubby area LSA LSA Type 8: External Attribute LSA for BGP LSA Type 9, 10, 11: "Opaque" LSA типы, используемые для конкретных прикладных целей OSPF ТИПЫ LSA И ТИПЫ AREA Одна из причин, по которой вы должны освоить различные типы LSA, заключается в том, что это поможет вам полностью понять потенциальную важность multi-area, особенно такого, который может включать специальные области. Ключом к важности специальных типов областей в OSPF является тот факт, что они инициируют автоматическую фильтрацию определенных LSA из определенных областей. Например, подумайте о области 1, присоединенной к основной области области 0. Type 1 LSA заполнил область 1. Если у нас есть широковещательные сегменты, мы также имеем Type 2 LSA, циркулирующие в этой области. Area Border Router посылает LSA Type 3 в магистраль для суммирования префиксной информации из области 1. Этот ABR также принимает эту информацию от магистрали для других областей, которые могут существовать. Если где-то в домене есть ASBR, наша область 1 получит LSA Type 4 и LSA Type 5, чтобы узнать местоположение этого ASBR и префиксы, которыми он делится с нами. Обратите внимание, что это является потенциальной возможностью для обмена большим количеством информации между областями. Именно поэтому у нас есть специальные типы зон! OSPF LSAS И STUB AREA (ЗАГЛУШКА) Для чего предназначена Stub Area? Мы не хотим слышать о тех префиксах, которые являются внешними для нашего домена OSPF. Помните, у нас был такой случай? Конечно, это LSA Type 5. На самом деле, мы даже не хотим слышать о тех LSA Type 4, которые используются для вызова ASBR в сети. Таким образом, Stub Area заполнена LSA Type 1, Type 2 и Type 3. На самом деле, как эта область могла бы добраться до одного из этих внешних префиксов, если бы это было необходимо? Для этого мы обычно используем очень специальный LSA Type 3. Этот LSA представляет маршрут по умолчанию (0.0.0.0 / 0). Именно этот удобный маршрут позволяет устройствам в этой области добраться до всех этих внешних объектов. На самом деле именно этот маршрутизатор используется для получения любого префикса, специально не определенного в базе данных маршрутизации (RIB). OSPF LSA И TOTALLY STUBBY AREA (ПОЛНОСТЬЮ КОРОТКАЯ ОБЛАСТЬ) Использование этой области имеют малые перспективы LSA. Использование этой области имеет смысл тогда, когда мы хотим снова заблокировать Type 4 и 5, но в данном случае мы блокируем даже LSA Type 3, которые описывают информацию префикса из других областей в нашем домене OSPF. Однако здесь имеется одно большое исключение. Нам нужен LSA Type 3 для маршрута по умолчанию, чтобы мы действительно могли добраться до других префиксов в нашем домене. OSPF LSAS И NOT SO STUBBY AREA И TOTALLY NOT SO STUBBY AREA Запомните, что Not So Stubby Area должна иметь LSA Type 7. Эти LSA Type 7 допускают распространение тех внешних префиксов, которые входят в ваш домен OSPF благодаря этой созданной вами области NSSA. Очевидно, что эта область также имеет Type 1, Type 2 и Type 3 внутри нее. Type 4 и Type 5 будут заблокированы для входа в эту область, как и ожидалось. Вы также можете создать Totally Not So Stubby Area, ограничив Type 3 из этой области. VIRTUAL LINKS Вспомните из нашего более раннего обсуждения OSPF, что все области в автономной системе OSPF должны быть физически связаны с основной областью (область 0). Там, где это невозможно, вы можете использовать виртуальную связь (virtual link) для подключения к магистрали через область, не являющуюся магистралью. Учтите следующие факты о virtual link: Они никогда не должны рассматриваться в качестве цели проектирования в ваших сетях. Они являются временным "исправлением" нарушения работы OSPF. Вы также можете использовать virtual link для соединения двух частей секционированной магистрали через область, не являющуюся магистралью. Область, через которую вы настраиваете virtual link, называемую транзитной областью, должна иметь полную информацию о маршруте. Транзитная зона не может быть stub area (заглушкой). Вы создаете virtual link с помощью команды в режиме конфигурации OSPF: area 1 virtual-link 3.3.3.3 Эта команда создает virtual link через область 1 с удаленным устройством OSPF с идентификатором маршрутизатора (Router ID) 3.3.3.3. Вы также настраиваете это удаленное устройство OSPF с помощью команды virtual-link. Например, если наше локальное устройство OSPF находится в Router ID 1.1.1.1, то соответствующая удаленная команда будет: area 1 virtual-link 1.1.1.1 Примечание: virtual link — это всего лишь один из способов наладки нарушений в работе OSPF. Вы также можете использовать туннель GRE для исправления сбоев в работе OSPF.
ЗИМНИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59