Мониторинг Ping для файла, разделенного запятыми, в Bash? - PullRequest
0 голосов
/ 09 июля 2019

Я пытаюсь создать ping-мониторинг для клиентских устройств OpenVPN.

Я хочу пинговать все устройства из списка IP-адресов.

Файл .txt выглядит следующим образом:

client1,10.8.0.2
client2,10.8.0.3
client3,10.8.0.3
.. and so on 

Я хочу, чтобы скрипт bash создал файл .txt, содержащий следующее:

client1: online
client2: offline
client3: online
and so on.

Как это возможно?

Заранее спасибо!

1 Ответ

0 голосов
/ 09 июля 2019

Для своих нужд я использую этот скрипт:

#! /bin/bash
while read -r client address
do
    ping -c 1 $address
    ret=$?
    if [[ 0 -eq $ret ]] 
    then
        echo "$client: online"
    else
        echo "$client: off line"
    fi
done < clients

С:

IFS=,

Установить запятую в качестве разделителя полей

while read -r foo bar

Чтение файла и сохранениеполя в client и adrress переменных

pinc -c 1 address

Пинг address только один раз

ret=$?

Get ping возвращаемое значение команды (0когда все идет как надо)

if [[0 -eq $ ret]] ....

проверить, успешно ли ping

echo "$client: online"

Учитывая pingрезультат, печатать онлайн или офлайн

done < clients

Идиоматическая конструкция для чтения файла строка за строкой

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...