neulab/tldr huggingface dataset:
TPROXY STATEMENT Tproxy redirects the packet to a local socket without changing the packet header in any way. If any of the arguments is missing the data of the incoming packet is used as parameter. Tproxy matching requires another rule that ensures the presence of transport protocol header is specified.
tproxy to address:port tproxy to {address | :port}
This syntax can be used in ip/ip6 tables where network layer protocol is obvious. Either IP address or port can be specified, but at least one of them is necessary.
tproxy {ip | ip6} to address[:port] tproxy to :port
This syntax can be used in inet tables. The ip/ip6 parameter defines the family the rule will match. The address parameter must be of this family. When only port is defined, the address family should not be specified. In this case the rule will match for both families.
Table 67. tproxy attributes ┌────────┬────────────────────────────┐ │Name    │ Description                │ ├────────┼────────────────────────────┤ │        │                            │ │address │ IP address the listening   │ │        │ socket with IP_TRANSPARENT │ │        │ option is bound to.        │ ├────────┼────────────────────────────┤ │        │                            │ │port    │ Port the listening socket  │ │        │ with IP_TRANSPARENT option │ │        │ is bound to.               │ └────────┴────────────────────────────┘
Example ruleset for tproxy statement.
table ip x { chain y { type filter hook prerouting priority mangle; policy accept; tcp dport ntp tproxy to 1.1.1.1 udp dport ssh tproxy to :2222 } } table ip6 x { chain y { type filter hook prerouting priority mangle; policy accept; tcp dport ntp tproxy to [dead::beef] udp dport ssh tproxy to :2222 } } table inet x { chain y { type filter hook prerouting priority mangle; policy accept; tcp dport 321 tproxy to :ssh tcp dport 99 tproxy ip to 1.1.1.1:999 udp dport 155 tproxy ip6 to [dead::beef]:smux } }
SYNPROXY STATEMENT This statement will process TCP three-way-handshake parallel in netfilter context to protect either local or backend system. This statement requires connection tracking because sequence numbers need to be translated.
synproxy [mss mss_value] [wscale wscale_value] [SYNPROXY_FLAGS]
Table 68. synproxy statement attributes ┌───────┬────────────────────────────┐ │Name   │ Description                │ ├───────┼────────────────────────────┤ │       │                            │ │mss    │ Maximum segment size       │ │       │ announced to clients. This │ │       │ must match the backend.    │ ├───────┼────────────────────────────┤ │       │                            │ │wscale │ Window scale announced to  │ │       │ clients. This must match   │ │       │ the backend.               │ └───────┴────────────────────────────┘
Table 69. synproxy statement flags ┌──────────┬────────────────────────────┐ │Flag      │ Description                │ ├──────────┼────────────────────────────┤ │          │                            │ │sack-perm │ Pass client selective      │ │          │ acknowledgement option to  │ │          │ backend (will be disabled  │ │          │ if not present).           │ ├──────────┼────────────────────────────┤ │          │                            │ │timestamp │ Pass client timestamp      │ │          │ option to backend (will be │ │          │ disabled if not present,   │ │          │ also needed for selective  │ │          │ acknowledgement and window │ │          │ scaling).                  │ └──────────┴────────────────────────────┘
Example ruleset for synproxy statement.
Determine tcp options used by backend, from an external system
tcpdump -pni eth0 -c 1 'tcp[tcpflags] == (tcp-syn|tcp-ack)' port 80 & telnet 192.0.2.42 80 18:57:24.693307 IP 192.0.2.42.80 > 192.0.2.43.48757: Flags [S.], seq 360414582, ack 788841994, win 14480, options [mss 1460,sackOK, TS val 1409056151 ecr 9690221, nop,wscale 9], length 0
Switch tcp_loose mode off, so conntrack will mark out-of-flow packets as state INVALID.
echo 0 > /proc/sys/net/netfilter/nf_conntrack_tcp_loose
Make SYN packets untracked.
table ip x { chain y { type filter hook prerouting priority raw; policy accept; tcp flags syn notrack } }
Catch UNTRACKED (SYN  packets) and INVALID (3WHS ACK packets) states and send them to SYNPROXY. This rule will respond to SYN packets with SYN+ACK syncookies, create ESTABLISHED for valid client response (3WHS ACK packets) and drop incorrect cookies. Flags combinations not expected during  3WHS will not match and continue (e.g. SYN+FIN, SYN+ACK). Finally, drop invalid packets, this will be out-of-flow packets that were not matched by SYNPROXY.
table ip x { chain z { type filter hook input priority filter; policy accept; ct state invalid, untracked synproxy mss 1460 wscale 9 timestamp sack-perm ct state invalid drop } }
FLOW STATEMENT A flow statement allows us to select what flows you want to accelerate forwarding through layer 3 network stack bypass. You have to specify the flowtable name where you want to offload this flow.
flow add @flowtable
QUEUE STATEMENT This statement passes the packet to userspace using the nfnetlink_queue handler. The packet is put into the queue identified by its 16-bit queue number. Userspace can inspect and modify the packet if desired. Userspace must then drop or re-inject the packet into the kernel. See libnetfilter_queue documentation for details.
queue [flags QUEUE_FLAGS] [to queue_number] queue [flags QUEUE_FLAGS] [to queue_number_from - queue_number_to] queue [flags QUEUE_FLAGS] [to QUEUE_EXPRESSION ]
QUEUE_FLAGS := QUEUE_FLAG [, QUEUE_FLAGS] QUEUE_FLAG  := bypass | fanout QUEUE_EXPRESSION := numgen | hash | symhash | MAP STATEMENT
QUEUE_EXPRESSION can be used to compute a queue number at run-time with the hash or numgen expressions. It also allows to use the map statement to assign fixed queue numbers based on external inputs such as the source ip address or interface names.
Table 70. queue statement values ┌──────────────────┬────────────────────┬──────────────────────┐ │Value             │ Description        │ Type                 │ ├──────────────────┼────────────────────┼──────────────────────┤ │                  │                    │                      │ │queue_number      │ Sets queue number, │ unsigned integer (16 │ │                  │ default is 0.      │ bit)                 │ ├──────────────────┼────────────────────┼──────────────────────┤ │                  │                    │                      │ │queue_number_from │ Sets initial queue │ unsigned integer (16 │ │                  │ in the range, if   │ bit)                 │ │                  │ fanout is used.    │                      │ ├──────────────────┼────────────────────┼──────────────────────┤ │                  │                    │                      │ │queue_number_to   │ Sets closing queue │ unsigned integer (16 │ │                  │ in the range, if   │ bit)                 │ │                  │ fanout is used.    │                      │ └──────────────────┴────────────────────┴──────────────────────┘
Table 71. queue statement flags ┌───────┬────────────────────────────┐ │Flag   │ Description                │ ├───────┼────────────────────────────┤ │       │                            │ │bypass │ Let packets go through if  │ │       │ userspace application      │ │       │ cannot back off. Before    │ │       │ using this flag, read      │ │       │ libnetfilter_queue         │ │       │ documentation for          │ │       │ performance tuning         │ │       │ recommendations.           │ ├───────┼────────────────────────────┤ │       │                            │ │fanout │ Distribute packets between │ │       │ several queues.            │ └───────┴────────────────────────────┘
DUP STATEMENT The dup statement is used to duplicate a packet and send the copy to a different destination.
dup to device dup to address device device
Table 72. Dup statement values ┌───────────┬─────────────────────┬─────────────────────┐ │Expression │ Description         │ Type                │ ├───────────┼─────────────────────┼─────────────────────┤ │           │                     │                     │ │address    │ Specifies that the  │ ipv4_addr,          │ │           │ copy of the packet  │ ipv6_addr, e.g.     │ │           │ should be sent to a │ abcd::1234, or you  │ │           │ new gateway.        │ can use a mapping,  │ │           │                     │ e.g. ip saddr map { │ │           │                     │ 192.168.1.2 :       │ │           │                     │ 10.1.1.1 }          │ ├───────────┼─────────────────────┼─────────────────────┤ │           │                     │                     │ │device     │ Specifies that the  │ string              │ │           │ copy should be      │                     │ │           │ transmitted via     │                     │ │           │ device.             │                     │ └───────────┴─────────────────────┴─────────────────────┘
Using the dup statement.
# send to machine with ip address 10.2.3.4 on eth0 ip filter forward dup to 10.2.3.4 device "eth0"
# copy raw frame to another interface netdev ingress dup to "eth0" dup to "eth0"
# combine with map dst addr to gateways dup to ip daddr map { 192.168.7.1 : "eth0", 192.168.7.2 : "eth1" }
FWD STATEMENT The fwd statement is used to redirect a raw packet to another interface. It is only available in the netdev family ingress and egress hooks. It is similar to the dup statement except that no copy is made.
fwd to device
SET STATEMENT The set statement is used to dynamically add or update elements in a set from the packet path. The set setname must already exist in the given table and must have been created with one or both of the dynamic and the timeout flags. The dynamic flag is required if the set statement expression includes a stateful object. The timeout flag is implied if the set is created with a timeout, and is required if the set statement updates elements, rather than adding them. Furthermore, these sets should specify both a maximum set size (to prevent memory exhaustion), and their elements should have a timeout (so their number will not grow indefinitely) either from the set definition or from the statement that adds or updates them. The set statement can be used to e.g. create dynamic blacklists.
{add | update} @setname { expression [timeout timeout] [comment string] }
Example for simple blacklist.
# declare a set, bound to table "filter", in family "ip". # Timeout and size are mandatory because we will add elements from packet path. # Entries will timeout after one minute, after which they might be # re-added if limit condition persists. nft add set ip filter blackhole \ "{ type ipv4_addr; flags dynamic; timeout 1m; size 65536; }"
# declare a set to store the limit per saddr. # This must be separate from blackhole since the timeout is different nft add set ip filter flood \ "{ type ipv4_addr; flags dynamic; timeout 10s; size 128000; }"
# whitelist internal interface. nft add rule ip filter input meta iifname "internal" accept
# drop packets coming from blacklisted ip addresses. nft add rule ip filter input ip saddr @blackhole counter drop
# add source ip addresses to the blacklist if more than 10 tcp connection # requests occurred per second and ip address. nft add rule ip filter input tcp flags syn tcp dport ssh \ add @flood { ip saddr limit rate over 10/second } \ add @blackhole { ip saddr } \ drop
# inspect state of the sets. nft list set ip filter flood nft list set ip filter blackhole
# manually add two addresses to the blackhole. nft add element filter blackhole { 10.2.3.4, 10.23.1.42 }
MAP STATEMENT The map statement is used to lookup data based on some specific input key.
expression map { MAP_ELEMENTS }
MAP_ELEMENTS := MAP_ELEMENT [, MAP_ELEMENTS] MAP_ELEMENT  := key : value
The key is a value returned by expression.
Using the map statement.
# select DNAT target based on TCP dport: # connections to port 80 are redirected to 192.168.1.100, # connections to port 8888 are redirected to 192.168.1.101 nft add rule ip nat prerouting dnat tcp dport map { 80 : 192.168.1.100, 8888 : 192.168.1.101 }
# source address based SNAT: # packets from net 192.168.1.0/24 will appear as originating from 10.0.0.1, # packets from net 192.168.2.0/24 will appear as originating from 10.0.0.2 nft add rule ip nat postrouting snat to ip saddr map { 192.168.1.0/24 : 10.0.0.1, 192.168.2.0/24 : 10.0.0.2 }
VMAP STATEMENT The verdict map (vmap) statement works analogous to the map statement, but contains verdicts as values.
expression vmap { VMAP_ELEMENTS }
VMAP_ELEMENTS := VMAP_ELEMENT [, VMAP_ELEMENTS] VMAP_ELEMENT  := key : verdict
Using the vmap statement.
# jump to different chains depending on layer 4 protocol type: nft add rule ip filter input ip protocol vmap { tcp : jump tcp-chain, udp : jump udp-chain , icmp : jump icmp-chain }
These are some additional commands included in nft.
MONITOR The monitor command allows you to listen to Netlink events produced by the nf_tables subsystem. These are either related to creation and deletion of objects or to packets for which meta nftrace was enabled. When they occur, nft will print to stdout the monitored events in either JSON or native nft format.
monitor [new | destroy] MONITOR_OBJECT monitor trace
MONITOR_OBJECT := tables | chains | sets | rules | elements | ruleset
To filter events related to a concrete object, use one of the keywords in MONITOR_OBJECT.
To filter events related to a concrete action, use keyword new or destroy.
The second form of invocation takes no further options and exclusively prints events generated for packets with nftrace enabled.
Hit ^C to finish the monitor operation.
Listen to all events, report in native nft format.
% nft monitor
Listen to deleted rules, report in JSON format.
% nft -j monitor destroy rules
Listen to both new and destroyed chains, in native nft format.
% nft monitor chains
Listen to ruleset events such as table, chain, rule, set, counters and quotas, in native nft format.
% nft monitor ruleset
Trace incoming packets from host 10.0.0.1.
% nft add rule filter input ip saddr 10.0.0.1 meta nftrace set 1 % nft monitor trace
When an error is detected, nft shows the line(s) containing the error, the position of the erroneous parts in the input stream and marks up the erroneous parts using carets (^). If the error results from the combination of two expressions or statements, the part imposing the constraints which are violated is marked using tildes (~).
For errors returned by the kernel, nft cannot detect which parts of the input caused the error and the entire command is marked.
Error caused by single incorrect expression.
<cmdline>:1:19-22: Error: Interface does not exist filter output oif eth0 ^^^^
Error caused by invalid combination of two expressions.
<cmdline>:1:28-36: Error: Right hand side of relational expression (==) must be constant filter output tcp dport == tcp dport ~~ ^^^^^^^^^
Error returned by the kernel.
<cmdline>:0:0-23: Error: Could not process rule: Operation not permitted filter output oif wlan0 ^^^^^^^^^^^^^^^^^^^^^^^
On success, nft exits with a status of 0. Unspecified errors cause it to exit with a status of 1, memory allocation errors with a status of 2, unable to open Netlink socket with 3.
libnftables(3), libnftables-json(5), iptables(8), ip6tables(8), arptables(8), ebtables(8), ip(8), tc(8)
There is an official wiki at: https://wiki.nftables.org
nftables was written by Patrick McHardy and Pablo Neira Ayuso, among many other contributors from the Netfilter community.
Copyright © 2008-2014 Patrick McHardy <kaber@trash.net> Copyright © 2013-2018 Pablo Neira Ayuso <pablo@netfilter.org>
nftables is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.
This documentation is licensed under the terms of the Creative Commons Attribution-ShareAlike 4.0 license, CC BY-SA 4.0 http://creativecommons.org/licenses/by-sa/4.0/.
sinfo(1)                         Slurm Commands                         sinfo(1)
sinfo - View information about Slurm nodes and partitions.
sinfo [OPTIONS...]
sinfo is used to view partition and node information for a system running Slurm.
-a, --all Display information about all partitions. This causes information to be displayed about partitions that are configured as hidden and partitions that are unavailable to the user's group.
-d, --dead If set, only report state information for non-responding (dead) nodes.
-e, --exact If set, do not group node information on multiple nodes unless their configurations to be reported are identical. Otherwise cpu count, memory size, and disk space for nodes will be listed with the minimum value followed by a "+" for nodes with the same partition and state (e.g. "250+").
--federation Show all partitions from the federation if a member of one.
--help Print a message describing all sinfo options.
--hide Do not display information about hidden partitions. Partitions that are configured as hidden or are not available to the user's group will not be displayed. This is the default behavior.
-i <seconds>, --iterate=<seconds> Print the state on a periodic basis.  Sleep for the indicated number of seconds between reports.  By default prints a time stamp with the header.
-l, --long Print more detailed information.  This is ignored if the --format option is specified.
-M, --clusters=<string> Clusters to issue commands to.  Multiple cluster names may be comma separated.  A value of 'all' will query all clusters. Note that the SlurmDBD must be up for this option to work properly. This option implicitly sets the --local option.
-n <nodes>, --nodes=<nodes> Print information about the specified node(s).  Multiple nodes may be comma separated or expressed using a node range expression (e.g. "linux[00-17]") Limiting the query to just the relevant nodes can measurably improve the performance of the command for large clusters.
-N, --Node Print information in a node-oriented format with one line per node and partition. That is, if a node belongs to more than one partition, then one line for each node-partition pair will be shown.  If --partition is also specified, then only one line per node in this partition is shown.  The default is to print information in a partition-oriented format.  This is ignored if the --format option is specified.
-o <output_format>, --format=<output_format> Specify the information to be displayed using an sinfo format string.  If the command is executed in a federated cluster environment and information about more than one cluster is to be displayed and the -h, --noheader option is used, then the cluster name will be displayed before the default output formats shown below.  Format strings transparently used by sinfo when running with various options are:
default        "%#P %.5a %.10l %.6D %.6t %N"
--summarize    "%#P %.5a %.10l %.16F  %N"
--long         "%#P %.5a %.10l %.10s %.4r %.8h %.10g %.6D %.11T %N"
--Node         "%#N %.6D %#P %6t"
--long --Node  "%#N %.6D %#P %.11T %.4c %.8z %.6m %.8d %.6w %.8f %20E"
--list-reasons "%20E %9u %19H %N"
--long --list-reasons "%20E %12U %19H %6t %N"
In the above format strings, the use of "#" represents the maximum length of any partition name or node list to be printed.  A pass is made over the records to be printed to establish the size in order to align the sinfo output, then a second pass is made over the records to print them.  Note that the literal character "#" itself is not a valid field length specification, but is only used to document this behaviour.
Valid type specifications include:
%a    State/availability of a partition.
%A    Number of nodes by state in the format "allocated/idle".  Do not use this with a node state option ("%t" or "%T") or the different node states will be placed on separate lines.
%b    Features currently active on the nodes, also see %f.
%B    The max number of CPUs per node available to jobs in the partition.
%c    Number of CPUs per node.
%C    Number of CPUs by state in the format "allocated/idle/other/total". Do not use this with a node state option ("%t" or "%T") or the different node states will be placed on separate lines.
%d    Size of temporary disk space per node in megabytes.
%D    Number of nodes.
%e    Free memory of a node.
%E    The reason a node is unavailable (down, drained, or draining states).
%f    Features available the nodes, also see %b.
%F    Number of nodes by state in the format "allocated/idle/other/total".  Note the use of this format option with a node state format option ("%t" or "%T") will result in the different node states being be reported on separate lines.
%g    Groups which may use the nodes.
%G    Generic resources (gres) associated with the nodes.
%h    Print the OverSubscribe setting for the partition.
%H    Print the timestamp of the reason a node is unavailable.
%I    Partition job priority weighting factor.
%l    Maximum time for any job in the format "days-hours:minutes:seconds"
%L    Default time for any job in the format "days-hours:minutes:seconds"
%m    Size of memory per node in megabytes.
%M    PreemptionMode.
%n    List of node hostnames.
%N    List of node names.
%o    List of node communication addresses.
%O    CPU load of a node.
%p    Partition scheduling tier priority.
%P    Partition name followed by "*" for the default partition, also see %R.
%r    Only user root may initiate jobs, "yes" or "no".
%R    Partition name, also see %P.
%s    Maximum job size in nodes.
%S    Allowed allocating nodes.
%t    State of nodes, compact form.
%T    State of nodes, extended form.
%u    Print the user name of who set the reason a node is unavailable.
%U    Print the user name and uid of who set the reason a node is unavailable.
%v    Print the version of the running slurmd daemon.
%V    Print the cluster name if running in a federation.
%w    Scheduling weight of the nodes.
%X    Number of sockets per node.
%Y    Number of cores per socket.
%Z    Number of threads per core.
%z    Extended processor information: number of sockets, cores, threads (S:C:T) per node.
-O <output_format>, --Format=<output_format> Specify the information to be displayed.  Also see the -o <output_format>, --format=<output_format> option (which supports greater flexibility in formatting, but does not support access to all fields because we ran out of letters).  Requests a comma separated list of job information to be displayed.
The format of each field is "type[:[.][size][suffix]]"
size   The minimum field size.  If no size is specified, 20 characters will be allocated to print the information.
.      Indicates the output should be right justified and size must be specified.  By default, output is left justified.
All Print all fields available in the -o format for this data type with a vertical bar separating each field.
AllocMem Prints the amount of allocated memory on a node.
AllocNodes Allowed allocating nodes.
Available State/availability of a partition.
Cluster Print the cluster name if running in a federation.
Comment Comment. (Arbitrary descriptive string)
Cores Number of cores per socket.
CPUs Number of CPUs per node.
CPUsLoad CPU load of a node.
CPUsState Number of CPUs by state in the format "allocated/idle/other/total". Do not use this with a node state option ("%t" or "%T") or the different node states will be placed on separate lines.
DefaultTime Default time for any job in the format "days-hours:minutes:seconds".
Disk Size of temporary disk space per node in megabytes.
Features Features available on the nodes. Also see features_act.
features_act Features currently active on the nodes. Also see features.
FreeMem Free memory of a node.
Gres Generic resources (gres) associated with the nodes.
GresUsed Generic resources (gres) currently in use on the nodes.
Groups Groups which may use the nodes.
MaxCPUsPerNode The max number of CPUs per node available to jobs in the partition.
Memory Size of memory per node in megabytes.
NodeAddr List of node communication addresses.
NodeAI Number of nodes by state in the format "allocated/idle". Do not use this with a node state option ("%t" or "%T") or the different node states will be placed on separate lines.
NodeAIOT Number of nodes by state in the format "allocated/idle/other/total".  Do not use this with a node state option ("%t" or "%T") or the different node states will be placed on separate lines.
NodeHost List of node hostnames.
NodeList List of node names.
Nodes Number of nodes.
OverSubscribe Whether jobs may oversubscribe compute resources (e.g. CPUs).
Partition Partition name followed by "*" for the default partition, also see %R.
PartitionName Partition name, also see %P.
Port Node TCP port.
PreemptMode Preemption mode.
PriorityJobFactor Partition factor used by priority/multifactor plugin in calculating job priority.
PriorityTier or Priority Partition scheduling tier priority.
Reason The reason a node is unavailable (down, drained, or draining states).
Root Only user root may initiate jobs, "yes" or "no".
Size Maximum job size in nodes.
SocketCoreThread Extended processor information: number of sockets, cores, threads (S:C:T) per node.
Sockets Number of sockets per node.
StateCompact State of nodes, compact form.
StateLong State of nodes, extended form.
Threads Number of threads per core.
Time Maximum time for any job in the format "days-hours:minutes:seconds".
TimeStamp Print the timestamp of the reason a node is unavailable.
User Print the user name of who set the reason a node is unavailable.
UserLong Print the user name and uid of who set the reason a node is unavailable.
Version Print the version of the running slurmd daemon.
Weight Scheduling weight of the nodes.
-p <partition>, --partition=<partition> Print information only about the specified partition(s). Multiple partitions are separated by commas.
-r, --responding If set only report state information for responding nodes.
-R, --list-reasons List reasons nodes are in the down, drained, fail or failing state.  When nodes are in these states Slurm supports the inclusion of a "reason" string by an administrator.  This option will display the first 20 characters of the reason field and list of nodes with that reason for all nodes that are, by default, down, drained, draining or failing.  This option may be used with other node filtering options (e.g. -r, -d, -t, -n), however, combinations of these options that result in a list of nodes that are not down or drained or failing will not produce any output. When used with -l the output additionally includes the current node state.
-s, --summarize List only a partition state summary with no node state details. This is ignored if the --format option is specified.
-S <sort_list>, --sort=<sort_list> Specification of the order in which records should be reported. This uses the same field specification as the <output_format>. Multiple sorts may be performed by listing multiple sort fields separated by commas.  The field specifications may be preceded by "+" or "-" for ascending (default) and descending order respectively.  The partition field specification, "P", may be preceded by a "#" to report partitions in the same order that they appear in Slurm's  configuration file, slurm.conf.  For example, a sort value of "+P,-m" requests that records be printed in order of increasing partition name and within a partition by decreasing memory size.  The default value of sort is "#P,-t" (partitions ordered as configured then decreasing node state).  If the --Node option is selected, the default sort value is "N" (increasing node name).
-t <states> , --states=<states> List nodes only having the given state(s).  Multiple states may be comma separated and the comparison is case insensitive.  If the states are separated by '&', then the nodes must be in all states. Possible values include (case insensitive): ALLOC, ALLOCATED, CLOUD, COMP, COMPLETING, DOWN, DRAIN (for node in DRAINING or DRAINED states), DRAINED, DRAINING, FAIL, FUTURE, FUTR, IDLE, MAINT, MIX, MIXED, NO_RESPOND, NPC, PERFCTRS, POWER_DOWN, POWERING_DOWN, POWER_UP, RESV, RESERVED, UNK, and UNKNOWN.  By default nodes in the specified state are reported whether they are responding or not.  The --dead and --responding options may be used to filter nodes by the corresponding flag.
-T, --reservation Only display information about Slurm reservations.
NOTE: This option causes sinfo to ignore most other options, which are focused on partition and node information.
--usage Print a brief message listing the sinfo options.
-v, --verbose Provide detailed event logging through program execution.
AVAIL  Partition state. Can be either up, down, drain, or inact (for INACTIVE). See the partition definition's State parameter in the slurm.conf(5) man page for more information.
CPUS   Count of CPUs (processors) on these nodes.
S:C:T  Count of sockets (S), cores (C), and threads (T) on these nodes.
SOCKETS Count of sockets on these nodes.
CORES  Count of cores on these nodes.
THREADS Count of threads on these nodes.
GROUPS Resource allocations in this partition are restricted to the named groups.  all indicates that all groups may use this partition.
JOB_SIZE Minimum and maximum node count that can be allocated to any user job.  A single number indicates the minimum and maximum node count are the same.  infinite is used to identify partitions without a maximum node count.
TIMELIMIT Maximum time limit for any user job in days-hours:minutes:seconds. infinite is used to identify partitions without a job time limit.
MEMORY Size of real memory in megabytes on these nodes.
NODELIST Names of nodes associated with this particular configuration.
NODES  Count of nodes with this particular configuration.
NODES(A/I) Count of nodes with this particular configuration by node state in the form "available/idle".
NODES(A/I/O/T) Count of nodes with this particular configuration by node state in the form "available/idle/other/total".
PARTITION Name of a partition.  Note that the suffix "*" identifies the default partition.
PORT   Local TCP port used by slurmd on the node.
ROOT   Is the ability to allocate resources in this partition restricted to user root, yes or no.
OVERSUBSCRIBE Whether jobs allocated resources in this partition can/will oversubscribe those compute resources (e.g. CPUs).  NO indicates resources are never oversubscribed.  EXCLUSIVE indicates whole nodes are dedicated to jobs (equivalent to srun --exclusive option, may be used even with select/cons_res managing individual processors).  FORCE indicates resources are always available to be oversubscribed.  YES indicates resource may be oversubscribed, if requested by the job's resource allocation.
NOTE: If OverSubscribe is set to FORCE or YES, the OversubScribe value will be appended to the output.
STATE  State of the nodes.  Possible states include: allocated, completing, down, drained, draining, fail, failing, future, idle, maint, mixed, perfctrs, power_down, power_up, reserved, and unknown.  Their abbreviated forms are: alloc, comp, down, drain, drng, fail, failg, futr, idle, maint, mix, npc, pow_dn, pow_up, resv, and unk respectively.
NOTE: The suffix "*" identifies nodes that are presently not responding.
TMP_DISK Size of temporary disk space in megabytes on these nodes.
Node state codes are shortened as required for the field size.  These node states may be followed by a special character to identify state flags associated with the node.  The following node suffixes and states are used:
*   The node is presently not responding and will not be allocated any new work.  If the node remains non-responsive, it will be placed in the DOWN state (except in the case of COMPLETING, DRAINED, DRAINING, FAIL, FAILING nodes).
~   The node is presently in a power saving mode (typically running at reduced frequency).
#   The node is presently being powered up or configured.
%   The node is presently being powered down.
$   The node is currently in a reservation with a flag value of "maintenance".
@   The node is pending reboot.
ALLOCATED   The node has been allocated to one or more jobs.
ALLOCATED+  The node is allocated to one or more active jobs plus one or more jobs are in the process of COMPLETING.
COMPLETING  All jobs associated with this node are in the process of COMPLETING.  This node state will be removed when all of the job's processes have terminated and the Slurm epilog program (if any) has terminated. See the Epilog parameter description in the slurm.conf(5) man page for more information.
DOWN        The node is unavailable for use. Slurm can automatically place nodes in this state if some failure occurs. System administrators may also explicitly place nodes in this state. If a node resumes normal operation, Slurm can automatically return it to service. See the ReturnToService and SlurmdTimeout parameter descriptions in the slurm.conf(5) man page for more information.
DRAINED     The node is unavailable for use per system administrator request.  See the update node command in the scontrol(1) man page or the slurm.conf(5) man page for more information.
DRAINING    The node is currently executing a job, but will not be allocated additional jobs. The node state will be changed to state DRAINED when the last job on it completes. Nodes enter this state per system administrator request. See the update node command in the scontrol(1) man page or the slurm.conf(5) man page for more information.
FAIL        The node is expected to fail soon and is unavailable for use per system administrator request.  See the update node command in the scontrol(1) man page or the slurm.conf(5) man page for more information.
FAILING     The node is currently executing a job, but is expected to fail soon and is unavailable for use per system administrator request.  See the update node command in the scontrol(1) man page or the slurm.conf(5) man page for more information.
FUTURE      The node is currently not fully configured, but expected to be available at some point in the indefinite future for use.
IDLE        The node is not allocated to any jobs and is available for use.
MAINT       The node is currently in a reservation with a flag value of "maintenance".
REBOOT      The node is currently scheduled to be rebooted.
MIXED       The node has some of its CPUs ALLOCATED while others are IDLE.
PERFCTRS (NPC) Network Performance Counters associated with this node are in use, rendering this node as not usable for any other jobs
POWER_DOWN  The node is currently powered down and not capable of running any jobs.
POWERING_DOWN The node is in the process of powering down and not capable of running any jobs.
POWER_UP    The node is in the process of being powered up.
RESERVED    The node is in an advanced reservation and not generally available.
UNKNOWN     The Slurm controller has just started and the node's state has not yet been determined.
Executing sinfo sends a remote procedure call to slurmctld. If enough calls from sinfo or other Slurm client commands that send remote procedure calls to the slurmctld daemon come in at once, it can result in a degradation of performance of the slurmctld daemon, possibly resulting in a denial of service.
Do not run sinfo or other Slurm client commands that send remote procedure calls to slurmctld from loops in shell scripts or other programs. Ensure that programs limit calls to sinfo to the minimum necessary for the information you are trying to gather.
Some sinfo options may be set via environment variables. These environment variables, along with their corresponding options, are listed below.  NOTE: Command line options will always override these settings.
SINFO_ALL           Same as -a, --all
SINFO_FEDERATION    Same as --federation
SINFO_FORMAT        Same as -o <output_format>, --format=<output_format>
SINFO_LOCAL         Same as --local
SINFO_PARTITION     Same as -p <partition>, --partition=<partition>
SINFO_SORT          Same as -S <sort>, --sort=<sort>
Report basic node and partition configurations:
> sinfo PARTITION AVAIL TIMELIMIT NODES STATE  NODELIST batch     up     infinite     2 alloc  adev[8-9] batch     up     infinite     6 idle   adev[10-15] debug*    up        30:00     8 idle   adev[0-7]
Report partition summary information:
> sinfo -s PARTITION AVAIL TIMELIMIT NODES(A/I/O/T) NODELIST batch     up     infinite 2/6/0/8        adev[8-15] debug*    up        30:00 0/8/0/8        adev[0-7]
Report more complete information about the partition debug:
> sinfo --long --partition=debug PARTITION AVAIL TIMELIMIT JOB_SIZE ROOT OVERSUBS GROUPS NODES STATE NODELIST debug*    up        30:00        8 no   no       all        8 idle  dev[0-7]
Report only those nodes that are in state DRAINED:
> sinfo --states=drained PARTITION AVAIL NODES TIMELIMIT STATE  NODELIST debug*    up        2     30:00 drain  adev[6-7]
Report node-oriented information with details and exact matches:
> sinfo -Nel NODELIST    NODES PARTITION STATE  CPUS MEMORY TMP_DISK WEIGHT FEATURES REASON adev[0-1]       2 debug*    idle      2   3448    38536     16 (null)   (null) adev[2,4-7]     5 debug*    idle      2   3384    38536     16 (null)   (null) adev3           1 debug*    idle      2   3394    38536     16 (null)   (null) adev[8-9]       2 batch     allocated 2    246    82306     16 (null)   (null) adev[10-15]     6 batch     idle      2    246    82306     16 (null)   (null)
Report only down, drained and draining nodes and their reason field:
> sinfo -R REASON                              NODELIST Memory errors                       dev[0,5] Not Responding                      dev8
Copyright (C) 2002-2007 The Regents of the University of California. Produced at Lawrence Livermore National Laboratory (cf, DISCLAIMER). Copyright (C) 2008-2009 Lawrence Livermore National Security. Copyright (C) 2010-2017 SchedMD LLC.
scontrol(1), squeue(1), slurm_load_ctl_conf (3), slurm_load_jobs (3), slurm_load_node (3), slurm_load_partitions (3), slurm_reconfigure (3), slurm_shutdown (3), slurm_update_job (3), slurm_update_node (3), slurm_update_partition (3), slurm.conf(5)
DOLPHIN(1)                   General Commands Manual                  DOLPHIN(1)
DOLPHIN - file manager for KDE focusing on usability
dolphin [Qt-options][KDE-options][URL]
Dolphin is a KDE-based file manager focusing on file management and usability. This approach allows to optimize the user interface for the task of file management rather then be a universal viewer for everything. Features include breadcrumb navigation, split view, network transparency and undo/redo functionality.
Generic Options: --help Show help about options
Arguments: URL    Document to open
This manual page was written by Varun Hiremath <varunhiremath@gmail.com>, for the Debian project (but may be used by others).
GIT-MAILINFO(1)                    Git Manual                    GIT-MAILINFO(1)
git-mailinfo - Extracts patch and authorship from a single e-mail message
git mailinfo [-k|-b] [-u | --encoding=<encoding> | -n] [--[no-]scissors] [--quoted-cr=<action>] <msg> <patch>
Reads a single e-mail message from the standard input, and writes the commit log message in <msg> file, and the patches in <patch> file. The author name, e-mail and e-mail subject are written out to the standard output to be used by git am to create a commit. It is usually not necessary to use this command directly. See git-am(1) instead.
-k Usually the program removes email cruft from the Subject: header line to extract the title line for the commit log message. This option prevents this munging, and is most useful when used to read back git format-patch -k output.
Specifically, the following are removed until none of them remain:
•   Leading and trailing whitespace.
•   Leading Re:, re:, and :.
•   Leading bracketed strings (between [ and ], usually [PATCH]).
Finally, runs of whitespace are normalized to a single ASCII space character.
-b When -k is not in effect, all leading strings bracketed with [ and ] pairs are stripped. This option limits the stripping to only the pairs whose bracketed string contains the word "PATCH".
-u The commit log message, author name and author email are taken from the e-mail, and after minimally decoding MIME transfer encoding, re-coded in the charset specified by i18n.commitEncoding (defaulting to UTF-8) by transliterating them. This used to be optional but now it is the default.
Note that the patch is always used as-is without charset conversion, even with this flag.
--encoding=<encoding> Similar to -u. But when re-coding, the charset specified here is used instead of the one specified by i18n.commitEncoding or UTF-8.
-n Disable all charset re-coding of the metadata.
-m, --message-id Copy the Message-ID header at the end of the commit message. This is useful in order to associate commits with mailing list discussions.
--scissors Remove everything in body before a scissors line (e.g. "-- >8 --"). The line represents scissors and perforation marks, and is used to request the reader to cut the message at that line. If that line appears in the body of the message before the patch, everything before it (including the scissors line itself) is ignored when this option is used.
This is useful if you want to begin your message in a discussion thread with comments and suggestions on the message you are responding to, and to conclude it with a patch submission, separating the discussion and the beginning of the proposed commit log message with a scissors line.
This can be enabled by default with the configuration option mailinfo.scissors.
--no-scissors Ignore scissors lines. Useful for overriding mailinfo.scissors settings.
--quoted-cr=<action> Action when processes email messages sent with base64 or quoted-printable encoding, and the decoded lines end with a CRLF instead of a simple LF.
The valid actions are:
•   nowarn: Git will do nothing when such a CRLF is found.
•   warn: Git will issue a warning for each message if such a CRLF is found.
•   strip: Git will convert those CRLF to LF.
The default action could be set by configuration option mailinfo.quotedCR. If no such configuration option has been set, warn will be used.
<msg> The commit log message extracted from e-mail, usually except the title line which comes from e-mail Subject.
<patch> The patch extracted from e-mail.
less(3perl)             Perl Programmers Reference Guide             less(3perl)
less - perl pragma to request less of something
use less 'CPU';
This is a user-pragma. If you're very lucky some code you're using will know that you asked for less CPU usage or ram or fat or... we just can't know. Consult your documentation on everything you're currently using.
For general suggestions, try requesting "CPU" or "memory".
use less 'memory'; use less 'CPU'; use less 'fat';
If you ask for nothing in particular, you'll be asking for "less 'please'".
use less 'please';
less has been in the core as a "joke" module for ages now and it hasn't had any real way to communicating any information to anything. Thanks to Nicholas Clark we have user pragmas (see perlpragma) and now "less" can do something.
You can probably expect your users to be able to guess that they can request less CPU or memory or just "less" overall.
If the user didn't specify anything, it's interpreted as having used the "please" tag. It's up to you to make this useful.
# equivalent use less; use less 'please';
"BOOLEAN = less->of( FEATURE )" The class method "less->of( NAME )" returns a boolean to tell you whether your user requested less of something.
if ( less->of( 'CPU' ) ) { ... } elsif ( less->of( 'memory' ) ) {
"FEATURES = less->of()" If you don't ask for any feature, you get the list of features that the user requested you to be nice to. This has the nice side effect that if you don't respect anything in particular then you can just ask for it and use it like a boolean.
if ( less->of ) { ... } else { ... }
This probably does nothing. This works only on 5.10+ At least it's backwards compatible in not doing much.
ZYPPER(8)                            ZYPPER                            ZYPPER(8)
zypper - Command-line interface to ZYpp system management library (libzypp)
zypper [--global-opts] command [--command-opts] [command-arguments]
zypper subcommand [--command-opts] [command-arguments]
zypper help command
zypper is a command-line interface to ZYpp system management library (libzypp). It can be used to install, update, remove software, manage repositories, perform various queries, and more.
Most of the following concepts are common for all applications based on the libzypp package management library, but there are some zypper specifics.
System Packages The set of installed packages on a system is sometimes denoted as repository @System or System Packages. In contrast to available repositories providing packages which can be installed, @System provides packages which can only be deleted. Installed packages which are not also provided by at least one of the available repositories are often denoted as being unwanted, orphaned or dropped.
Repositories Libzypp works with repository metadata, this is information about packages and their relations extracted from RPM packages and other data like patch information, pattern definitions, etc. These data are stored together with the RPM files in folders called repositories. Repositories can be placed on various media like an HTTP or FTP server, DVD, or a folder on a local disc.
There is a special set of commands in zypper intended to manipulate repositories. Also many commands and options take a repository as an argument. See section COMMANDS, subsection Repository Management for more details.
GPG checks Disabling GPG checks is not recommended. Signing data enables the recipient to verify that no modifications occurred after the data were signed. Accepting data with no, wrong or unknown signature can lead to a corrupted system and in extreme cases even to a system compromise.
Zypp verifies the authenticity of repository metadata by checking their GPG signature. If the repository metadata are signed with a trusted key and successfully verified, packages from this repository are accepted for installation if they match the checksum provided in the metadata. Using unsigned repositories needs to be confirmed.
If the repository metadata are not signed, the GPG signature of each downloaded rpm package is checked before accepting it for installation. Packages from unsigned repositories need a valid GPG signature. Using unsigned packages needs to be confirmed.
The above is the default behavior defined by settings in /etc/zypp/zypp.conf.
The addrepo and modifyrepo commands provide further options to tune the behavior per repository. It is for example possible to relax the need to confirm installing unsigned packages for a specific repository. But if you do so, you should be very certain that an attacker can hardly modify the package data within the repository or on the way to your machine. See section COMMANDS for details about the command options.
Resource Identifiers (URI) To specify locations of repositories or other resources (RPM files, .repo files) you can use any type of URI supported by libzypp. In addition Zypper accepts a special URI identifying openSUSE Build Service (OBS) repositories in the addrepo command. These URIs have the form of obs://project/[platform].
See section COMMANDS, subsection Repository Management for a complete list and examples of supported URI formats.
Refresh Refreshing a repository means downloading metadata of packages from the medium (if needed), storing it in local cache (typically under /var/cache/zypp/raw/alias directory) and preparsing the metadata into .solv files (building the solv cache), typically under /var/cache/zypp/solv/alias.
The metadata get refreshed either automatically or on user request. An automatic refresh takes place right before reading metadata from the database if the auto-refresh is enabled for the repository and the metadata is reported to be out of date. If the auto-refresh is disabled, the repository will only be refreshed on user request. You can request a refresh by calling zypper refresh (see the documentation of the refresh command for details).
The repository metadata are checked for changes before actually doing the refresh. A change is detected by downloading one or two metadata index files (small files) and comparing the checksums of the cached ones and the remote ones. If the files differ, the repository is out of date and will be refreshed.
To delay the up-to-date check (and thus the automatic refresh) for a certain number of minutes, edit the value of the repo.refresh.delay attribute of ZYpp config file (/etc/zypp/zypp.conf). This means, zypper will not even try to download and check the index files, and you will be able to use zypper for operations like search or info without internet access or root privileges.