백그라운드에서 인터넷 연결을 지속적으로 확인하는 가장 좋은 방법은 무엇입니까?

백그라운드에서 인터넷 연결을 지속적으로 확인하는 가장 좋은 방법은 무엇입니까?

네트워크 카드에 성능 문제가 있습니다. 잠시 후 인터넷이 끊어지지만 Wi-Fi 연결 수준은 변경되지 않습니다. 동일한 Wi-Fi 핫스팟에 다시 연결하면 이 문제를 해결할 수 있습니다.

인터넷 연결을 지속적으로(예: 10초마다) 확인하고 연결이 끊어지면 스크립트가 Wi-Fi에 다시 연결되는 해결 스크립트를 작성하고 싶습니다. 사용하고 싶지만 설명서에는 ping자동화 스크립트에 사용하는 것이 현명하지 않다고 나와 있습니다.ping

$ uname -a
Linux NS-COMP 4.11.0-13-generic #19~16.04.1-Ubuntu SMP Wed Aug 2 20:06:21 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

$ lspci -knn | grep Net -A2
03:00.0 Network controller [0280]: Ralink corp. RT3290 Wireless 802.11n 1T/1R PCIe [1814:3290]
    Subsystem: Foxconn International, Inc. RT3290 Wireless 802.11n 1T/1R PCIe [105b:e055]
    Kernel driver in use: rt2860

답변1

Wi-Fi 연결이 계속 끊어지는 이유:

~에 따르면데비안 문서현재 로드된 것 rt2800pci대신에 사용해야 합니다 . rt2860문제를 해결하기 위해 다시 연결 스크립트를 실행할 필요는 없습니다.

Bash 스크립트 예

Wi-Fi 연결이 끊어졌을 때(커널 모듈 다시 로드 + 다시 연결) 연결하기 위해 bash 스크립트를 실행해야 하는 경우 샘플 bash 스크립트는 다음과 같습니다 reconnect.

#!/bash/bash
if ! [ "$(ping -c1 8.8.8.8)" ]
then
    modprobe -r rt2860
    modprobe rt2800pci
    ip link set wlan0 down
    ip link set wlan0 up
fi

reconnect10초마다 스크립트를 실행합니다.

while true ; do ./reconnect & sleep 10 ; done &

몇 시간 후에 Wi-Fi가 오프라인 상태가 되면 1시간마다 스크립트를 실행하는 크론 작업을 만드는 것이 좋습니다.여기 몇 가지 예가 있어요

관련 정보