Before you start, make sure ip command is available on your system. In modern Linux distributions, ip replaces older ifconfig command. If net-tools package (that includes ifconfig) is not installed and you prefer using it, you can install it via sudo apt-get install net-tools.
Use touch /home/pi/wifi-reconnect.sh to create a shell script file,
with the following content:
#!/bin/bash
SSID=$(/sbin/iwgetid --raw)
if [ -z "$SSID" ]; then
echo "`date -Is` WiFi interface is down, trying to reconnect" >> /home/pi/wifi-log.txt
if command -v /sbin/ip &> /dev/null; then
/sbin/ip link set wlan0 down
sleep 10
/sbin/ip link set wlan0 up
elif command -v sudo ifconfig &> /dev/null; then
sudo ifconfig wlan0 down
sleep 10
sudo ifconfig wlan0 up
else
echo "`date -Is` Failed to reconnect: neither /sbin/ip nor ifconfig commands are available" >> /home/pi/wifi-log.txt
fi
fi
echo 'WiFi check finished'Or you can also use the following command to download the script.
sudo wget https://raw.github.com/carry0987/Raspberry-Pi-Repo/master/Auto-WiFi-Reconnect/wifi-reconnect.shThis script uses /sbin/ip command for disabling and enabling the wlan interface. This is a more modern approach compared to using ifconfig and is the preferred way in newer Linux distributions.
sudo chmod +x /home/pi/wifi-reconnect.sh
sudo apt-get install cron
Use sudo vim /etc/crontab to edit crontab
By putting the following content at the end of the file:
* * * * * root /home/pi/wifi-reconnect.sh
Test it by disconnecting from WiFi:
/sbin/ip link set wlan0 down
The script should reestablish the connection within 1 minute.
After the RPi reestablishes the connection, reconnect to the RPi and check the log file:
cat /home/pi/wifi-log.txt

Thans for your feedback!
The issue you encountered might be due to the
net-toolspackage, which includes theifconfigcommand, not being installed on your system. Your suggestion to replace it with/sbin/ipnot only makes the script more aligned with current best practices (asifconfighas been deprecated in favor of theipcommand in most Linux distributions) but also ensures better compatibility with the latest versions of Pi OS Lite.Considering that the
ipcommand provides a more modern and universal interface for network management and is a standard part of many Linux systems, I will update the script to use/sbin/ip. Regarding thenet-tools, I will add a note to the script's documentation to help others who might face the same problem.Thanks again for your thorough feedback and suggestion. It's precisely contributions like yours that help improve the project for everyone :)