ပြဿနာကဒီလို အိမ်က Wifi က Singtel သုံးတာ။ မကြာမကြာသူတို့ဘက်က အင်တာနက် line ကျတက်တယ်။ အကြာကြီးမဟုတ်ပါဘူး seconds ပိုင်းဘဲ အလွန်ဆုံး minutes ပေါ့။ ပြဿနာက ကျနော့် mini PC က wifi ပြန်မချိတ်ဘူး။ Setting တွေဘာတွေလိုက်ပြင်လဲ အလုပ်မဖြစ်ဘူး။ ကျနော်အိမ်မှာရှိတဲ့အချိန်ဆိုရင်တော့ပြဿနာမရှိဘူး mini PC ကို moniotr keybaord နဲ့ချိတ်ပီးတော့ Wifi connect ပြန်လုပ်လိုက်ရင်ပြဿနာကပီးသွားကော။ ပြဿနာကကျနော်အိမ်မှာမရှိဘူးဆိုရင်ဘာမှလုပ်မရတော့ဘူး။ SSH လဲဝင်မရဘာဆိုဘာမှလုပ်မရ။
ဒါနဲ့ manual wifi disconnect လုပ်ပီး connect လုပ်ရင် အဆင်ပြေမလားဆိုပီးတော့ စမ်းကြည့်လိုက်တာ အဆင်ပြေသွားတယ်။ မထူးပါဘူးအဲ့ကောင် script ရေးပီးတော့ mini pc ထဲ cron နဲ့ run ထားလိုက်မယ်ဆိုပီးတော့ အောက်က script ရေးထားလိုက်တယ်။
#!/bin/bash
# Name of the WiFi interface
INTERFACE='wlan0'
# Log file path
LOGFILE="/var/log/reconnect_wifi.log"
# Check if the internet is connected
if ! ping -c 1 8.8.8.8 &> /dev/null; then
echo "$(date) - Internet not connected. Trying to reconnect..." >> $LOGFILE
# Restart the network service
sudo nmcli device disconnect $INTERFACE >> $LOGFILE 2>&1
sleep 5
sudo nmcli device connect $INTERFACE >> $LOGFILE 2>&1
else
echo "$(date) - Internet is connected." >> $LOGFILE
fi
အင်တာနက်ရမရကိုတော့ 8.8.8.8
ကို ping လိုက်တယ်။ ဘာ response မှမရဘူးဆိုရင် disconnect လုပ် 5 seconds စောင့်ပီးပြန်ပီး enable လုပ်လိုက်တယ်။
script ကိုကိုယ်တိုင် run ပီးစမ်းကြည့်ပီးတော့အဆင်ပြေပီဆိုပီးတော့ crontab -e
ခေါ်ပီးတော့ every minutes တိုင်း run ထားတာ။ ဟိုတလောကအင်တာနက်ခဏကျသွားတဲ့အချိန်သတိမထားလိုက်မိဘဲ ဒီတိုင်းနေနေတာ ဒီနေ့မှ website access လဲလုပ်ကောမရဘူး။ ဒါနဲ့မဖြစ်သေးပါဘူးဆိုပီးဝင် debug လုပ်ကြည့်မှ script က မ run နိုင်ဘူး။ nmcli
က root မှရမှာဆိုတာအဲ့ကြမှသိပီးတော့ လိုအပ်တာတွေပြင်ပီး ဒီတခေါက်တော့သေချာ logs တွေဘာတွေနဲ့စမ်းကြည့်လိုက်တယ်။ အခုတော့ ပြန် connect လုပ်တာ သေချာသလောက်ဖြစ်သွားပီ။
logs တွေထည့်လိုက်တော့ every minutes ဆိုတော့မလိုအပ်ဘဲ logs တွေ တောက်လျှောက်ဝင်ပီးတော့ storage အဆင်မပြေမှာလဲပူကတော့ မထူးပါဘူးဆိုပီး log rotate ပါလုပ်လိုက်တယ်။
/etc/logrotate.d/reconnect_wifi.log
ဆိုပီး အောက်မှာပြထားတဲ့အတိုင်း configure လုပ်လိုက်တယ်။ ဒါတော့သေချာမစမ်းကသေးဘူး နောက်အပတ်လောက်မှဘဲကြည့်ပီးတော့အလုပ်ဖြစ်မဖြစ်သိမှာ 😁
/var/log/reconnect_wifi.log {
daily
rotate 1
compress
delaycompress
missingok
notifempty
create 640 root adm
}