Tengo una máquina CentOS 7 que copia datos continuamente a AWS/S3.
Sin embargo, tiene un problema y agradecería sugerencias sobre cómo depurarlo.
La copia a S3 continuaría durante horas/días y luego la red dejaría de funcionar (tengo un cron
trabajo que registra un ping a la red cada minuto, así como el comando S3 aws s3 cp
, así que sé el minuto exacto en que sucedió). ).
En esa etapa, el NetworkManager
demonio se ve bien syslog
y journalctl -xe
no muestra nada fuera de lo común, pero la única forma de hacer que la red vuelva a funcionar es reiniciar.
Ningún usuario en esa máquina tiene trabajos programados (crontab) para el momento en que la red dejó de funcionar normalmente, la máquina tiene una IP estática y hasta el momento del problema, la máquina y la red funcionan sin problemas.
¿Alguna idea sobre cómo solucionar este problema?
Edición 1:
Según la sugerencia de Artem Tashkinov, agregué a crontab una llamada, cada minuto, a un script que hace lo siguiente:
#!/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
Y veré si es capaz de revivir la red cuando muera.
Edición 2:
Incluso con el guión, la red no revivió cuando falló.
Sin embargo, mejoré el script al agregar una NIC externa para ver si resuelve el 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
Respuesta1
pero la única forma de hacer que la red vuelva a funcionar es reiniciar
He tenido servidores como este en el pasado.
Lo que hice fue agregar una tarea al crontab haciendo ping a una dirección IP conocida. Si es inaccesible, se cerró la red, se eliminó el módulo del kernel responsable de la NIC ( rmmod module_name
) y se insertó nuevamente ( modprobe module_name
) y por último se inició nuevamente la red. Por favor pruebalo.
Si te funciona definitivamente deberíasReportar un error.