Вчера поехал в город, че-то захотелось вкусьненького, решил посетить ресторацию.
На такси обратно жаба задавила ехать, пошел на маршрутку до Бесовца, на останiвке (кто понял, тот понял) стоит чмобик, и кому-то бурно рассказывает по телефону:
- Да, еду. Вот через неделю уже еду, на фронт.
- Я же сержант медицинской службы.
- Да у меня экипировка будет, я же спонсора нашел. Осталось бронепластины купить.
- Дык мой генеральный [директор] тоже патриот, он мне все купит.
Хотелось, конечно, спросить, какие бронежилеты помогают от Хаймарса, но я вслушивался в важный разговор, чтобы понять, какой мудак его спонсирует. Жаль, название фирмы так и не было произнесено, иначе б я похвастался, что пополнил (в очередной раз) базу "Миротворца".
ЗЫ. Вот Мырзин мучительно отказывается от работы на СБУ, хотя ему настойчиво предлагали, а мы аж всей компанией хотим, и даже может че-то можем, хотя нас два околоайтишника, один айтишник, графоман и ветеринарша, но нам не предлагают.
Это репост с сайта http://tolik-punkoff.com
Оригинал: https://tolik-punkoff.com/2022/10/17/ch-m
|
(Ч)мобик.
Пост для связи провалился в варп
Со всеми комментариями. Скрипт для тестирования сетевых соединений. Инструкция.
Друзья из одной небольшой фиромочки попросили написать небольшой скрипт для тестирования соединений, чтобы быстро понять, где отвалилось. Например, упал роутер, не отвечает внутренний сервер, упал провайдер, или сдох VPN. Попросили сделать кросивое, с этим тоже справился, ошибки выделяются красным цветом, пройденные этапы зеленым, можно включить или отключить звуковое оповещение через PC-speaker. + Последовательно проводить два вида тестов: ping и получение страницы (или файла) с web-сервера+ Оповещать пользователя об ошибках или пройденных тестах, с цветным текстом. + Выдавать звуковые сигналы об успешном завершении теста, или об ошибке на PC-speaker. ![]() Для звуковых оповещений должен быть настроен PC-speaker и установлена утилита beep (копия). Последовательность операций задается в конфигурационном файле. Конфигурационный файл состоит из строк следующего формата: операция|адрес|отображаемое описание|прервать/игнорироватьПока поддерживаются только две операции: ping - для ping'а адресаgetp - для получения страницы или файла с WEB-сервера (с помощью wget)адрес - адрес, WWW для getp, IP или WWW для ping.отображаемое описание - описание операции, текст, который будет выводиться на консоль.прервать/игнорировать - при ошибке операции, если указано ключевое слово break, скрипт останавливает работу и выводит сообщение о том, что в ходе тестирования произошли ошибки. Если указать иное значение, например, skip, то скрипт продолжит производить тесты, пока не закончится конфигурационный файл, или пока не будет следующий сбой в тесте, где указана опция break.Названия операций и break нечувстивительны к регистру (т.е. можно написать Ping, ping или Getp, GeTP или BreaK, breaK).Первые два поля (операция и адрес) являются обязательными. Если они не будут указаны, скрипт будет прерван на строке с ошибкой: ![]() Если не будет указано поле описания, то оно будет по умолчанию установлено в значение No desription:![]() Если последнее поле не будет заполнено, то оно принимает значение break.Если в первом поле будет неверно указанный код операции, то скрипт его проигнорирует, выдав соответствующее сообщение, продолжит выполнять другие операции, но завершится с ошибкой: Ping|192.168.0.1|Main router|break #Main router ping![]() Для разделения полей используется символ |В конфигурационном файле можно использовать комментарии, начинающиеся с символа #, все, что находится после этого символа - игнорируется. Пустые строки также игнорируются.#inettest.cfg exampleСкрипт не имеет параметров командной строки, основные настройки осуществляются через переменные самого скрипта: CONFIG - путь к конфигурационному файлу, например CONFIG="./inettest.cfg". Если конфигурационный файл не будет найден, скрипт выдаст ошибку:CRITICAL ERROR: Config file ./inettest.cfg not exist! NOCOLOR - если значение равно 0, включить вывод цветного текста на консоль, если 1 - отключить. По умолчанию 0NOCOLOR=1:![]() NOSOUNDP - включение ( по умолчанию 0) или отключение (1) звука в процессе тестов. Звук выдается после каждого отдельного теста.NOSOUNDF - аналогично предыдущей переменной, только звук звучит после окончания всех тестов или их прерывания.NOADDR - 0, включить тестируемый адрес в вывод скрипта, 1 - не включать.NOADDR=0:![]() NOADDR=1:![]() PACKETS - количество пакетов для команды ping (по умолчанию PACKETS=3)TIMEOUT - тайм-аут для получения страницы или файла (в скрипте делается с помощью wget, по умолчанию TIMEOUT=5)Конфиг: Ping|192.168.0.1|Main router|break #Main router pingРезультат: ![]() ping:1 — No reply (не один из пакетов до пингуемого адреса не дошел) 2 — Other error (другая ошибка, в большинстве случаев — «сеть недоступна»). getp (wget):1 — Иная / общая ошибка (generic error code) 2 — Ошибка в параметрах командной строки или файлах конфигурации (.wgetrc или .netrc) 3 — Ошибка файлового ввода/вывода (I/O error) 4 — Ошибка сети (например, при обрыве связи) 5 — Ошибка SSL 6 — Ошибка идентификации (неправильное имя пользователя или пароль) 7 — Ошибка протокола 8 — Ошибка сервера (например, нужный файл на сервере не найден, ошибка 404) 0 - Ошибок в ходе тестов не произошло. 1 - Произошла хотя бы одна ошибка. Репозиторий на GitHub Это репост с сайта http://tolik-punkoff.com Оригинал: https://tolik-punkoff.com/2022/10/21/skr |






