আমি মনে করি হোলোলিপ সলিউশন কাজ করছে।
আমার দ্রবণটি একটি কার্যক্ষম নেটওয়ার্ক সংযোগের জন্য প্রতি এন মিনিটে (আপনি কীভাবে আপনার ক্রন্টব কনফিগার করবেন তার উপর নির্ভর করে) পরীক্ষা করে। যদি চেক ব্যর্থ হয় তবে আমি ব্যর্থতার উপর নজর রাখি। যখন ব্যর্থতা গণনা হয়> 5 আমি ওয়াইফাই পুনরায় চালু করার চেষ্টা করি (ওয়াইফাই পুনরায় চালু না হলে আপনি রাস্পবেরি পুনরায় বুট করতে পারেন, মন্তব্যগুলি দেখুন)।
এখানে সর্বদা স্ক্রিপ্টের সর্বশেষতম সংস্করণ সম্বলিত একটি গীটহাব রেপো রয়েছে:
https://github.com/ltpitt/bash-network-repair-automation
এখানে, স্ট্যাকেক্সচেঞ্জের সাধারণ নীতি অনুসারে (সমস্ত উত্তরগুলিতে কেবল লিঙ্ক থাকা উচিত নয়), ফাইল নেটওয়ার্ক_চেক.শ ফাইলও, আপনার পছন্দ মতো যে কোনও ফোল্ডারে এটি অনুলিপি করে আটকান, নির্দেশাবলী ইনস্টল করা স্ক্রিপ্টের মন্তব্যে রয়েছে।
#!/bin/bash
# Author:
# twitter.com/pitto
#
# HOW TO INSTALL:
#
# 1) Install ifupdown and fping with the following command:
# sudo apt-get install ifupdown fping
#
# 2) Then install this script into a folder and add to your crontab -e this row:
# */5 * * * * /yourhome/yourname/network_check.sh
#
# Note:
# If you want to perform automatic repair fsck at reboot
# remember to uncomment fsck autorepair here: nano /etc/default/rcS
# Let's clear the screen
clear
# Write here the gateway you want to check to declare network working or not
gateway_ip='www.google.com'
# Here we initialize the check counter to zero
network_check_tries=0
# Here we specify the maximum number of failed checks
network_check_threshold=5
# This function will be called when network_check_tries is equal or greather than network_check_threshold
function restart_wlan0 {
# If network test failed more than $network_check_threshold
echo "Network was not working for the previous $network_check_tries checks."
# We restart wlan0
echo "Restarting wlan0"
/sbin/ifdown 'wlan0'
sleep 5
/sbin/ifup --force 'wlan0'
sleep 60
# If network is still down after recovery and you want to force a reboot simply uncomment following 4 rows
#host_status=$(fping $gateway_ip)
#if [[ $host_status != *"alive"* ]]; then
# reboot
#fi
}
# This loop will run network_check_tries times and if we have network_check_threshold failures
# we declare network as not working and we restart wlan0
while [ $network_check_tries -lt $network_check_threshold ]; do
# We check if ping to gateway is working and perform the ok / ko actions
host_status=$(fping $gateway_ip)
# Increase network_check_tries by 1 unit
network_check_tries=$[$network_check_tries+1]
# If network is working
if [[ $host_status == *"alive"* ]]; then
# We print positive feedback and quit
echo "Network is working correctly" && exit 0
else
# If network is down print negative feedback and continue
echo "Network is down, failed check number $network_check_tries of $network_check_threshold"
fi
# If we hit the threshold we restart wlan0
if [ $network_check_tries -ge $network_check_threshold ]; then
restart_wlan0
fi
# Let's wait a bit between every check
sleep 5 # Increase this value if you prefer longer time delta between checks
done
1/26/2018 সম্পাদনা করুন: স্ক্রিপ্টটি স্মৃতিতে চালিত হতে এবং রাস্পবেরির এসডি কার্ডে লেখা এড়াতে আমি টেম্প ফাইলগুলি সরিয়েছি।