Разработать shell скрипт для Ubuntu

800 руб.за час
26 июня 2020, 01:08 • 4 отклика • 73 просмотра
1. Скрипт должен быть отдельно запускаемый (Ubuntu 16.04). Зависимости могут быть nc, ping
2. Параметры запуска
- имя выходного файла. Содержит только имя файла (передача пути является ошибкой выполнения - путь через содержание символа /). Файл создается в директории запуска.
- тестирование доступности
- протокол (udp/tcp/both) если не указан, то оба проверяются
- сервер - ip или dns имя
- порт - порт для тестирования. Возможно указать несколько портов через запятую. Диапазон запретить
- проверить что нельзя передавать другие параметры
- тестирование задержки
- сервер - ip или dns имя
- можно запустить оба теста в один момент
3. Выходные данные
- создается tmp файл в директории запуска (имя передается во время запуска)
- структура данных в json формата
{
"availability":{
"result":"ok | fail", //если хоть одна проверка неудачная, то fail
"fails":[proto:server:port, tcp:demo.rostell.ru:1365], //все проверки, которые вернули ошибку. Если ошибок нет, то []
"success":[proto:server:port, tcp:demo.rostell.ru:1365] //все проверки, которые без ошибок. Если успешных нет, то []
},
"latency":{
"server":"ip/fqdn", //сервер из команды запуска
"transmitted":500, //число
"received":500, //число
"loss":500, //число (% надо пересчитать в абсолютное значение)
"time":"6280", // все значения ниже должны быть текстом в ms. Если значения нет, то равно 0
"rtt_min":"12.162",
"rtt_avg":"12.247",
"rtt_max":"13.038",
"rtt_mdev": "0.091",
"ipg":"12.586",
"ewma":"12.242"
}
}
- блок availability только когда тестирование доступности
- блок latency только когда тестирование задержки
4. Возможные варианты получения данных
- тестирование доступности
- '</dev/proto/server/port'
- 'nc -z -v -i 1 <host> <port>' Для udp добавляется опция -u
- тестирование задержки
- ping -i 0.05 -q -A -c 500 -s 1458 <server>
Отзывы
Михаил справился с задачей, при том что мы по ходу переписали ТЗ.
За доработки взял адекватную сумму. Советую брать в проекты.
~ 1 год назад
R50 cbf020e10305660a2139a3b1485ad95c
Фрилансер
Хороший заказчик, грамотное тз, всем советую.
~ 1 год назад