File: tg.sh

package info (click to toggle)
fprobe 1.1-6
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 688 kB
  • ctags: 444
  • sloc: sh: 3,144; ansic: 2,177; makefile: 16
file content (39 lines) | stat: -rwxr-xr-x 855 bytes parent folder | download | duplicates (11)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#!/bin/bash

Q=10000

if [[ $# -ne 2 ]]; then
    echo -e "\
Usage: `basename $0` [target] [number]

This is simple traffic generator script for stress tests.
It based on the traceroute: ftp://ftp.ee.lbl.gov/traceroute.tar.gz
(FreeBSD and Debian Linux ships with this version).

Script will send number*$Q UDP packets
and, of course, receive number*$Q ICMP replys.

Note: for stress test you must turn off ICMP rate limit on target machine:
Linux: sysctl -w net/ipv4/icmp_ratelimit=0
FreeBSD: sysctl -w net.inet.icmp.icmplim=0
Solaris: /usr/sbin/ndd -set /dev/ip ip_icmp_err_interval 0
"
    exit
fi

H=$1
C=$2
c=0
s=$(date +%s)

while [[ $((C--)) -gt 0 ]]; do
    traceroute -n -q $Q $H &>/dev/null
    e=$(date +%s)
    l=$(($e-$s))
    c=$(($c+2*$Q))
    p=$(($c*10/($l*10+1)))
    echo -ne "$l sec. $p pkts/s       \r"
done 
echo

# v1.2 by sla@0n.ru