Позднее Ctrl + ↑

eNSP версии 20V100R003C00 и V100R003C00SPC100

Самый последний релиз, после которого Huawei решили убрать eSNP из публичного доступа.
Да, сейчас даже старые версии эмулятора нельзя скачать с support.huawei.com:

Добрый день.
Уточнил информацию:
Эмулятор eSNP теперь доступен только для отрудников и партнеров Huawei. Чтобы получить доступ на скачивание, необходимо будет подписать соглашение о нераспространении данного ПО компании. По этому вопросу просьба обратиться к своему сервис-менеджеру.
Customer Support Engineer | Enterprise CIS TAC | EBG Russia & Central Asia TAC

Так как никаких соглашений я не подписывал, делюсь тем, что удалось получить.

Зависимости

  • WinPcap 4.1.3
  • VirtualBox 5.0.28
  • Wireshark любой

❗️ Не удалось запустить на Windows 10 (не стартуют устройства серии AR), но на W7 и Server 2012 R2 работает. Если кто-нибудь поделится секретом запуска под W10, буду благодарен.
✅Чекайте комментарии, там полезное.

Ссылки

Скачать установщик eNSP V100R003C00 (1.3.00): 540Мб
Скачать образы CE, CX, NE5KE, NE9KE, NE40E, USG6000V: 2,4Гб
Скачать 7-zip для распаковки: 1,5Мб

Обновление 22/02/22

Загрузил установщик eNSP V100R003C00SPC100 (1.3.00.100), скачать тут: 542Мб
? Пароль от архива: omavel
Китайские интернеты говорят, что отличия от 1.3.00 такие:

Исправлена ​​проблема, из-за которой эмуляции CE/NE/CX не могли быть запущены во второй раз после первого успешного запуска
Исправлена ​​проблема, из-за которой командная строка иногда не могла быть подключена после частого запуска и остановки трех эмуляций CE/NE/CX

Сам я эту версию не использовал, предоставляю как есть.

Как следить за изменением файлов в CentOS/RHEL через path units?

При запуске демона, systemd читает его конфигурацию из коллекции юнит-файлов. Есть специальные path-юниты, которые позволяют мониторить события, связанные с директориями и файлами. Если определенное событие наступает, запускается сервис-юнит.

Допустим, мы хотим знать об изменениях файла test в домашней директории.

Создаем path-юнит /etc/systemd/system/example.path

[Unit]
Description=Monitor test file for changes
[Path]
PathChanged=/home/omavel/test
Unit=example.service
[Install]
WantedBy=multi-user.target

PathChanged абсолютный путь до файла
Unit название сервис-юнита который мы опишем дальше, он будет запускаться при изменении файла. Можно не указывать, если название сервиса совпадает с path-юнитом (в приведенном примере они совпадают — example.path, example.service)
WantedBy юнит запускается в режиме multi-user операционной системы. Проверить можно командой

systemctl get-default

Далее создаем сервис-юнит /etc/systemd/system/example.service

[Unit]
Description=Executes script when a file has changed
[Service]
Type=simple
ExecStart=/home/omavel/script.sh
[Install]
WantedBy=multi-user.target

Заведем скрипт /home/omavel/script.sh, который будет запускаться сервисом
Скрипт отмечает факт изменения файла в output.log

#!/bin/bash
echo "`date` file changed" >> /home/omavel/output.log

Сделаем скрипт исполняемым

chmod +x /home/omavel/script.sh

Включим автоматический запуск обоих юнитов при загрузке и запустим path

systemctl enable example.{path,service}
systemctl start example.path

Протестируем

echo > /home/omavel/test

В логе должна появиться новая строка
Mon Jul 15 10:15:20 MSK 2019 file changed

Таким образом

  • Path-юнит запущен всегда и следит за изменениями файла
  • При наступлении события, он запускает сервис-юнит
  • Сервис-юнит запускает скрипт (или что угодно)
  • Скрипт пишет в лог (или куда угодно)

Ограничения

  • Способ не подходит для мониторинга NFS, так как использует inotyfy API

Что еще?

  1. В ExecStart сервис-юнита можно сразу указывать бинарник с параметрами, например так я отправляю данные в Zabbix Trapper:
ExecStart=/bin/zabbix_sender -z zabbix.server -s hostname -k itemkey -o "1"
  1. Помимо PathChanged есть несколько других параметров