Skip to content

sjmulder/flood

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

flood

Rapidly invoke (flood) a command.

asciicast

Usage

flood [-d delay] [-j maxjobs] [-n count] command [argument ...]

flood repeatedly invokes a command with a short delay between invocations. It does not wait for previous invocations to finish. Output is discarded, but results are summarily reported using single characters:

Character Meaning
. Command invoked
* Command completed successfully
! Command completed with an error status
@ Error invoking the command

A tally of the number of invocations, successes and failures is printed when the program terminates, by SIGINT (Ctrl+C) or otherwise, or when sent SIGINFO (Ctrl+T) on supported systems like BSD and macOS.

The name and inspiration come from the ping(1) -f option.

The following options are supported:

-d delay

Minimum delay between command executions, in miliseconds. Defaults to 100 (10 per second).

-j maxjobs

Limits the number of simultaneously running commands. Once reached, flood waits for previously invoked commands to complete before starting a new one. Defaults to 0, which means no limit.

-n count

Limits the total number of command invocations. Once reached, flood waits for all previously launched commands to complete, prints a tally, and exits. Defaults to 0, which means no limit.

Examlpes

Flood example.com with 100 requests using curl(1) then print a tally:

$ flood -n100 curl example.com

Repeatedly run the sleep(1) utility as quickly as possible, but never have more than 10 running at the same time:

$ flood -d0 -j10 sleep 1

Building

Should build without changes on Unix-like systems. If not, please file an issue on GitHub. To build:

make

There are install and uninstall targets, too. PREFIX is set to /usr/local by default.

Author

By Sijmen J. Mulder (ik@sjmulder.nl)