neulab/tldr huggingface dataset:
-s, --summary Print summary statistics. This option does not parse socket lists obtaining summary from various sources. It is useful when amount of sockets is so huge that parsing /proc/net/tcp is painful.
-E, --events Continually display sockets as they are destroyed
-Z, --context As the -p option but also shows process security context.
For netlink(7) sockets the initiating process context is displayed as follows:
1.  If valid pid show the process context.
2.  If destination is kernel (pid = 0) show kernel initial context.
3.  If a unique identifier has been allocated by the kernel or netlink user, show context as "unavailable". This will generally indicate that a process has more than one netlink socket active.
-z, --contexts As the -Z option but also shows the socket context. The socket context is taken from the associated inode and is not the actual socket context held by the kernel. Sockets are typically labeled with the context of the creating process, however the context shown will reflect any policy role, type and/or range transition rules applied, and is therefore a useful reference.
-N NSNAME, --net=NSNAME Switch to the specified network namespace name.
-b, --bpf Show socket classic BPF filters (only administrators are allowed to get these information).
-4, --ipv4 Display only IP version 4 sockets (alias for -f inet).
-6, --ipv6 Display only IP version 6 sockets (alias for -f inet6).
-0, --packet Display PACKET sockets (alias for -f link).
-t, --tcp Display TCP sockets.
-u, --udp Display UDP sockets.
-d, --dccp Display DCCP sockets.
-w, --raw Display RAW sockets.
-x, --unix Display Unix domain sockets (alias for -f unix).
-S, --sctp Display SCTP sockets.
--vsock Display vsock sockets (alias for -f vsock).
--xdp  Display XDP sockets (alias for -f xdp).
--inet-sockopt Display inet socket options.
-f FAMILY, --family=FAMILY Display sockets of type FAMILY.  Currently the following families are supported: unix, inet, inet6, link, netlink, vsock, xdp.
-A QUERY, --query=QUERY, --socket=QUERY List of socket tables to dump, separated by commas. The following identifiers are understood: all, inet, tcp, udp, raw, unix, packet, netlink, unix_dgram, unix_stream, unix_seqpacket, packet_raw, packet_dgram, dccp, sctp, vsock_stream, vsock_dgram, xdp Any item in the list may optionally be prefixed by an exclamation mark (!)  to exclude that socket table from being dumped.
-D FILE, --diag=FILE Do not display anything, just dump raw information about TCP sockets to FILE after applying filters. If FILE is - stdout is used.
-F FILE, --filter=FILE Read filter information from FILE.  Each line of FILE is interpreted like single command line option. If FILE is - stdin is used.
FILTER := [ state STATE-FILTER ] [ EXPRESSION ] Please take a look at the official documentation for details regarding filters.
STATE-FILTER STATE-FILTER allows to construct arbitrary set of states to match. Its syntax is sequence of keywords state and exclude followed by identifier of state.
Available identifiers are:
All standard TCP states: established, syn-sent, syn-recv, fin- wait-1, fin-wait-2, time-wait, closed, close-wait, last-ack, listening and closing.
all - for all the states
connected - all the states except for listening and closed
synchronized - all the connected states except for syn-sent
bucket - states, which are maintained as minisockets, i.e.  time- wait and syn-recv
big - opposite to bucket
EXPRESSION allows filtering based on specific criteria.  EXPRESSION consists of a series of predicates combined by boolean operators. The possible operators in increasing order of precedence are or (or | or ||), and (or & or &&), and not (or !). If no operator is between consecutive predicates, an implicit and operator is assumed. Subexpressions can be grouped with "(" and ")".
The following predicates are supported:
{dst|src} [=] HOST Test if the destination or source matches HOST. See HOST SYNTAX for details.
{dport|sport} [OP] [FAMILY:]:PORT Compare the destination or source port to PORT. OP can be any of "<", "<=", "=", "!=", ">=" and ">". Following normal arithmetic rules. FAMILY and PORT are as described in HOST SYNTAX below.
dev [=|!=] DEVICE Match based on the device the connection uses. DEVICE can either be a device name or the index of the interface.
fwmark [=|!=] MASK Matches based on the fwmark value for the connection. This can either be a specific mark value or a mark value followed by a "/" and a bitmask of which bits to use in the comparison. For example "fwmark = 0x01/0x03" would match if the two least significant bits of the fwmark were 0x01.
cgroup [=|!=] PATH Match if the connection is part of a cgroup at the given path.
autobound Match if the port or path of the source address was automatically allocated (rather than explicitly specified).
Most operators have aliases. If no operator is supplied "=" is assumed. Each of the following groups of operators are all equivalent:
• = == eq
• != ne neq
• > gt
• < lt
• >= ge geq
• <= le leq
• ! not
• | || or
• & && and
The general host syntax is [FAMILY:]ADDRESS[:PORT].
FAMILY must be one of the families supported by the -f option. If not given it defaults to the family given with the -f option, and if that is also missing, will assume either inet or inet6. Note that all host conditions in the expression should either all be the same family or be only inet and inet6. If there is some other mixture of families, the results will probably be unexpected.
The form of ADDRESS and PORT depends on the family used. "*" can be used as a wildcard for either the address or port. The details for each family are as follows:
unix   ADDRESS is a glob pattern (see fnmatch(3)) that will be matched case-insensitively against the unix socket's address. Both path and abstract names are supported. Unix addresses do not support a port, and "*" cannot be used as a wildcard.
link   ADDRESS is the case-insensitive name of an Ethernet protocol to match. PORT is either a device name or a device index for the desired link device, as seen in the output of ip link.
netlink ADDRESS is a descriptor of the netlink family. Possible values come from /etc/iproute2/nl_protos. PORT is the port id of the socket, which is usually the same as the owning process id. The value "kernel" can be used to represent the kernel (port id of 0).
vsock  ADDRESS is an integer representing the CID address, and PORT is the port.
inet and inet6 ADDRESS is an ip address (either v4 or v6 depending on the family) or a DNS hostname that resolves to an ip address of the required version. An ipv6 address must be enclosed in "[" and "]" to disambiguate the port separator. The address may additionally have a prefix length given in CIDR notation (a slash followed by the prefix length in bits). PORT is either the numerical socket port, or the service name for the port to match.
ss -t -a Display all TCP sockets.
ss -t -a -Z Display all TCP sockets with process SELinux security contexts.
ss -u -a Display all UDP sockets.
ss -o state established '( dport = :ssh or sport = :ssh )' Display all established ssh connections.
ss -x src /tmp/.X11-unix/* Find all local processes connected to X server.
ss -o state fin-wait-1 '( sport = :http or sport = :https )' dst 193.233.7/24 List all the tcp sockets in state FIN-WAIT-1 for our apache to network 193.233.7/24 and look at their timers.
ss -a -A 'all,!tcp' List sockets in all states from all socket tables but TCP.
ip(8), RFC 793 - https://tools.ietf.org/rfc/rfc793.txt (TCP states)
ss was written by Alexey Kuznetsov, <kuznet@ms2.inr.ac.ru>.
This manual page was written by Michael Prokop <mika@grml.org> for the Debian project (but may be used by others).
weasyprint(1)                General Commands Manual               weasyprint(1)
weasyprint - Document factory for creating PDF files from HTML
WeasyPrint is a smart solution helping web developers to create PDF documents. It turns simple HTML pages into gorgeous statistical reports, invoices, tickets, etc.
From a technical point of view, WeasyPrint is a visual rendering engine for HTML and CSS that can export to PDF and PNG. It aims to support web standards for printing. WeasyPrint is free software made available under a BSD license.
It is based on various libraries but *not* on a full rendering engine like WebKit or Gecko. The CSS layout engine is written in Python, designed for pagination, and meant to be easy to hack on.
usage: weasyprint [-h] [--version] [-e ENCODING] [-f {pdf,png}] [-s STYLESHEET] [-m MEDIA_TYPE] [-r RESOLUTION] [-u BASE_URL] [-a ATTACHMENT] [-p] [-v] [-d] [-q] input output
Renders web pages to PDF or PNG.
positional arguments: input                 URL or filename of the HTML input, or - for stdin output                Filename where output is written, or - for stdout
optional arguments: -h, --help            show this help message and exit --version             Print WeasyPrint's version number and exit. -e ENCODING, --encoding ENCODING Character encoding of the input -f {pdf,png}, --format {pdf,png} Output format. Can be omitted if `output` ends with a .pdf or .png extension. -s STYLESHEET, --stylesheet STYLESHEET URL or filename for a user CSS stylesheet. May be given multiple times. -m MEDIA_TYPE, --media-type MEDIA_TYPE Media type to use for @media, defaults to print -r RESOLUTION, --resolution RESOLUTION PNG only: the resolution in pixel per CSS inch. Defaults to 96, one PNG pixel per CSS pixel. -u BASE_URL, --base-url BASE_URL Base for relative URLs in the HTML input. Defaults to the input's own filename or URL or the current directory for stdin. -a ATTACHMENT, --attachment ATTACHMENT URL or filename of a file to attach to the PDF document -p, --presentational-hints Follow HTML presentational hints. -v, --verbose         Show warnings and information messages. -d, --debug           Show debugging messages. -q, --quiet           Hide logging messages.
This version of weasyprint was written by Simon Sapin and contributors.
This man-page was created by Scott Kitterman <scott@kitterman.com> and is licensed under the same terms as weasyprint.
DELUGE-CONSOLE(1)            General Commands Manual           DELUGE-CONSOLE(1)
deluge-console - A BitTorrent client console interface
deluge-console [options]
Deluge utilizes a client/server model, with deluged being the daemon process and deluge-console being used to launch a curses console user- interface.
Console Commands: You can pass console commands directly from the command line and use semi-colon (;) seperator to run multiple commands. Enclosing the commands with quotes may also be required for example:
deluge-console 'add <torrent>; info <torrent_id>'
The following console commands are available:
add              Add torrents cache            Show information about the disk cache config           Show and set configuration values connect          Connect to a new deluge server debug            Enable and disable debugging del              Alias for rm exit             Alias for quit gui              Enable interactive mode halt             Shutdown the deluge server help             Displays help on other commands info             Show information about the torrents manage           Show and manage per-torrent options move             Move torrents' storage location pause            Pause torrents plugin           Manage plugins quit             Exit the client reannounce       Alias for update_tracker recheck          Forces a recheck of the torrent data resume           Resume torrents rm               Remove a torrent status           Shows various status information from the daemon update_tracker   Update tracker for torrent(s)
Console Options These daemon connect options will be used for commands, or if console ui autoconnect is enabled.
-d ip_addr, --daemon=ip_addr Deluge daemon IP address to connect to (default 127.0.0.1)
-p port, --port=port Deluge daemon port to connect to (default 58846)
-U user, --username=user Deluge daemon username to use when connecting
-P pass, --password=pass Deluge daemon password to use when connecting
deluge(1), deluged(1), deluge-web(1)
SHUF(1)                           User Commands                          SHUF(1)
shuf - generate random permutations
shuf [OPTION]... [FILE] shuf -e [OPTION]... [ARG]... shuf -i LO-HI [OPTION]...
Write a random permutation of the input lines to standard output.
-e, --echo treat each ARG as an input line
-i, --input-range=LO-HI treat each number LO through HI as an input line
-n, --head-count=COUNT output at most COUNT lines
-r, --repeat output lines can be repeated
Written by Paul Eggert.
Full documentation <https://www.gnu.org/software/coreutils/shuf> or available locally via: info '(coreutils) shuf invocation'
PARTX(8)                      System Administration                     PARTX(8)
partx - tell the kernel about the presence and numbering of on-disk partitions
partx [-a|-d|-P|-r|-s|-u] [-t type] [-n M:_N_] [-] disk
partx [-a|-d|-P|-r|-s|-u] [-t type] partition [disk]
Given a device or disk-image, partx tries to parse the partition table and list its contents. It can also tell the kernel to add or remove partitions from its bookkeeping.
The disk argument is optional when a partition argument is provided. To force scanning a partition as if it were a whole disk (for example to list nested subpartitions), use the argument "-" (hyphen-minus). For example:
partx --show - /dev/sda3
This will see sda3 as a whole-disk rather than as a partition.
partx is not an fdisk program - adding and removing partitions does not change the disk, it just tells the kernel about the presence and numbering of on-disk partitions.
-a, --add Add the specified partitions, or read the disk and add all partitions.
-b, --bytes Print the SIZE column in bytes rather than in human-readable format.
-d, --delete Delete the specified partitions or all partitions. It is not error to remove non-existing partitions, so this option is possible to use together with large --nr ranges without care about the current partitions set on the device.
-g, --noheadings Do not print a header line with --show or --raw.
-l, --list List the partitions. Note that all numbers are in 512-byte sectors. This output format is DEPRECATED in favour of --show. Do not use it in newly written scripts.
-n, --nr M:N Specify the range of partitions. For backward compatibility also the format M-N is supported. The range may contain negative numbers, for example --nr -1:-1 means the last partition, and --nr -2:-1 means the last two partitions. Supported range specifications are:
M Specifies just one partition (e.g. --nr 3).
M: Specifies the lower limit only (e.g. --nr 2:).
:N Specifies the upper limit only (e.g. --nr :4).
M:N Specifies the lower and upper limits (e.g. --nr 2:4).
-o, --output list Define the output columns to use for --show, --pairs and --raw output. If no output arrangement is specified, then a default set is used. Use --help to get list of all supported columns. This option cannot be combined with the --add, --delete, --update or --list options.
-P, --pairs List the partitions using the KEY="value" format.
-r, --raw List the partitions using the raw output format.
-s, --show List the partitions. The output columns can be selected and rearranged with the --output option. All numbers (except SIZE) are in 512-byte sectors.
-t, --type type Specify the partition table type.
--list-types List supported partition types and exit.
-u, --update Update the specified partitions.
-S, --sector-size size Overwrite default sector size.
partx --show /dev/sdb3, partx --show --nr 3 /dev/sdb, partx --show /dev/sdb3 /dev/sdb All three commands list partition 3 of /dev/sdb.
partx --show - /dev/sdb3 Lists all subpartitions on /dev/sdb3 (the device is used as whole-disk).
partx -o START -g --nr 5 /dev/sdb Prints the start sector of partition 5 on /dev/sdb without header.
partx -o SECTORS,SIZE /dev/sda5 /dev/sda Lists the length in sectors and human-readable size of partition 5 on /dev/sda.
partx --add --nr 3:5 /dev/sdd Adds all available partitions from 3 to 5 (inclusive) on /dev/sdd.
partx -d --nr :-1 /dev/sdd Removes the last partition on /dev/sdd.
Davidlohr Bueso <dave@gnu.org>, Karel Zak <kzak@redhat.com>
The original version was written by Andries E. Brouwer <aeb@cwi.nl>
addpart(8), delpart(8), fdisk(8), parted(8), partprobe(8)
The partx command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
ASCII(1)                        Development Tools                       ASCII(1)
ascii - report character aliases
ascii [-dxohv] [-t] [char-alias...]
Called with no options, ascii behaves like `ascii -h'. Options are as follows:
-t Script-friendly mode, emits only ISO/decimal/hex/octal/binary encodings of the character.
-s Parse multiple characters. Convenient way of parsing strings.
-a Print in vertical aspect (4 columns by 16 rows) rather than 16x4. This option combines only with -d -o -x -b and must precede them.
-d Ascii table in decimal.
-x Ascii table in hex.
-o Ascii table in octal.
-b Ascii table in binary.
-h, -? Show summary of options and a simple ASCII table.
-v Show version of program.
Characters in the ASCII set can have many aliases, depending on context. A character's possible names include:
•   Its bit pattern (binary representation).
•   Its hex, decimal and octal representations.
•   Its teletype mnemonic and caret-notation form (for control chars).
•   Its backlash-escape form in C (for some control chars).
•   Its printed form (for printables).
•   Its full ISO official name in English.
•   Its ISO/ECMA code table reference.
•   Its name as an HTML/SGML entity.
•   Slang and other names in wide use for it among hackers.
This utility accepts command-line strings and tries to interpret them as one of the above. When it finds a value, it prints all of the names of the character. The constructs in the following list can be used to specify character values. If an argument could be interpreted in two or more ways, names for all the different characters it might be are dumped.
character Any character not described by one of the following conventions represents the character itself.
^character A caret followed by a character.
\[abfnrtv0] A backslash followed by certain special characters (abfnrtv).
mnemonic An ASCII teletype mnemonic.
hexadecimal A hexadecimal (hex) sequence consists of one or two case-insensitive hex digit characters (01234567890abcdef). To ensure hex interpretation use hexh, 0xhex, xhex or \xhex.
decimal A decimal sequence consists of one, two or three decimal digit characters (0123456789). To ensure decimal interpretation use \0ddecimal, ddecimal, or \ddecimal.
octal An octal sequence consists of one, two or three octal digit characters (01234567). To ensure octal interpretation use \<octal>, 0o<octal>, o<octal>, or \o<octal>.
bit pattern A bit pattern (binary) sequence consists of one to eight binary digit characters (01). To ensure bit interpretation use 0b<bit pattern>, b<bit pattern> or \b<bit pattern>.
ISO/ECMA code An ISO/ECMA code sequence consists of one or two decimal digit characters, a slash, and one or two decimal digit characters.
name An official ASCII or (unofficial) slang name.
The slang names recognized and printed out are from a rather comprehensive list that first appeared on USENET in early 1990 and has been continuously updated since. Mnemonics recognized and printed include the official ASCII set, some official ISO names (where those differ) and a few common-use alternatives (such as NL for LF). HTML/SGML entity names are also printed when applicable. All comparisons are case-insensitive, and dashes are mapped to spaces. Any unrecognized arguments or out of range values are silently ignored. Note that the -s option will not recognize 'long' names, as it cannot differentiate them from other parts of the string.
For correct results, be careful to stringize or quote shell metacharacters in arguments (especially backslash).
This utility is particularly handy for interpreting cc(1)'s ugly octal `invalid-character' messages, or when coding anything to do with serial communications. As a side effect it serves as a handy base-converter for random 8-bit values.
Eric S. Raymond <esr@thyrsus.com>; November 1990 (home page at http://www.catb.org/~esr/). Reproduce, use, and modify as you like as long as you don't remove this authorship notice. Ioannis E. Tambouras <ioannis@debian.org> added command options and minor enhancements. Brian J. Ginsbach <ginsbach@sgi.com> fixed several bugs and expanded the man page. David N. Welton <davidw@efn.org> added the -s option. Matej Vela corrected the ISO names. Dave Capella contributed the idea of listing HTML/SGML entities.
ROUTE(8)               Linux System Administrator's Manual              ROUTE(8)
route - show / manipulate the IP routing table
route [-CFvnNee] [-A family |-4|-6]
route  [-v] [-A family |-4|-6] add [-net|-host] target [netmask Nm] [gw Gw] [metric N] [mss M] [window W] [irtt I] [reject] [mod] [dyn] [reinstate] [[dev] If]
route  [-v] [-A family |-4|-6] del [-net|-host] target [gw Gw] [netmask Nm] [metric M] [[dev] If]
route  [-V] [--version] [-h] [--help]
Route manipulates the kernel's IP routing tables.  Its primary use is to set up static routes to specific hosts or networks via an interface after it has been configured with the ifconfig(8) program.
When the add or del options are used, route modifies the routing tables. Without these options, route displays the current contents of the routing tables.
-A family use the specified address family (eg `inet'). Use route --help for a full list. You can use -6 as an alias for --inet6 and -4 as an alias for -A inet
-F     operate on the kernel's FIB (Forwarding Information Base) routing table.  This is the default.
-C     operate on the kernel's routing cache.
-v     select verbose operation.
-n     show numerical addresses instead of trying to determine symbolic host names. This is useful if you are trying to determine why the route to your nameserver has vanished.
-e     use netstat(8)-format for displaying the routing table.  -ee will generate a very long line with all parameters from the routing table.
del    delete a route.
add    add a new route.
target the destination network or host. You can provide an addresses or symbolic network or host name. Optionally you can use /prefixlen notation instead of using the netmask option.
-net   the target is a network.
-host  the target is a host.
netmask NM when adding a network route, the netmask to be used.
gw GW  route packets via a gateway. NOTE: The specified gateway must be reachable first. This usually means that you have to set up a static route to the gateway beforehand. If you specify the address of one of your local interfaces, it will be used to decide about the interface to which the packets should be routed to. This is a BSDism compatibility hack.
metric M set the metric field in the routing table (used by routing daemons) to M. If this option is not specified the metric for inet6 (IPv6) address family defaults to '1', for inet (IPv4) it defaults to '0'. You should always specify an explicit metric value to not rely on those defaults - they also differ from iproute2.
mss M  sets MTU (Maximum Transmission Unit) of the route to M bytes. Note that the current implementation of the route command does not allow the option to set the Maximum Segment Size (MSS).
window W set the TCP window size for connections over this route to W bytes. This is typically only used on AX.25 networks and with drivers unable to handle back to back frames.
irtt I set the initial round trip time (irtt) for TCP connections over this route to I milliseconds (1-12000). This is typically only used on AX.25 networks. If omitted the RFC 1122 default of 300ms is used.
reject install a blocking route, which will force a route lookup to fail. This is for example used to mask out networks before using the default route. This is NOT for firewalling.
mod, dyn, reinstate install a dynamic or modified route. These flags are for diagnostic purposes, and are generally only set by routing daemons.
dev If force the route to be associated with the specified device, as the kernel will otherwise try to determine the device on its own (by checking already existing routes and device specifications, and where the route is added to). In most normal networks you won't need this.
If dev If is the last option on the command line, the word dev may be omitted, as it's the default. Otherwise the order of the route modifiers (metric netmask gw dev) doesn't matter.
route add -net 127.0.0.0 netmask 255.0.0.0 metric 1024 dev lo adds the normal loopback entry, using netmask 255.0.0.0 and associated with the "lo" device (assuming this device was previously set up correctly with ifconfig(8)).
route add -net 192.56.76.0 netmask 255.255.255.0 metric 1024 dev eth0 adds a route to the local network 192.56.76.x via "eth0".  The word "dev" can be omitted here.
route del default deletes the current default route, which is labeled "default" or 0.0.0.0 in the destination field of the current routing table.
route del -net 192.56.76.0 netmask 255.255.255.0 deletes the route. Since the Linux routing kernel uses classless addressing, you pretty much always have to specify the netmask that is same as as seen in 'route -n' listing.
route add default gw mango adds a default route (which will be used if no other route matches).  All packets using this route will be gatewayed through the address of a node named "mango". The device which will actually be used for that route depends on how we can reach "mango" - "mango" must be on directly reachable route.
route add mango sl0 Adds the route to the host named "mango" via the SLIP interface (assuming that "mango" is the SLIP host).
route add -net 192.57.66.0 netmask 255.255.255.0 gw mango This command adds the net "192.57.66.x" to be gatewayed through the former route to the SLIP interface.
route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 This is an obscure one documented so people know how to do it. This sets all of the class D (multicast) IP routes to go via "eth0". This is the correct normal configuration line with a multicasting kernel.
route add -net 10.0.0.0 netmask 255.0.0.0 metric 1024 reject This installs a rejecting route for the private network "10.x.x.x."
route -6 add 2001:0002::/48 metric 1 dev eth0 This adds a IPv6 route with the specified metric to be directly reachable via eth0.
The output of the kernel routing table is organized in the following columns
Destination The destination network or destination host.
Gateway The gateway address or '*' if none set.
Genmask The netmask for the destination net; '255.255.255.255' for a host destination and '0.0.0.0' for the default route.
Flags  Possible flags include U (route is up) H (target is a host) G (use gateway) R (reinstate route for dynamic routing) D (dynamically installed by daemon or redirect) M (modified from routing daemon or redirect) A (installed by addrconf) C (cache entry) !  (reject route)
Metric The 'distance' to the target (usually counted in hops).
Ref    Number of references to this route. (Not used in the Linux kernel.)
Use    Count of lookups for the route.  Depending on the use of -F and -C this will be either route cache misses (-F) or hits (-C).
Iface  Interface to which packets for this route will be sent.
MSS    Default maximum segment size for TCP connections over this route.
Window Default window size for TCP connections over this route.
irtt   Initial RTT (Round Trip Time). The kernel uses this to guess about the best TCP protocol parameters without waiting on (possibly slow) answers.
HH (cached only) The number of ARP entries and cached routes that refer to the hardware header cache for the cached route. This will be -1 if a hardware address is not needed for the interface of the cached route (e.g. lo).
Arp (cached only) Whether or not the hardware address for the cached route is up to date.
/proc/net/ipv6_route /proc/net/route /proc/net/rt_cache
ethers(5), arp(8), rarp(8), route(8), ifconfig(8), netstat(8)
Route for Linux was originally written by Fred N.  van Kempen, <waltje@uwalt.nl.mugnet.org> and then modified by Johannes Stille and Linus Torvalds for pl15. Alan Cox added the mss and window options for Linux 1.1.22. irtt support and merged with netstat from Bernd Eckenfels.
Currently maintained by Phil Blundell <Philip.Blundell@pobox.com> and Bernd Eckenfels <net-tools@lina.inka.de>.
SIEGE(1)                        Siege Load Tester                       SIEGE(1)
siege is a HTTP/FTP load tester and benchmarking utility.
siege [options] siege [options] <URL> siege [options] -g <URL> siege [options] -f urls.txt
siege is a multi-threaded HTTP/FTP load tester and benchmarking utility. It supports most of the features detailed in RFCs 2616 (HTTP) and 959 (FTP). Properties can be set both from the command line and in a configuration file. When the same property is set in both locations, the command line takes precedence.
The default configuration file is $HOME/.siege/siege.conf If you don't have a $HOME/.siege directory and a siege.conf and cookies.txt file, siege will generate a new config directory when it runs. You can generate your config directory with the following command: siege.config
Option Syntax siege supports long and short options. Short options look like this: -c 25 -c25
Long options look like this: --concurrent=25
Option Values -V, --version Displays the siege release version and copyright information.
-h, --help Prints a help message describing siege's command-line options.
-C, --config Prints a detailed summary of all the currently configured options, most of which are sent in $HOME/.siege/siege.conf
-v, --verbose This directive puts siege into verbose mode which is actually a default setting. This command-line option is useful when the config file is set to 'verbose = false' since it will allow you to override that.
By default siege's verbose output is displayed in a color-coded style. * HTTP 2xx is coded blue * HTTP 3xx is coded cyan * HTTP 4xx is coded magenta * HTTP 5xx is coded red * HTTP cached is coded black
NOTE: You can turn off color in siege.conf like this: 'color = off'
-q, --quiet This directive silences siege. It is mostly used for scripting and is often used in conjunction with -g/--get. You can detect the success or failure of the run with its exit code.
siege --quiet -g www.joedog.org if [ $? -eq 0 ] ; then echo "Success" else echo "Failure" fi
-g URL, --get=URL This option allows you to request a URL and watch the header transaction.  There is a corresponding config file directive that allows you to set the request method for these requests: gmethod = HEAD|GET
$ siege -g "https://www.joedog.org/" HEAD / HTTP/1.0 Host: www.joedog.org Accept: */* User-Agent: Mozilla/5.0 (unknown-x86_64-linux-gnu) Siege/4.0.0-beta5 Connection: close
HTTP/1.1 200 OK Server: cloudflare-nginx Date: Tue, 09 Feb 2016 18:18:41 GMT Content-Type: text/html; charset=UTF-8 Connection: close Last-Modified: Wed, 25 Nov 2015 18:46:08 GMT Cache-Control: max-age=3, must-revalidate Expires: Tue, 09 Feb 2016 18:18:44 GMT Vary: Accept-Encoding,Cookie CF-RAY: 27219407eeff084a-IAD
NOTE: It's a best practice to quote the URL when it's passed to siege from the the command-line.
-p URL, --print=URL This option is similar to -g / --get but it PRINTS the page it received from the server.
$ siege -p http://www.joedog.org/ GET / HTTP/1.0 Host: www.joedog.org Accept: */* User-Agent: Mozilla/5.0 (unknown-x86_64-linux-gnu) Siege/4.0.3rc1 Connection: close
HTTP/1.1 301 Moved Permanently Date: Wed, 19 Oct 2016 16:58:13 GMT Content-Type: text/html; charset=iso-8859-1 Location: https://www.joedog.org/ Server: cloudflare-nginx Connection: close
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN"> <html><head> <title>301 Moved Permanently</title> </head><body> <h1>Moved Permanently</h1> <p>The document has moved <a href="https://www.joedog.org/">here</a>.</p> <hr> <address>Apache/2.2.31 (Amazon) Server at www.joedog.org Port 80</address> </body></html>
-c NUM, --concurrent=NUM This option allows you to set the concurrent number of users. The total number of users is technically limited to your computer's resources.
You should not configure more users than your web server is configured to handle. For example, the default apache configuration is capped at 255 threads. If you run siege with -c 1024, then 769 siege users are left waiting for an apache handler.
For this reason, the default siege configuration is capped at 255 users.  You can increase that number inside siege.conf but if you make a mess, then please don't complain to us.
-r NUM, --reps=NUM|once This option tells each siege user how many times it should run. The value should generally be a number greater than zero but it may be the keyword 'once'.
If --reps=3 then each siege user will run three times before it exits.  However, if --reps=once, then each user will run through the urls.txt file exactly one time.
For more information about the urls.txt file, see option -f <file>, --file=<file>
-t NUMm, --time=NUMm This option is similar to --reps but instead of specifying the number of times each user should run, it specifies the amount of time each should run.
The value format is "NUMm", where "NUM" is an amount of time and the "m" modifier is either S, M, or H for seconds, minutes and hours. To run siege for an hour, you could select any one of the following combinations: -t3600S, -t60M, -t1H.  The modifier is not case sensitive, but it does require no space between the number and itself.
-d NUM, --delay=NUM This option instructs siege how long to delay between each page request.  The value NUM represents the number of seconds between each one. This number can be a decimal value. In fact the default is half a second (--delay=0.5).
The time between delay requests is NOT applied toward the transaction time. If two 0.1 second transactions have a 2 second delay between them, their average transaction time is 0.1 seconds. It is applied toward the total elapsed time. In this scenario, the elapsed time would be 2.2 seconds.
NOTE: when the parser is enabled (see: -p/--parser), there is no delay between the page and its elements, i.e., style sheets, javascripts, etc.  The delay is only between page requests.
-b, --benchmark This directive tells siege to go into benchmark mode. This means there is no delay between iterations.
-i, --internet This option sets siege into what we call internet mode. It makes requests from the urls.txt file (see: -f <file> / --file=<file>) in random order.
-f FILE, --file=FILE This option tells siege to work with a list of urls inside a text file. The URLs are listed one per line. Unlike URLs that are passed as a command-line argument, the URLs in this file should not be quoted.
siege's urls.txt parser supports comments and variables. Since siege uses the dollar sign ($) as a prefix for scalar variables, you should escape any variable you want to send to the server:
https://$(HOST)/siege/jsoner.php POST {"price": "\$10 per mile"}
-R FILE, --rc=FILE This directive allows you to set an alternative resource file. By default, the siegerc file is $HOME/.siege/siege.conf With this directive, you can override the default and use an alternative file.
-L FILE, --log=FILE The default log file is $prefix/var/log/siege.log. This directive allows you to specify an alternative file for logging.
-m "string", --mark="string" This option allows you to log a message to the log file before your stats are written there. It is generally used to identify the proceding run. You could, for example, mark the file with your command-line parameters so it's understood what configuration generated the following data.
-H "header: value", --header="Header: value" This options allows you to set a custom header in the request. Generally speaking, this header will override an existing header. The Cookie header is a special case.  If you set -H "Cookie: value" then siege will send that cookie in addition to the other ones.
-A "string", --agent="string" This option allows you to override the default user-agent with a custom one.
siege --agent="JoeDog Jr. in da hizzle"
Will set this header:
User-agent: JoeDog Jr. in da hizzle
Alternatively, you could set the User-agent with the -H/--header option above.
-T "text", --content-type="text" This is another set header shortcut. You use this option to override the default Content-type request header.
--no-parser Turn off the HTML parser. When siege downloads a page, it parses it for additional page elements such as style-sheets, javascript and images. It will make additional requests for any elements it finds. With this option enabled, siege will stop after it pulls down the main page.
--no-follow This directive instructs siege not to follow 3xx redirects.
siege supports RFC 1738 URL formats but it takes pains to implement commonly used shortcuts for your convenience. In addition to RFC 1738 formats, siege introduces its own URL format to indicate protocol method.
An RFC 1738 URL looks like this: <scheme>://<username>:<password>@<hostname>:<port>/<path>;<params>?<query>#<frag>
A siege URL with a method indicator looks like this: <scheme>://<username>:<password>@<hostname>:<port>/<path> POST <query>
You can also post the contents of a file using the redirect character like this: <scheme>://<username>:<password>@<hostname>:<port>/<path> POST </home/jeff/haha.txt
Here are two examples with the siege method indicator: http://www.joedog.org/ POST haha=papa&dada=mama ftp://ftp.armstrong.com/ PUT </home/jdfulmer/etc/tests/bbc.jpg
NOTE: If you set URLs with method indicators at the command-line, then you MUST quote the thing or your shell will treat it like three separate arguments. If the URL is in a urls.txt file, then you shouldn't quote it.
As mentioned above, siege goes to great lengths to allow commonly used shortcuts that you're used to from most browser implementations.  It treats many parts of the 1738 URL as optional. In this example, the parts in brackets are optional: [scheme://] host.domain.xxx [:port] [/path/file]
When siege receives a host name it builds the URL with default assumptions.  www.joedog.org becomes http://www.joedog.org:80/
URLS.txt FILE From the section called Option Syntax above we learn that siege can take a URL as an argument. siege -c -r2 www.joedog.org will request the JoeDog index page twice.  But what if you want to hit large portions of the site? siege will allow you to fill a file with URLs so that it can run through list.
The format for the file is one URL per line: https://www.joedog.org/ https://www.joedog.org/haha/ https://www.joedog.org/haha/ POST homer=simpson&marge=doestoo
The file also supports UNIX-style commenting: # Comment looks like this https://www.joedog.org/ https://www.joedog.org/haha/ https://www.joedog.org/haha/ POST homer=simpson&marge=doestoo
It supports shell-style variable declaration and references. This is convenient if you want to run the same test on two different tiers or two different schemes:
SCHEME=https HOST=bart.joedog.org $(SCHEME)://$(HOST)/ $(SCHEME)://$(HOST)/haha/ $(SCHEME)://$(HOST)/haha/ POST homer=simpson&marge=doestoo
You can tell siege about this file with the -f/--file option: siege -c1 -r50 -f /home/jeff/urls.txt
When its run is complete, siege will gather performance data from all its clients and summarize them after the run. (You can also choose to log these numbers). The command-line output is modeled after Lincoln Stein's torture.pl script:
Transactions:                   2000 hits Availability:                 100.00 % Elapsed time:                  58.57 secs Data transferred:               5.75 MB Response time:                  0.25 secs Transaction rate:              34.15 trans/sec Throughput:                     0.10 MB/sec Concurrency:                    8.45 Successful transactions:        2000 Failed transactions:               0 Longest transaction:            4.62 Shortest transaction:           0.00
Transactions This number represents the total number of HTTP requests. In this example, we ran 25 simulated users [-c25] and each ran ten times [-r10]. Twenty-five times ten equals 250 so why is the transaction total 2000? That's because siege counts every request. This run included a META redirect, a 301 redirect and the page it requested contained several elements that were also downloaded.
Availability This is the percentage of socket connections successfully handled by the server. It is the result of socket failures (including timeouts) divided by the sum of all connection attempts. This number does not include 400 and 500 level server errors which are recorded in "Failed transactions" described below.
Elapsed time The duration of the entire siege test. This is measured from the time the user invokes siege until the last simulated user completes its transactions. Shown above, the test took 14.67 seconds to complete.
Data transferred The sum of data transferred to every siege simulated user. It includes the header information as well as content. Because it includes header information, the number reported by siege will be larger then the number reported by the server. In internet mode, which hits random URLs in a configuration file, this number is expected to vary from run to run.
Response time The average time it took to respond to each simulated user's requests.
Transaction rate The average number of transactions the server was able to handle per second, in a nutshell: it is the count of all transactions divided by elapsed time.
Throughput The average number of bytes transferred every second from the server to all the simulated users.
Concurrency This is the average number of simultaneous connections. The metric is calculated like this: the sum of all transaction times divided by elapsed time (how long siege ran)
Successful transactions The number of times the server responded with a return code < 400.
Failed transactions The number of times the socket transactions failed which includes socket timeouts.
Longest transaction The greatest amount of time that any single transaction took, out of all transactions.
Shortest transaction The smallest amount of time that any single transaction took, out of all transactions.
Jeffrey Fulmer, et al. <jeff@joedog.org> is the primary author of siege. Numerous people throughout the globe also contributed to this program. Their contributions are noted in the source code ChangeLog
Copyright  by Jeffrey Fulmer, et al. <jeff@joedog.org>
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
The most recent released version of siege is available by HTTP download: http://download.joedog.org/pub/siege
siege.config(1) bombardment(1) siege2csv(1)
UFW:(8)                           February 2016                          UFW:(8)
ufw - program for managing a netfilter firewall
This program is for managing a Linux firewall and aims to provide an easy to use interface for the user.
ufw [--dry-run] enable|disable|reload
ufw [--dry-run] default allow|deny|reject [incoming|outgoing|routed]
ufw [--dry-run] logging on|off|LEVEL
ufw [--dry-run] reset
ufw [--dry-run] status [verbose|numbered]
ufw [--dry-run] show REPORT
ufw [--dry-run] [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out] [log|log-all] [ PORT[/PROTOCOL] | APPNAME ] [comment COMMENT]
ufw [--dry-run] [rule] [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out [on INTERFACE]] [log|log-all] [proto PROTOCOL] [from ADDRESS [port PORT | app APPNAME ]] [to ADDRESS [port PORT | app APPNAME ]] [comment COMMENT]
ufw [--dry-run] route [delete] [insert NUM] [prepend] allow|deny|reject|limit [in|out on INTERFACE] [log|log-all] [proto PROTOCOL] [from ADDRESS [port PORT | app APPNAME]] [to ADDRESS [port PORT | app APPNAME]] [comment COMMENT]
ufw [--dry-run] delete NUM
ufw [--dry-run] app list|info|default|update
--dry-run don't modify anything, just show the changes
enable reloads firewall and enables firewall on boot.
disable unloads firewall and disables firewall on boot
reload reloads firewall
default allow|deny|reject DIRECTION change the default policy for traffic going DIRECTION, where DIRECTION is one of incoming, outgoing or routed. Note that existing rules will have to be migrated manually when changing the default policy. See RULE SYNTAX for more on deny and reject.
logging on|off|LEVEL toggle logging. Logged packets use the LOG_KERN syslog facility. Systems configured for rsyslog support may also log to /var/log/ufw.log. Specifying a LEVEL turns logging on for the specified LEVEL. The default log level is 'low'.  See LOGGING for details.
reset  Disables and resets firewall to installation defaults. Can also give the --force option to perform the reset without confirmation.
status show status of firewall and ufw managed rules. Use status verbose for extra information. In the status output, 'Anywhere' is synonymous with 'any' and '0.0.0.0/0'. Note that when using status, there is a subtle difference when reporting interfaces. For example, if the following rules are added:
ufw allow in on eth0 from 192.168.0.0/16 ufw allow out on eth1 to 10.0.0.0/8 ufw route allow in on eth0 out on eth1 to 10.0.0.0/8 from 192.168.0.0/16 ufw limit 2222/tcp comment 'SSH port'
ufw status will output:
To                         Action      From --                         ------      ---- Anywhere on eth0           ALLOW       192.168.0.0/16 10.0.0.0/8                 ALLOW OUT   Anywhere on eth1 10.0.0.0/8 on eth1         ALLOW FWD   192.168.0.0/16 on eth0 Anywhere                   LIMIT       Anywhere # SSH port
For the input and output rules, the interface is reported relative to the firewall system as an endpoint, whereas with route rules, the interface is reported relative to the direction packets flow through the firewall.
show REPORT display information about the running firewall. See REPORTS
allow ARGS add allow rule.  See RULE SYNTAX
deny ARGS add deny rule.  See RULE SYNTAX
reject ARGS add reject rule.  See RULE SYNTAX
limit ARGS add limit rule.  Currently only IPv4 is supported.  See RULE SYNTAX
delete RULE|NUM deletes the corresponding RULE
insert NUM RULE insert the corresponding RULE as rule number NUM
prepend RULE prepend the corresponding RULE to the top of the ruleset
Users can specify rules using either a simple syntax or a full syntax. The simple syntax only specifies the port and optionally the protocol to be allowed or denied on the host.
Both syntaxes support specifying a comment for the rule. For existing rules, specifying a different comment updates the comment and specifying '' removes the comment.
Example rules using the simple syntax:
This rule will allow tcp and udp port 53 to any address on this host. To specify a protocol, append '/protocol' to the port. For example:
ufw allow 25/tcp
This will allow tcp port 25 to any address on this host. ufw will also check /etc/services for the port and protocol if specifying a service by name.  Eg:
ufw allow smtp
ufw supports both ingress and egress filtering and users may optionally specify a direction of either in or out for either incoming or outgoing traffic. If no direction is supplied, the rule applies to incoming traffic. Eg:
ufw allow in http ufw reject out smtp ufw reject telnet comment 'telnet is unencrypted'
Users can also use a fuller syntax, specifying the source and destination addresses and ports. This syntax is loosely based on OpenBSD's PF syntax. For example:
ufw deny proto tcp to any port 80
This will deny all traffic to tcp port 80 on this host. Another example:
ufw deny proto tcp from 10.0.0.0/8 to 192.168.0.1 port 25
This will deny all traffic from the RFC1918 Class A network to tcp port 25 with the address 192.168.0.1.
ufw deny proto tcp from 2001:db8::/32 to any port 25
This will deny all traffic from the IPv6 2001:db8::/32 to tcp port 25 on this host. IPv6 must be enabled in /etc/default/ufw for IPv6 firewalling to work.
ufw deny in on eth0 to 224.0.0.1 proto igmp
This will deny all igmp traffic to 224.0.0.1 on the eth0 interface.
ufw allow in on eth0 to 192.168.0.1 proto gre
This will allow all gre traffic to 192.168.0.1 on the eth0 interface.
ufw allow proto tcp from any to any port 80,443,8080:8090 comment 'web app'
The above will allow all traffic to tcp ports 80, 443 and 8080-8090 inclusive and adds a comment for the rule. When specifying multiple ports, the ports list must be numeric, cannot contain spaces and must be modified as a whole. Eg, in the above example you cannot later try to delete just the '443' port. You cannot specify more than 15 ports (ranges count as 2 ports, so the port count in the above example is 4).