sed 's/\(.\)#.*/\1/' file | cut -f 2 -d\ | sort | uniq -d
sed 's/\(.\)#.*/\1/'
обрезать -f 2 -d\
сортировать
uniq -d
Обратите внимание, что если нет возможности иметь строку типа
86.242.200.81 banana.domain.net#comment
Вы можете упростить вышеизложенное до:
cut -f 2 -d\ file | sort | uniq -d
так как комментарий будет считаться третьим полем.
Я сделал скрипт, который периодически пингует роутер. Если проверка связи не удалась, он пытается вернуть интерфейс, вызывая ifdown
и ifup
с небольшой задержкой.
Обратите внимание, что проверка связи с маршрутизатором не работает, если интерфейс не работает, а также ifup
не работает, если интерфейс не был закрыт должным образом ранее с помощью ifdown
.
Скрипт основан на этом лучшем ответе на вопросы.
#!/bin/bash
timeout=30
pingip='192.168.1.1'
iface="eth0"
LOG_FILE="/var/log/pinglog"
isdown=0
while true; do
LOG_TIME=`date +%b' '%d' '%T`
if ! ping -q -c 2 "$pingip" >> /dev/null ; then
if [[ "$isdown" -eq 0 ]]; then
isdown=1
timeout=0
printf "$LOG_TIME $0: Interface %s is down!\n" "$iface" | tee -a $LOG_FILE
fi
ifdown $iface
sleep 1
ifup $iface
else
if [[ "$isdown" -eq 1 ]]; then
isdown=0
timeout=30
printf "$LOG_TIME $0: Interface %s is up!\n" "$iface" | tee -a $LOG_FILE
fi
fi
sleep "$timeout"
done