По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
Всем привет! Мы продолжаем рассказывать про операционную систему Cisco IOS, и сегодня рассмотрим какие команды можно использовать для просмотра информации об устройстве, а также для выявления неполадок (troubleshooting).
Основная команда, которая нам в этом поможет, это команда show и различные ключевые слова. Существует много различных вариантов этой команды, и чтобы получить список всех доступных в данном режиме или контексте команд следует использовать вопросительный знак “?” после show.
Switch# show ?
Типичная команда show может предоставлять информацию о конфигурации, работе и статусе частей коммутатора или маршрутизатора Cisco. Очень часто используемая команда show - это демонстрационные интерфейсы. Эта команда отображает статистику для всех интерфейсов на устройстве. Там будет показано состояния интерфейсов и протоколов, их использование, ошибки, MTU и прочее. Чтобы просмотреть статистику для определенного интерфейса, введите команду show interfaces, за которой следует конкретный тип интерфейса и номер слота или порта.
Например:
Switch# show interfaces fastethernet 0/1
И если эта команда кажется длинной, то ее можно сократить до такого вида:
Switch# sh int fa 0/1
Одной из наиболее часто используемых команд на коммутаторе или маршрутизаторе является show version.
Эта команда отображает информацию о текущей загруженной версии IOS, а также информацию об оборудовании и устройстве. Если вы подключены к маршрутизатору или удаленному коммутатору, команда show version является отличным средством быстрого поиска полезной сводной информации о конкретном устройстве, к которому вы подключены.
Из вывода этой команды можно получить следующую информацию:
Software version - версия программного обеспечения IOS (хранится во флэш-памяти);
Bootstrap version - версия Bootstrap (хранится в Boot ROM);
System up-time - время после последней перезагрузки;
System restart info - информация о перезапуске системы - способ перезагрузки (например, цикл питания, сбой);
Software image name - имя файла IOS, хранящееся во флэш-памяти;
Router type and processor type - номер модели и тип процессора;
Memory type and allocation - Тип и распределение ОЗУ;
Software features - Поддерживаемые протоколы /наборы функций;
Hardware interfaces - Интерфейсы, доступные на устройстве;
Configuration register - Устанавливает параметры загрузки, настройку скорости консоли и связанные параметры;
Если команда выводит больше данных, чем может отображаться на одном экране, в нижней части экрана появляется сообщение --More--. Когда появится строка --More--, нужно нажать пробел, чтобы просмотреть следующую часть вывода. Чтобы отобразить только следующую строку, нужно нажать клавишу Enter. Если нажать какую-либо другую клавишу, то вывод будет отменен.
В таком случае если выводится много информации можно использовать фильтры, которая поможет вычленить необходимую информацию из общего вывода. Для этого после команды show и ее аргумента нужно поставить символ “|” (pipe), указать фильтр и регулярное выражение, по которому будет произведен поиск.
Например:
Switch# show run | include ip dhcp pool
Где include это фильтр, а ip dhcp pool это регулярное выражение.
Использовать можно такие фильтры:
include – отобразит те строки из выдачи, в которых есть регулярное выражение;
exclude – отобразит все те строки из выдачи, в которых нет регулярного выражения;
begin – отобразит все строки, начиная со строки, где находится регулярное выражение;
section – отобразит раздел с регулярным выражением в названии;
Также рассмотрим другие часто используемые команды, которые могут быть полезны
show running-config Отображает содержимое текущего запущенного файла конфигурации
show startup-config Отображает сохраненную конфигурацию, расположенную в NVRAM
show ip interface Отображает статус IP протокола и его сервисов на всех интерфейсах. Для вывода краткой информации можно использовать команду show ip interface brief
show ip route Отображает таблицу маршрутизации роутера, где показаны все доступные сети, используемые протоколы маршрутизации и их метрики
show arp Показывает ARP таблицу
show mac-address-table Показывает таблицу mac адресов
show cdp neighbors Показывает соседние устройства Cisco, использующие протокол CDP
show spanning-tree Отображает информацию о протоколе STP
show vlan Показывает информацию о всех VLAN’ах в системе. Для краткой сводки можно использовать команду
show ip dhcp binding Отображает информацию о адресах, выданных DHCP сервером
show ip nat translations Показывает таблицу NAT трансляций
show history Показывает введенные ранее команды
show inventory Отображает информацию о продукте в виде UDI. UDI представляет собой комбинацию из трех отдельных элементов данных: идентификатор продукта (PID), идентификатор версии (VID) и серийный номер (SN).
show hardware Отображает информацию “железе”
show power Отображает информацию о питании
show processes Отображает активные процессы системы
show protocols Показывает используемые протоколы
show flash Показывает содержимое флеш памяти
Стоит заметить, что команды могут отличаться в зависимости от типа и модели устройства, а также версии IOS. Поэтому информацию о командах для конкретной модели лучше всего уточнять на сайте производителя.
В наше время компьютерные сети получили широчайшее распространение. Сложно представить работу любого учреждения, в котором не было бы доступа в интернет или же локальной компьютерной сети. В последние годы все большие обороты набирает беспроводной доступ в интернет, однако в этой статье речь пойдет о старых добрых проводных соединениях. В частности о витой паре.
Это интересно - в профессиональной среде витую пару называют "патч - корд"
Что такое витая пара?
В народе так называют кабель связи, состоящий из пары (или нескольких пар) скрученных между собой проводов в единой оболочке. Чтобы связать устройства посредством этого кабеля, в большинстве современных устройств предусмотрены восьмиконтактные разъемы 8Р8С. В обиходе их часто называют RJ45, но это ошибочное именование, поскольку RJ45 это другой стандарт связи, со своим коннектором, не совместимым с 8Р8С, хотя и напоминающим последний внешним видом.
Однако, просто обжать коннекторы на концах кабеля это еще не все. Многие администраторы сетей сталкивались с проблемой, когда сигнал не проходит по проводу. В данном случае приходится вынимать из разъемов оба конца витой пары, и сверять порядок проводов между собой. И хорошо, если кабель короткий 3-5 метра. А если он проведен в другое помещение? Для избежания таких ситуаций и были введены стандарты так называемой распиновки витой пары.
Кабели витой пары имеют более десятка стандартов, однако на текущий момент ранние из них неактуальны по причине низкой скорости передачи данных. На текущий момент стандартная витая пара, используемая в большинстве сетевых устройств это 8 изолированных проводов, попарно свитых между собой и заключенных в общую оболочку. Для удобства распиновки каждый провод обозначается своим цветом (далее для иллюстрации схем распиновки используем сокращения):
бело-оранжевый (БО) оранжевый (О);
бело-зеленый (БЗ) зеленый (З);
бело-синий (БС) синий (С);
бело-коричневый (БК) коричневый (К;)
Типы соединений посредством витой пары также разнятся. Это могут быть как прямые соединения (например, для соединения IP-камеры с сервером или коммутатором), так и кросс-соединения (для соединения однотипных устройств, к примеру, чтобы связать ноутбук и компьютер), или консольные соединения (используются для настройки маршрутизатора с ПК, в основном, в оборудовании Cisco). Для каждого типа соединения важно использовать свои стандарты распиновки.
Типы соединений
Для прямых соединений обычно используется два стандарта. По стандарту TIA/EIA-568A распиновка будет следующей:
БЗ-З-БО-С-БС-О-БК-К
Для стандарта TIA/EIA-568B, используемого чаще, применим такой вариант:
БО-О-БЗ-С-БС-З-БК-К
Чтобы создать перекрестное (кросс) соединение, на одном конце кабеля порядок проводов будет таким:
БО-О-БЗ-С-БС-З-БК-К
А на другом таким:
БЗ-З-БО-С-БС-О-БК-К
Отметим, однако, что большинство современных сетевых устройств автоматически определяют метод обжима кабеля и подстраиваются под него, поэтому кросс-соединение в настоящее время утратило актуальность в пользу прямого.
Для консольного соединения необходимо обжимать провода в «зеркальном» порядке на обоих концах. Иными словами, на одном конце схема обжима будет выглядеть так:
БО-О-БЗ-С-БС-З-БК-К
А на другом так:
К-БК-З-БС-С-БЗ-О-БО
Несмотря на развитие в последние годы беспроводной передачи данных, проводные соединения обеспечивают более стабильную и быструю (в большинстве случаев) связь, что позволяет им быть актуальными до сих пор. Соблюдение стандартов распиновки позволит быстрее наладить соединение даже в крупных сетях, а также в будущем даст возможность быстрого устранения неполадок, связанных с выходом кабеля из строя, поскольку слабым местом витой пары обычно остаются соединения с коннекторами.
Итак, вы полностью укомплектовали и настроили ваш умный дом. И конечно, вам нравится периодически показывать выпендриваться перед друзьям, как круто включать лампы, проигрывать видео и фильмы подсказкой голосовому помощнику, приготовить кофе или регулировать термостат коснувшись приложения на экране смартфона. Поздравляем!
Но если вы любитель автоматизации (как и мы), который редко останавливается на достигнутом, то возможно будете разочарованы количеством необходимых программ, которые нужно загрузить, интерфейсов, которые вам придётся усваивать, чтобы управлять гаджетами. Скорее всего, будут отдельные приложения для управления освещением, медиацентром, термостатом и приложение Google Home, который изо всех сил (но безнадежно) старается собрать всё это воедино.
Большая вероятность того, что некоторые приложения будут несовместимы с другими и, вероятно, многие из них не будут работать, если они не в одной сети с гаджетом. Представьте если бы мы смогли управлять всем этим из одного интерфейса, на засоряя телефон или компьютер сотнями приложений, через интерфейс, который доступен как на смартфонах, так и на компьютерах, а также с помощью сторонних сценариев вне зависимости от того, находимся ли мы в одной сети с умным домом или нет. Интерфейс, который был бы легким и простым в использовании?
А что если мы будем делать это через мессенджер или чат? В конце концов, разве не легче было бы контролировать наш дом, гаджеты и облачные сервисы через тот же интерфейс, который мы используем для отправки фотографий котиков нашим друзьям, и через бот, полностью адаптированный к нашим потребностям?
В этой статье я покажу вам, как настроить команды и процедуры в дополнение к существующим сетапам умного дома. В данном руководстве мы используем два основных инструмента:
Telegram: существует много мессенджеров и платформ, но до сих пор попытки многих из них (Facebook Messenger, Whatsapp, Hangouts и т.д.) в предоставлении пригодного для разработчиков API, мягко говоря, были тщетны. Ушли те дни, когда все использовали XMPP или IRC в качестве своего мессенджер. Сегодняшний мир мессенджеров очень разнообразен.
Кроме того, поскольку в интересах многих крупных игроков создавать изолированные ИТ экосистемы, наиболее часто используемые решения не поставляются с официально поддерживаемыми API/интерфейсами разработчиков. Мало того: некоторые из них активно отговаривает пользователей от использования чего-либо, кроме официального приложения, для взаимодействия с платформой (почитайте, как Whatsapp может забанить вас).
В этом чрезвычайно разнообразном мире, состоящем из нескольких несвязанных островов, Telegram представляет собой радостное исключение: их официальный bot API хорошо задокументирован и поддерживается, и для тех, кто знает немного программирования, очень легок в интеграции.
Platypush: Platypush поставляется с плагином для Telegram и бэкэндом. Так что давайте начнем и создадим первый бот для автоматизации управления домом!
Создание Telegram-бота
Начните беседу с Botfather.
Наберите /start, а затем /newbot для создания нового бота. Задайте боту ник и имя.
Вы получите ссылку, чтобы начать беседу с вашим ботом и уникальный API-ключ. Сохраните его где-нибудь, так как он нам понадобится для конфигурации плагина platypush.
Конфигурация бота в platypush
1. Установите platypush с основными расширения и интеграцией с Telegram:
pip install 'platypush[http,db,telegram]'
apt-get install redis-server
[sudo] systemctl start redis
[sudo] systemctl enable redis
2. Изучите platypush хотя бы немного, если еще не сделали этого. Определите несколько вещей, которыми вы хотите управлять/автоматизировать - источники света, музыку, датчики, базу данных, роботы - и установите/настройте соответствующие расширения.
В этой статье мы рассмотрим, как настроить наш новый бот для управления освещением Philips Hue, воспроизведением музыки и потоковой передачей PiCamera.
3. Добавьте настройки Telegram в файл ~/.config/platypush/config.yaml:
chat.telegram:
api_token: <your bot token>
backend.chat.telegram:
enabled: true
Бэкэнд-система позволяет получать события (например, новые сообщения, вложения, запросы и т.д.) и создавать на них пользовательские "хуки". Плагин позволяет писать вам чаты, программно отправлять сообщения и вложения, администрировать каналы и т.д.
Допустим, мы хотим, чтобы бот реализовал следующие команды:
/start
Приветствие пользователя
/help
Показать доступные команды
/lights_on
Включить свет
/lights_off
Выключить свет
/music_play
Включить музыку
/music_pause
Приостановить музыку
/music_next
Перейти на следующую песню
/music_prev
Перейти на предыдущую песню
/start_streaming
Начать удаленное вещание PiCamera
/stop_streaming
Остановить удалённое вещание PiCamera
Всё что мы должны сделать это создать действие в конфигурационном файле platypush config.yaml. В этом контексте вы должны:
Установить и настроить плагины Philips Hue, mopidy и PiCamera:
pip install 'platypush[hue,mpd,picamera]'
# Hue lights configuration
light.hue:
# Hue bridge IP address
bridge: 192.168.1.10
# Default groups to control
groups:
- Living Room
# MPD/Mopidy configuration
music.mpd:
host: localhost
port: 6600
# PiCamera configuration
camera.pi:
vflip: False
hflip: False
Чтобы не засорять файл config.yaml, создайте новый файл с названием ~/.config/platypush/include/bot.yaml:
# /start command handler
event.hook.OnTelegramStartCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: start
then:
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Welcome! Type /help to see the available commands"
# /help command handler
event.hook.OnTelegramHelpCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: help
then:
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Available commands:
- /lights_on
- /lights_off
- /music_play [resource]
- /music_pause
- /music_prev
- /music_next
- /start_streaming
- /stop_streaming
"
# /lights_on command handler
event.hook.OnTelegramLightsOnCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: lights_on
then:
- action: light.hue.on
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Lights turned on"
# /lights_off command handler
event.hook.OnTelegramLightsOffCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: lights_off
then:
- action: light.hue.off
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Lights turned off"
# /music_play command handler
event.hook.OnTelegramMusicPlayCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: music_play
then:
- if ${cmdargs}:
- action: music.mpd.play
args:
resource: cmdargs[0]
- else:
- action: music.mpd.play
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Music playing"
# /music_pause command handler
event.hook.OnTelegramMusicPauseCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: music_pause
then:
- action: music.mpd.pause
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Music paused"
# /music_prev command handler
event.hook.OnTelegramMusicPrevCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: music_prev
then:
- action: music.mpd.previous
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Playing previous track"
# /music_next command handler
event.hook.OnTelegramMusicNextCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: music_next
then:
- action: music.mpd.next
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "Playing next track"
# /start_streaming command handler
event.hook.OnTelegramCameraStartStreamingCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: start_streaming
then:
- action: camera.pi.start_streaming
args:
listen_port: 2222
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "PiCamera streaming started. Check it out with vlc tcp/h264://hostname:2222"
# /stop_streaming command handler
event.hook.OnTelegramCameraStopStreamingCmd:
if:
type: platypush.message.event.chat.telegram.CommandMessageEvent
command: stop_streaming
then:
- action: camera.pi.stop_streaming
- action: chat.telegram.send_message
args:
chat_id: ${chat_id}
text: "PiCamera streaming stopped"
Подключите файл конфигурации бота в config.yaml:
include:
-include/bot.yaml
Запустите platypush:
# Manual start
platypush
# Service start
systemctl start platypush.service
Создайте беседу в вашим ботом перейдя по ссылке, выданной BotFather и начните говорить ему, что делать:
Сейчас бот доступен любому мы этого явно не хотим. Представьте, что кто-то включит на полную громкость System Of A Down- Jet Pilot вам ночью. Так себе пробуждение. Можно настроить бэкэнд Telegram так, чтобы он принимал сообщения только из определенного списка идентификаторов чатов (в Telegram chat_id используется как для частных пользователей, так и для групп).
Отправьте сообщение боту и откройте журналы platypush или проверьте его стандартные выходные данные. На экране появятся следующие сообщения:
2020-01-03 19:09:32,701| INFO|platypush|Received event: {"type": "event", "target": "turing", "origin": "turing", "id": "***", "args": {"type": "platypush.message.event.chat.telegram.CommandMessageEvent", "chat_id": your_chat_id, "message": {"text": "/help", ...}, "user": {"user_id": your_user_id, "username": "****", "is_bot": false, "link": "https://t.me/you", "language_code": "en", "first_name": "***", "last_name": "***"}, "command": "help", "cmdargs": []}}
Скопируйте chat_id своего пользователя и вставьте в бак-энд файл:
backend.chat.telegram:
authorized_chat_ids:
- your_user_id
Теперь бот ответит ошибкой, если вы попытаетесь отправить сообщение от неавторизованного пользователя.
Вы также можете пригласить своего бота в групповой чат и позволить вашим друзьям или членам семьи регулировать свет в вашем доме, если вы захотите!
Что дальше?
В этой статье мы изучили только одну специфическую особенность интеграции Telegram - способность бота реагировать на события в команде, запускать действия и отвечать текстовыми сообщениями.
Как видно из списка поддерживаемых событий Telegram, можно сделать больше, например:
Создавать обработчики, когда кто-то делится контактной информацией - когда-нибудь думали разрешить боту автоматически хранить новые контакты, отправленные вам вашими друзьями в чате?
Создавайте обработчики при совместном использовании документов, видео или изображения - например, автоматически загружайте все файлы мультимедиа, отправленные в чат, на жесткий диск или удаленную папку Dropbox.
Выполнять действия с текстовыми сообщениями вместо команд - можно использовать TextNewsEvent, например, если вы предпочитаете вводить "включить свет" вместо "/lights_on."
Сделайте снимок на камеру наблюдения и отправьте ее себе командой send_photo. Можно также развернуть несколько ботов, например, для каждого устройства, чтобы можно было запускать действия на конкретном устройстве из связанного чата или вместо этого использовать один бот в качестве точки входа и доставлять сообщения другим устройствам через MQTT, Kafka или HTTP API.