Új hozzászólás Aktív témák

  • ztsoft

    őstag

    válasz Faby #116280 üzenetére

    Nem nagy ördöngösség, csak a kinyert adatokat kell veszővel elválasztott egy sorba kiírni. Íme az enyém.

    #!/bin/bash out_file="/path/to/file.csv" # a fájl helye és neve declare -a servers=("2073" "31717" "31271") # szerverek listája # a fájl első sora a fejléc if ! [ -f $out_file ]; then echo '"Date time","Server name","Server id","Latency","Jitter","Packet loss","Download","Upload","Downloaded","Uploaded"' > $out_file fi for s in "${servers[@]}"; do timestamp=$(/usr/bin/date +'%Y.%m.%d %H:%M:%S') data=$(/usr/bin/speedtest -s "$s") if [ -n "$data" ]; then server=$(echo "$data" | grep "Server:" | sed 's/^ *Server: //g') id=$(echo "$server" | grep -oP 'id = ([0-9]*)' | sed 's/id = //' ) server=$(echo "$server" | sed 's/ (id = [0-9]*)//') latency=$(echo "$data" | grep "Latency:" | sed 's/^ *Latency: *//g') jitter=$(echo "$latency" | grep -oP '[0-9.]* ms jitter' | sed 's/ jitter//') latency=$(echo "$latency" | sed 's/ *([0-9.]* ms jitter)//') download=$(echo "$data" | grep "Download:" | sed 's/^[ \t\r]*Download: *//g' | sed 's/ *$//g') download_data=$(echo "$download" | grep -oP 'data used: [0-9.]* [kM]B' | sed 's/data used: //') download=$(echo "$download" | sed 's/ *( *data used: [0-9.]* [kM]B *)//') upload=$(echo "$data" | grep "Upload:" | sed 's/^[ \t\r]*Upload: *//g' | sed 's/ *$//g') upload_data=$(echo "$upload" | grep -oP 'data used: [0-9.]* [kM]B' | sed 's/data used: //') upload=$(echo "$upload" | sed 's/ *( *data used: [0-9.]* [kM]B *)//') packetloss=$(echo "$data" | grep "Packet Loss:" | sed 's/^ *Packet Loss: *//g') echo -e "\"$timestamp\",\"$server\",\"$id\",\"$latency\",\"$jitter\",\"$packetloss\",\"$download\",\"$upload\",\"$download_data\",\"$upload_data\"" >> $out_file fi done exit 0

    Még nem tökéletes, mert a hibás méréseket (FAILED) nem kezeli le, de használható.
    Használd egészséggel.

    Jó dolog fontosnak lenni, de fontosabb, hogy jók legyünk.

Új hozzászólás Aktív témák