Я бы предложил нечто подобное, что также будет очищать выходной файл для каждого запуска, а не дополнять его каждый раз:
#!/usr/local/bin/bash
outfile="/home/insight/scripts/lrkdc01ping.out"
date > "$outfile"
while read output; do
echo -n "$output is " >> "$outfile"
if ping -c1 "$output" > /dev/null 2>&1; then
echo "up" >> "$outfile"
else
echo "down" >> "$outfile"
fi
done < /home/insight/scripts/lrkdc01.txt
Основные отличия заключаются в использовании >
вместо >>
для вызова date
, так что у вас будет чистый файл для каждого запуска; и упростить использование кода выходаping
:
Лучше просто
if verb; then
action
else
failure_action
fi
вместо
verb
if [[ 0 -eq $? ]]; then
action
else
failure_action
fi
Кроме того, вместо того, чтобы редактировать четыре места, если вы решите переместить или изменить имя выходного файла, я поместил его в переменную, чтобы вам нужно было обновить его только в одном месте. Мое общее эмпирическое правило таково: «Если вы печатаете одно и то же более двух раз, оно должно быть абстрагировано».
Кажется, вы используете OpenVPN 2.3.9
.
Такие параметры, как block-outside-dns
и tls-crypt
, доступны только в OpenVPN 2.4.x
.
Вы можете обновить OpenVPN
и использовать тот же файл .ovpn
.