Advertisement
Guest User

Untitled

a guest
Feb 8th, 2016
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.96 KB | None | 0 0
  1. #!/usr/bin/env bash
  2.  
  3. # Character for separating values
  4. # (commas are not safe, because some servers return speeds with commas)
  5. speedtestserver=3271
  6. mysqllogin=#Put your credential here
  7. mysqlpassword=#Put your credential here
  8. mysqldb=#Put your credential here
  9. ip="192.168.1.2"
  10.  
  11. # Temporary file holding speedtest-cli output
  12. user=$USER
  13. if test -z $user; then
  14. user=$USERNAME
  15. fi
  16. log=/tmp/$user/speedtest-mysql.log
  17.  
  18. # Local functions
  19. str_extract() {
  20. pattern=$1
  21. # Extract
  22. res=`grep "$pattern" $log | sed "s/$pattern//g"`
  23. # Drop trailing ...
  24. res=`echo $res | sed 's/[.][.][.]//g'`
  25. # Trim
  26. res=`echo $res | sed 's/^ *//g' | sed 's/ *$//g'`
  27. echo $res
  28. }
  29.  
  30. mkdir -p `dirname $log`
  31.  
  32. start=`date +"%Y-%m-%d %H:%M:%S"`
  33.  
  34. echo "Speedtest started at : $start"
  35.  
  36. # Query Speedtest
  37. /usr/local/bin/speedtest-cli --server $speedtestserver --share > $log
  38.  
  39. stop=`date +"%Y-%m-%d %H:%M:%S"`
  40.  
  41. echo "Speedtest ended at : $stop"
  42.  
  43. # Parse
  44. from=`str_extract "Testing from "`
  45. from_ip=`echo $from | sed 's/.*(//g' | sed 's/).*//g'`
  46. from=`echo $from | sed 's/ (.*//g'`
  47.  
  48. server=`str_extract "Hosted by "`
  49. server_ping=`echo $server | sed 's/.*: //g'`
  50. server=`echo $server | sed 's/: .*//g'`
  51. server_dist=`echo $server | sed 's/.*\\[//g' | sed 's/\\].*//g'`
  52. server=`echo $server | sed 's/ \\[.*//g'`
  53.  
  54. download=`str_extract "Download: "`
  55. upload=`str_extract "Upload: "`
  56. share_url=`str_extract "Share results: "`
  57.  
  58. # Standardize units?
  59. if test "$1" = "--standardize"; then
  60. download=`echo $download | sed 's/Mbits/Mbit/'`
  61. upload=`echo $upload | sed 's/Mbits/Mbit/'`
  62. fi
  63.  
  64. # Test if my Main computer is on
  65. if ping -c 1 $ip >/dev/null
  66. then
  67. ison=true
  68. else
  69. ison=false
  70. fi
  71.  
  72. # Send to Local MySQL
  73.  
  74. value1=`echo $server_ping | cut -d" " -f1`
  75. value2=`echo $download | cut -d" " -f1`
  76. value3=`echo $upload | cut -d" " -f1`
  77.  
  78. sql="INSERT INTO tests (id,server,datestart,datestop,ping,dl,ul,ison) VALUES ('','$speedtestserver','$start','$stop','$server_ping','$download','$upload',$ison);"
  79.  
  80. echo "$sql" | mysql -u$mysqllogin -p$mysqlpassword $mysqldb
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement