Advertisement
tml3nr

pingcheck v1

Jun 28th, 2023
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.19 KB | None | 0 0
  1. root@OpenWrt:~# cat ./pingv1.sh
  2. #!/bin/sh
  3.  
  4. check_ping () {
  5. server="$1"
  6. interface="$2"
  7. ping_result=$(ping -c 1 -I "$interface" -W 10 "$server" | awk '/time=/ {print $NF}')
  8. if [ -z "$ping_result" ]; then
  9. echo "Error: ping to $server failed or timed out"
  10. exit 1
  11. fi
  12. }
  13.  
  14. find_fastest_server () {
  15. server_list="/etc/servers"
  16. declare -g fastest_server=""
  17. fastest_ping=999999
  18. interface="br-lan" # Replace with the name of your WAN interface
  19.  
  20. while read -r server; do
  21. ping_result=$(check_ping "$server" "$interface")
  22. if [ -n "$ping_result" ] && [ $(echo "$ping_result < $fastest_ping" | bc) -eq 1 ]; then
  23. fastest_server="$server"
  24. fastest_ping="$ping_result"
  25. fi
  26. done < "$server_list"
  27. }
  28.  
  29. interface="nordlynx"
  30. if [ $(echo "$(check_ping "google.com" "$interface") < 50" | bc) -eq 1 ]; then
  31. exit 0
  32. else
  33. find_fastest_server
  34. uci set network.${interface}.endpoint_host="$fastest_server"
  35. uci commit network
  36. /etc/init.d/network restart
  37. fi
  38.  
  39. exit 0
  40. root@OpenWrt:~# ./pingv1.sh
  41. ./pingv1.sh: line 29: bc: not found
  42. sh: 1: unknown operand
  43. ./pingv1.sh: line 15: declare: not found
  44. uci: Invalid argument
  45. 'radio0' is disabled
  46. root@OpenWrt:~#
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement