URL: https://www.overclockers.at/coding-stuff/problem-mit-bash-script_250761/page_1 - zur Vollversion wechseln!
//Edit: Weil ich ein Schoitl bin und beim Code zusammenkopieren nicht auf die Benamung der Variablen aufpass... Jesusmaria...
Hallo,
folgendes script:
Code: BASH#!/usr/bin/bash # DB connection db_host=xxx db_user=xxx db_passwd=xxx # DB database and table db_name=xxx db_table=xxx ################################################## ############## HERE BE DRAGONS THEN ############## ################################################## # create timestamp for database timestamp=`date +"%Y-%m-%d %H:%M:%S"` # temp file holding output to snip it user=$USER if test -z $user; then user=$USERNAME fi log=/tmp/$user/speedtest-mysql.log # Local functions str_extract() { pattern=$1 # Extract res=`grep "$pattern" $log | sed "s/$pattern//g"` # Drop trailing ... res=`echo $res | sed 's/[.][.][.]//g'` # Trim res=`echo $res | sed 's/^ *//g' | sed 's/ *$//g'` echo $res } mkdir -p `dirname $log` # run speedtest /usr/local/bin/speedtest > $log # parse the output from=`str_extract "Testing from "` from_ip=`echo $from | sed 's/.*(//g' | sed 's/).*//g'` from=`echo $from | sed 's/ (.*//g'` server=`str_extract "Hosted by "` server_ping=`echo $server | sed 's/.*: //g'` server=`echo $server | sed 's/: .*//g'` server_dist=`echo $server | sed 's/.*\\[//g' | sed 's/\\].*//g'` server=`echo $server | sed 's/ \\[.*//g'` download=`str_extract "Download: "` upload=`str_extract "Upload: "` share_url=`str_extract "Share results: "` # Send to MySQL value1=`echo $ping | cut -d" " -f1` value2=`echo $download | cut -d" " -f1` value3=`echo $upload | cut -d" " -f1` sql="INSERT INTO $db_table (timestamp,ping,download,upload,server) VALUES ('$timestamp','$ping','$download','$upload','$server');" echo "$sql" | mysql -u$db_user -p$db_passwd -h$db_host $db_name
Code:pi@speedtestpi:~ $ speedtest Retrieving speedtest.net configuration... Testing from UPC Austria (80.110.109.207)... Retrieving speedtest.net server list... Selecting best server based on ping... Hosted by NEXT LAYER GmbH (Vienna) [6.40 km]: 33.5 ms Testing download speed................................................................................ Download: 90.28 Mbit/s Testing upload speed................................................................................................ Upload: 9.95 Mbit/s pi@speedtestpi:~ $

schon mal mit
ping -qc1 $server 2>&1 | awk -F'/' 'END{ print (/^rtt/? "OK "$5" ms":"FAIL") }'
probiert?
du schreibst $ping in die db, deklarierst aber vorher $server_ping?
Goenn' dir ein `set -u` ganz oben in deinem Script - dann verstirbt der Interpreter beim Aufloesen von undeklarierten Variablenbezeichnern. Das wird, schaetze ich, die schlimmsten Probleme darin offsichtlich machen.
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2026