shell腳本ping
① 如何使用shell 批量ping域名,生成一個結果文件
腳本:
#!/bin/sh
filename=domains.txt
ping_count=3
whilereaddomain;do
x=$(ping-W1-c$ping_count$domain2>/dev/null|grep-E"(PING)|(loss)")
loss=$(echo"$x"|grep"loss"|awk'{printf"%s",substr($6,1,length($6)-1)}')
if[$loss-eq100];then
echo"$x"|grep"PING"|awk'{printf"%snoping ",$2}'
else
echo"$x"|grep"PING"|awk'{printf"%s%s ",$2,substr($3,2,length($3)-2)}'
fi
done<$filename
可適當調整每個域名 ping 的次數(ping_count),以保證准確度和性能。
數據文件:
cat domains.txt
www..com
www.taobao.com
www.qq.com
www.d.com
結果:
www..com 14.215.177.38
www.taobao.com 183.61.241.252
www.qq.com 59.37.96.63
www.d.com no ping
另:我理解那個「地名」應該是「域名」誤寫,如果真的需要地名,可以藉助 whois 命令,甚至 IP 資料庫(比如純真資料庫)。
② 請問shell中ping的簡單腳本怎麼寫
ping -c 3 72.27.16.11
自己去試下,通的返回什麼,不通的返回什麼,進行判斷,去列印down就可以了
③ java 怎麼取到shell腳本裡面ping的結果
Processp=Runtime.getRuntime().exec(cmd);
InputStreamis=p.getInputStream();
InputStreamReaderisr=newInputStreamReader(is);
BufferedReaderreader=newBufferedReader(isr);
Stringmsg="";while((msg=reader.readLine())!=null){
System.out.println(msg);
if(msg.indexOf("error")>=0||msg.indexOf("ERROR")>=0){
suc=false;
}
}
reader.close();
p.waitFor();
p.destroy();
④ 寫個shell腳本,使用ping命令探測172.16.250.1到172.16.250.254之間
useradd 命令用於創建用戶passwd 命令用於設置密碼echo 命令用於輸密碼文件scp 命令用於發送文件 tom 用戶例其設置密碼123456並發送172.16.1.3機器/home/tom目錄:
useradd tom
PASSWD="123456"
echo -e "$PASSWD\n$PASSWD" | passwd tom
echo $PASSWD > passwd_file
scp passwd_file 172.16.1.3:/home/tom
希望幫助
⑤ shell腳本ping和telnet
很明顯的一個錯誤就是if要用fi結束,你腳本里有兩個if,我卻只能找到一個fi;
第二點就是telnet那部分,telnet=`telnet $1 $2`應該就死住沒反應了,你手動模擬一下就好了,比如我:
telnet 192.168.243.1 3131
Trying 192.168.243.1...
Connected to 192.168.243.1.
Escape character is '^]'.
^]
telnet> quit
Connection closed.
如果我不鍵入^](ctrl+])的話,這個telnet進程是不會結束的,不會結束的話,腳本也就不會進行下一步。
⑥ linux下shell腳本PING命令只要延遲高於100ms就發送個郵件
#!/bin/bash第三行Timeout_limit值寫錯了,應該是100哈,代碼提交了不能改了。你這個不需要把延遲結果保存在文件的,而是應該需要作定時檢測的。
Timeout=0;
Timeout_limit=1;
Timeout_flag=0;
IP="8.8.8.8"
while [ 1 ]
do
# 取平均延遲的整數位
Timeout="`ping $IP -c 3 | grep 'min/avg/max/mdev'|awk '{print $4}'|cut -b ƍ'`"
if [ $Timeout -ge $Timeout_limit ] && [ $Timeout_flag -ne 1 ]; then
echo ping timeout, average delay=$Timeout ms
mail -s 'Ping Delay' 郵箱 < ar/log/boot.log
Timeout_flag=1
fi
if [ $Timeout -lt $Timeout_limit ] && [ $Timeout_flag -ne 0 ]; then
echo ping recovery, average delay=$Timeout ms
mail -s 'Ping recovery' 郵箱 < ar/log/boot.log
Timeout_flag=0
fi
sleep 5
done
⑦ 怎麼用shell腳本ping一個域名是否能通
#!/bin/bash
domain_name="www..com"
ping $domain_name -c 10
if [ $? -eq 0 ]
then
echo "connet $domain_name success"
else
echo "connet $domain_name failed"
ping $domain_name -c 10意為ping10次
⑧ linux shell腳本寫一個PING主機命令
while true
do
if [ `ping -c 1 192.168.0.2|grep 100%|wc -l` -ne 0 ];then
echo diaoxian_192.168.0.2 >>log2
fi
done
⑨ 請幫忙使用shell寫一個ping檢查腳本,手動從1 ping到254 太耗時間. 希望有腳本來代替這個過程.
我用 VBS 給你寫了一個:
setobj=wscript.createObject("WScript.Shell")
forcount=1to254
obj.Run"ping192.168.1."&count,,true
next
自己新建一個 vbs 文件,把上面代碼拷貝進去,然後雙擊運行;
上面代碼自動從 192.168.1.1 開始 ping;
一直 ping 到 192.168.1.254;
如果想自定義 ping 的欄位,可以自行修改裡面的字元串的 ip 地址;
或者直接用我上傳給你的寫好的 vbs 文件;