aboutsummaryrefslogtreecommitdiff
path: root/utils/heartbeat_hammer.sh
blob: 12b74bccf0ec45ebab8a83f8130b94414c821700 (plain)
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

PRE="ruby -I lib bin/mauvesend [::1]"
F=60
S=10
n=$*

_host () { 
  hostname="imaginary-$i.example.com"
  down="n"

  while( true ) ; do

      if [ "$down" == "n" ] ; then
        $PRE -o $hostname -i heartbeat -r +$F -c now -s "heartbeat failed" --detail="<p>The heartbeat wasn't sent for this host</p><p>This indicates that the host might be down</p>"
        sleep $((F - $RANDOM*$S/32768 - $S))
      else
        sleep $((RANDOM*$S/32768 + $F + $S))
      fi

      if [ $RANDOM -gt 30000 ] ; then
        [ "$down" == "n" ] && echo "Host $hostname down"
        down="y"
      else
        [ "$down" == "y" ] && echo "Host $hostname up"
        down="n"
      fi
  done
}

echo -e "This command will go beserk.  To kill run\n  pkill -t `tty`\n\nGiving you 5 seconds to quit!"

sleep 5

for i in `seq 1 100` ; do
  _host $i &
  sleep 0.2
done