AWS/S3 にデータを継続的にコピーする CentOS 7 システムがあります。
しかし、問題があるので、デバッグ方法の提案をいただきありがとうございます。
S3への複製は数時間/日間続き、ネットワークがダウンします。 (私はcron
S3コマンドを使って毎分ネットワークにpingを記録することをしていますaws s3 cp
。
その段階では、NetworkManager
デーモンは大丈夫に見え、syslog
何journalctl -xe
の異常も見えませんでしたが、ネットワークを再実行する唯一の方法は再起動することでした。
ネットワークが正常に機能しない場合は、問題が発生するまでコンピュータにスケジュールされた(crontab)タスクを持つユーザーがなく、コンピュータに静的IPがあり、コンピュータとネットワーク機能の両方に問題はありませんでした。
この問題をデバッグする方法についてのアイデアはありますか?
編集1:
Artem Tashkinovの提案に従って、以下を実行する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アドレスをpingするタスクを追加することだけでした。接続できない場合は、ネットワークをシャットダウンし、NICを担当するカーネルモジュールを取り外し(rmmod module_name
)してから再挿入(modprobe module_name
)し、最後にネットワークを再起動してください。一度試してみてください。
それがあなたに効果があるなら、あなたはしなければなりませんエラー報告。