Eu tenho uma máquina CentOS 7 que copia dados continuamente para AWS/S3.
No entanto, há um problema, pelo qual ficaria grato por sugestões sobre como depurar.
A cópia para o S3 duraria horas/dias, e então a rede pararia de funcionar (tenho um cron
trabalho que registra um ping na rede a cada minuto, assim como o comando do S3 aws s3 cp
, então sei o minuto exato em que isso aconteceu ).
Nesse estágio, o NetworkManager
daemon parece bem, syslog
e journalctl -xe
não mostra nada fora do comum, mas a única maneira de fazer a rede funcionar novamente é reinicializando.
Nenhum usuário nessa máquina possui trabalhos agendados (crontab) para o momento em que a rede parou de funcionar normalmente, a máquina possui um IP estático e, até o momento do problema, a máquina e a rede funcionam sem problemas.
Alguma idéia de como depurar esse problema?
Editar 1:
Por sugestão de Artem Tashkinov, adicionei ao crontab uma chamada, a cada minuto, para um script que faz o seguinte:
#!/bin/bash -xv
ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
then
echo Successful
else
echo Fail
systemctl stop NetworkManager
rmmod r8169
modprobe r8169
systemctl start NetworkManager
fi
E verei se é capaz de reviver a rede quando ela morrer.
Editar 2:
Mesmo com o script, a rede não foi reativada quando falhou.
Porém, aprimorei o script ao adicionar uma NIC externa, para ver se isso resolveria o problema.
#!/bin/bash -xv
#
#kernel_module="r8169" # on-board NIC
#kernel_module="e1000e" # add-on NIC
nic=$( ifconfig | grep -B1 10.60.100 | head -1 | awk -F: '{ print $1 }' )
kernel_module=$( ethtool -i $nic | grep driver | awk '{ print $NF }' )
ping -c1 1.1.1.1 >/dev/null 2>&1
if [ $? -eq 0 ];
#if [ $? -ne 0 ];
then
echo Successful
else
echo Fail
systemctl stop NetworkManager
rmmod $kernel_module
modprobe $kernel_module
systemctl start NetworkManager
fi
Responder1
mas a única maneira de fazer a rede funcionar novamente é reinicializando
Já tive servidores assim no passado.
O que fiz foi adicionar uma tarefa ao crontab fazendo ping em um endereço IP conhecido. Caso estivesse inacessível, a rede era desligada, o módulo do kernel responsável pela NIC era removido ( rmmod module_name
) e inserido novamente ( modprobe module_name
) e por último a rede era reiniciada. Por favor tente.
Se funcionar para você, você definitivamente deveriareportar um erro.