{"id":310,"date":"2024-06-22T08:55:52","date_gmt":"2024-06-22T08:55:52","guid":{"rendered":"https:\/\/wp.sheepchen.net\/?p=310"},"modified":"2025-04-13T22:41:09","modified_gmt":"2025-04-13T22:41:09","slug":"massping-script","status":"publish","type":"post","link":"https:\/\/wp.sheepchen.net\/?p=310","title":{"rendered":"massping script"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">just a little script which pings a defined number of servers a defined time and give you the result. Good for looking if you connection is stable or if it may be an internet problem.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#!\/bin\/bash\n\ntargets=( 1.1.1.1 8.8.8.8 cloudflare.com discord.com )\nmax=100\n\n\ntmpfile=$$.massping.tmp\n\n# functions\nf_ping(){\n  v=$(ping -c $max $1 2>\/dev\/null|grep received|cut -d' ' -f4)\n  echo $1 $v >> $tmpfile\n}\n\nf_done(){\n  &#91;&#91; ! -f $tmpfile ]] &amp;&amp; echo false &amp;&amp; return\n  &#91;&#91; $(wc -l $tmpfile 2>\/dev\/null|cut -d' ' -f1) -eq ${#targets&#91;@]} ]] &amp;&amp; echo true &amp;&amp; return\n  echo false\n}\n\n# main\nfor s in ${targets&#91;@]}; do\n  f_ping $s &amp;\ndone\n\nc=$max; echo\nwhile &#91;&#91; $(f_done) == false ]]; do\n  echo -e \"\\e&#91;1A\\e&#91;Kwaiting. This should need $c more seconds..\"\n  c=$(( $c - 1 ))\n  sleep 1\ndone\necho -e \"\\e&#91;1A\\e&#91;Kdone\"; echo\n\nmaxline=0; for w in $(cat $tmpfile|cut -d' ' -f1); do &#91;&#91; ${#w} -gt $maxline ]] &amp;&amp; maxline=${#w}; done\nspaces=\"\"; while &#91;&#91; $(( ${#spaces} + 1 )) -lt $maxline ]]; do spaces=\"$spaces \"; done\necho \"server${spaces}%\"\nIFS=\"\n\"\nwhile read -r line; do\n  server=$(echo $line|cut -d' ' -f1)\n  count=$(echo $line|cut -d' ' -f2)\n  perc=$(echo \"scale=1; $count * 100 \/ $max\"|bc)\n  spaces=\"\"; while &#91;&#91; $(( ${#spaces} + ${#server} - ( 5 - ${#perc} ) )) -lt $maxline ]]; do spaces=\"$spaces \"; done\n  echo \"${server}${spaces} ${perc}\"\ndone &lt; $tmpfile\n\n&#91;&#91; -f $tmpfile ]] &amp;&amp; rm -f $tmpfile<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">exampleoutput:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>server             %\n1.1.1.1        100.0\n8.8.8.8        100.0\ncloudflare.com  99.0\ndiscord.com     85.0<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>just a little script which pings a defined number of servers a defined time and give you the result. Good for looking if you connection is stable or if it may be an internet problem. exampleoutput:<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":""},"categories":[6,16],"tags":[8],"class_list":["post-310","post","type-post","status-publish","format-standard","hentry","category-linux","category-programming","tag-linux"],"_links":{"self":[{"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=\/wp\/v2\/posts\/310","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=310"}],"version-history":[{"count":2,"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=\/wp\/v2\/posts\/310\/revisions"}],"predecessor-version":[{"id":312,"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=\/wp\/v2\/posts\/310\/revisions\/312"}],"wp:attachment":[{"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=310"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=310"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wp.sheepchen.net\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=310"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}