Как устранить странную сетевую проблему CentOS

Как устранить странную сетевую проблему CentOS

У меня есть машина CentOS 7, которая постоянно копирует данные в AWS/S3.
Однако у нее есть проблема, и я был бы благодарен за предложения по ее устранению.

Копирование на S3 продолжалось часами/днями, а затем сеть переставала функционировать (у меня есть задание, cronкоторое каждую минуту записывает пинг в сеть, а также команду S3 aws s3 cp, поэтому я знаю точную минуту, когда это произошло).

На этом этапе NetworkManagerдемон выглядит нормально, syslogи journalctl -xeне показывает ничего необычного, но единственный способ снова заставить сеть работать — это перезагрузка.

Ни у одного пользователя на этой машине нет запланированных заданий (crontab) на время, когда сеть перестала нормально функционировать, у машины есть статический IP-адрес, и до момента возникновения проблемы машина и сеть функционировали без проблем.

Есть идеи, как решить эту проблему?

Редактировать 1:

По предложению Артема Ташкинова я добавил в crontab вызов скрипта, который выполняет следующие действия:

#!/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

И я посмотрю, сможет ли он оживить сеть, когда она умрет.

Редактировать 2:

Даже при наличии сценария сеть не была восстановлена ​​после сбоя.

Однако я улучшил скрипт, добавив внешнюю сетевую карту, чтобы посмотреть, решит ли это проблему.

#!/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

решение1

но единственный способ восстановить работоспособность сети — это перезагрузка.

У меня уже были подобные серверы в прошлом.

Я добавил задачу в crontab, пингующую известный IP-адрес. Если он недоступен, сеть отключалась, модуль ядра, отвечающий за NIC, удалялся ( rmmod module_name) и вставлялся снова ( modprobe module_name), и, наконец, сеть запускалась снова. Попробуйте, пожалуйста.

Если это работает для вас, вам определенно стоит это сделать.сообщить об ошибке.

Связанный контент