ivyharry 发表于 2006-2-1 23:58:01

shell scripting- monitor error


stp=3
until [ $stp = 0 ]
do
ifconfig eth1 | sed -n '2p;5p;6p;8p' >> log

p1=$(tail -11 log | sed -n '4p' | awk '{print $6}' | awk -F: '{print $2}')
p2=$(tail log | sed -n '10p' | awk '{print $6}' | awk -F: '{print $2}')

p3=$((($p2 - $p1)/2))
echo $p3 "bytes per-second downloading" >> log


date >> log
echo '-------------------------------------------------------' >> log
tail -7 log
sleep 2
done


this script monitors a NIC on the computer, refreshes every 2 sec. write the resualt into a log file with time appended
it also caculated the download speed in the last 2 sec of the computer

it is a very simple script
any comments about make it better or more useful?

thanks

BOoRFGOnZ 发表于 2006-2-2 11:18:12

it's good.

druggo 发表于 2006-2-4 23:31:53

$ p3=$((($p2 - $p1)/2))
bash: ( - )/2: syntax error: operand expected (error token is ")/2")

ivyharry 发表于 2006-2-4 23:47:30

OS?

druggo 发表于 2006-2-5 00:05:59

并不是那个计算式有问题,而已脚本执行到那步出了问题
看了一下是$p1 $p2 为空

不过我的log就一点点内容
druggo@ypg ~/tmp $ cat log
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          collisions:0 txqueuelen:1000
          RX bytes:241423087 (230.2 Mb)TX bytes:16744844 (15.9 Mb)

druggo@ypg ~/tmp $

BOoRFGOnZ 发表于 2006-2-5 07:46:37

我 执行没有问题!

ivyharry 发表于 2006-2-6 23:13:56

并不是那个计算式有问题,而已脚本执行到那步出了问题
看了一下是$p1 $p2 为空

不过我的log就一点点内容
druggo@ypg ~/tmp $ cat log
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          collisions:0 txqueuelen:1000
          RX bytes:241423087 (230.2 Mb)TX bytes:16744844 (15.9 Mb)

druggo@ypg ~/tmp $

may i have your ifconfig 's output layout?

druggo 发表于 2006-2-7 20:46:49


/sbin/ifconfig
eth0      Link encap:EthernetHWaddr 00:50:8D:7B:8F:78
          UP BROADCAST RUNNING MULTICASTMTU:1500Metric:1
          RX packets:60197 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93168 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:4816911 (4.5 Mb)TX bytes:131787232 (125.6 Mb)
          Interrupt:23 Base address:0xe000

lo      Link encap:Local Loopback
          inet addr:127.0.0.1Mask:255.0.0.0
          UP LOOPBACK RUNNINGMTU:16436Metric:1
          RX packets:325 errors:0 dropped:0 overruns:0 frame:0
          TX packets:325 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:24101 (23.5 Kb)TX bytes:24101 (23.5 Kb)

ppp0      Link encap:Point-to-Point Protocol
          inet addr:60.2.234.221P-t-P:24.24.24.24Mask:255.255.255.255
          UP POINTOPOINT RUNNING NOARP MULTICASTMTU:1492Metric:1
          RX packets:59169 errors:0 dropped:0 overruns:0 frame:0
          TX packets:93069 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:3
          RX bytes:3226834 (3.0 Mb)TX bytes:129736692 (123.7 Mb)

ivyharry 发表于 2006-2-8 01:07:25

i re-wite it for u, druggo

stp=3
until [ $stp = 0 ]
do
ifconfig ppp0 | sed -n '2p;4p;5p;7p' >> log

p1=$(tail -10 log | sed -n '3p' | awk '{print $2}' | awk -F: '{print $2}')
p2=$(tail -9 log | sed -n '9p' | awk '{print $2}' | awk -F: '{print $2}')

p3=$((($p2 - $p1)/2))
echo $p3 "bytes per-second downloading" >> log


date >> log
echo '-------------------------------------------------------' >> log
tail -7 log
sleep 2
done




let me if it works
页: [1]
查看完整版本: shell scripting- monitor error