Поскольку вы не указали, а также для пользы других читателей, я опишу, что делать, используя syslog-ng и rsyslog, чтобы сервер одновременно вел логи на два удаленных сервера syslog.
Если у вас syslog-ng ведет логи на центральный сервер syslog, измените /etc/syslog-ng.conf
Как пример:
source s_src { unix-dgram("/dev/log"); internal();
file("/proc/kmsg" program_override("kernel"));
};
destination d_loghost {udp("10.10.1.1" port(514));};
log { source(s_src); destination(d_loghost); };
Чтобы вести логи на второй пункт назначения, добавьте:
destination d_loghost2 {udp("10.10.1.2" port(514));};
log { source(s_src); destination(d_loghost2); };
Если используется rsyslog
, то на самом деле все проще. Конфигурационный файл - /etc/rsyslog.conf
Где вы находите пункт назначения:
*.* @10.10.1.1:514
вы добавляете второй пункт назначения:
*.* @10.10.1.2:514
После изменения конфигурации, демоны syslog на стороне клиента должны быть перезапущены. Это будет, соответственно,
sudo service syslog-ng restart
или
sudo service rsyslog restart
Поскольку демон syslog отправляет все сообщения во все настроенные пункты назначения, если вы явно не отфильтруете службы или уровни журналов, вам не нужно настраивать что-либо еще [на стороне клиента]. Оба будут получать одинаковые журналы.
Я думаю, что это ближе к тому, что вы хотите, но определенно может быть улучшено дальше:
while :; do
if ! ping -c1 google.com >/dev/null 2>&1; then
echo "no ping,will reset"
#counter of bad pings here
count=1
while [ "$count" -lt 30 ]; do
echo "$count"
# insert here: retest for good ping
nmcli networking off
sleep 5
nmcli networking on
if ! ping -c1 google.com >/dev/null 2>&1; then
echo "still offline for $count x @ $(date)"
else
#echo "reconnected at $(date)"
echo "ON"
break
fi
((count++))
sleep 1
done
else
echo "ONLINE"
sleep 1
clear
fi
done