Short documentation for JWM / Linux

Last Update: 01.01.2021 for version 2.6.0

Contents

Table of contents
  1. Short documentation for JWM / Linux
    1. Contents
    2. Introduction
    3. Author
    4. Tools Summary
    5. History
    6. Installation
    7. Requirements for JWM / Linux
      1. Required GCC version
      2. Required Libraries
      3. Linux Distributions tested
        1. Old Linux Distributions tested (History)
      4. add_os_packages.sh - Script to add missing packages
    8. Using JWM / Linux
      1. Creating a JWM / Linux session
      2. Using JWM commands via jwm.sh
    9. JWM / Linux manServer
    10. Directories in the JWM / Linux archive
    11. Outdated versions of the tools
    12. Libraries included in JWM / Linux
    13. Tools included in JWM / Linux
    14. Scripts and files include in JWM / Linux
      1. Develop Templates
    15. Scripts and files for the JWM / Linux Environment
    16. Aliase in JWM / Linux
    17. Examples
      1. ack
      2. arping
      3. atop
      4. bashtop
      5. bmon
      6. bonnie++
      7. bpytop
      8. busybox
        1. busybox_httpd.sh
      9. bvi
      10. bwm-ng
      11. cdpinfo
      12. cdpr
      13. checksec
      14. collectl
        1. collectl - List detailed output
        2. collectl - List processes in tree view
        3. collectl - View process I/O
        4. collectl - View with timestamps
      15. CPUHog
      16. cpumon
      17. cpustat
      18. darkstat
        1. darkstat.sh
      19. dhtest
      20. dmidecode
      21. dropwatch
      22. dstat
      23. fiemap
      24. fio
      25. fnotifystat
      26. forkstat
      27. eventstat
      28. faultstat
      29. fspy
      30. health-check
      31. hdperf
      32. horst
      33. hostscope
      34. hping2
      35. htop
      36. httpry
      37. ibmonitor
      38. iftop
      39. inxi
      40. ifstat
      41. inotifywait / inotifywatch
      42. Intel Performance Counter Monitor
      43. inq
      44. ioping
      45. iotop
      46. iozone
      47. ipaudit
      48. ipband
      49. iperf
      50. iperf3
      51. ipscan
      52. iptraf
      53. iptraf-ng
      54. iptstate
      55. itop
      56. JDiskReport
      57. jnettop
      58. justniffer
      59. latencytop
      60. lxtx
      61. lynis
      62. manServer
      63. memconf
      64. memstat
      65. monitor_system.sh
      66. mpathstat.py
      67. mtr
      68. nano
      69. netcat
      70. netdata
        1. netdata.sh
      71. nethogs
      72. ngrep
      73. nicstat
      74. nload
      75. nmap
      76. netio
      77. netperf
      78. netsniff-ng
      79. nmon
        1. nmonchart
        2. nmonanalyzer
      80. numatop
      81. oprofile
      82. p0f
      83. pagemon
      84. pchar
      85. perftools
        1. exec_snoop_wrapper.sh
        2. open_snoop_wrapper.sh
        3. opensnoop1
      86. pigz
      87. pktstat
      88. powertop
      89. powerstat
      90. procdump
      91. pspy
      92. prtdiag
      93. scanlogd
      94. screen
      95. smartmontools
      96. smem
      97. smemstat
      98. sockperf
      99. sockstat
      100. stress
      101. stress-ng
      102. sysfsutils
      103. sysstat tools
      104. t50
      105. tcpdump
      106. tcptrack
      107. testssl.sh
      108. tiptop
      109. trace-cmd
      110. wavemon
      111. zmap
    18. Compiling JWM / Linux
      1. make_tools.sh usage
      2. How to add another tool
      3. How to add another OS library
      4. Check for missing libarires
    19. Create your own tar archive
    20. Hints for Compiling the tools
      1. Compiling justniffer with a boost staging area
      2. Strange error messages while linking a binary
      3. Error message : "undefined reference to clock_gettime"
      4. Error message : "error: ‘GENL_ID_GENERATE’ undeclared"
      5. Error message: //lib64/libtinfo.so.5: error adding symbols: DSO missing from command line
      6. Error message:  ... undefined reference to `__builtin_bswap16'
      7. Error message: ... error: called object ‘major’ is not a function or function pointer
      8. Error message: error: /lib64/libncurses.so.5: undefined symbol: _nc_putchar
      9. Error message: /usr/bin/ld: /tmp/ccEmVwXe.o:(.bss+0xc): multiple definition of `timeout'; /tmp/cchQVu2e.o:(.bss+0xc): first defined here
      10. Error message:  ... ld: cannot find -ltinfo
      11. Error message: "...  has no member named ‘emplace_back’ ..."
    21. Binaries for other OS
    22. Some howtos for Linux internal tools
      1. Using the ftrace interface with shell commands
      2. Using nmcli to view the WLAN status
    23. Sample output of the compile scripts
      1. Example output of compiling the tools in parallel sessions
      2. Example output of compiling the tools sequential
    24. History archive
    25. Download
    26. Links to other resources
    27. Links to libraries neccessary for JWM
    28. Other tools not included
    29. Tools not included anymore



Introduction

JWM / Linux is a collection of various performance and analyze tools for Linux. In addition,  JWM / Linux contains some useful general Linux tools.  These are


JWM / Linux is distributed via tar.gz file so that it can be installed by any user on a Linux machine.

All tools included are compiled and tested under Linux for x86 with 64 Bit (see the list of tested distributions below). For most of the tools the source code is included.

JWM / Linux contains a lot of tools that do the same thing (see here); e.g. there is more then one top replacement, there are multiple tools to monitor the network bandwidth, etc.  Just select the tool that is best for the task you're doing.

Most of the tools included are command line tools for ssh or telnet sessions, some use an internal webserver as user interface, and some are tools with an X Server GUI.

Unfortunately there is no such thing like a "linux binary" that runs on all Linux distributions. Therefore in most cases you must recompile all tools for your distribution.
You can use the script ./compile_scripts/check_for_missing_libs.sh  to check if the libraries required by the tools in JWM / Linux exist in your Linux installation.

Please note that some of the tools included need root privileges (most of them are in the ./sbin directory).

To check for a new version of JWM / Linux and updated documentation visit the JWM / Linux home page http://bnsmb.de/linux/JWM_Linux_documentation.html.


Be aware that this page now heavily uses the "new" html tag <details></details>. Therefor you should use a browser that supports this tag.

<details> Test
If you can see this text and can NOT hide it by clicking on <details> Test above your browser does not support the tag <details></details>.



Author

The collection was created by : Bernd Schemmer

email: Bernd.Schemmer@gmx.de

Homepage: http://bnsmb.de

Only small changes neccessary to compile the tools on all distributions tested were done for the source code of some tools. All changes done are documented in the entries in the table Tools included in JWM / Linux.




Tools Summary


Find below a list of all tools contained in JWM / Linux sorted by usage:


Usage
Tools
General tools
ack, busybox, bvi, pigz, screen, manServer nano
General Monitoring tools collectl, dstat, hostscope, netdata, oprofile, lxtx, bashtop, bpytop


Hardware information tools dmidecode, inxi, memconf, prtdiaginq, inxi
Software information tools inxi
Security tools lynis, testssl, checksec


Process List
atop, htop, nmon, cpustat
Process monitoring tools forkstat, health-check, procdump, pspy,


Kernel monitoring tools eventstat, itop, latencytop, numatop, perftools, powertop, powerstat, sysstat tools, tiptop, trace-cmd, faultstat 
CPU Monitoring tools CPUMonIntel Performance Counter Monitor


Memory Monitoring tools smem, smemstat, pagemon, memstat


Network Monitor tools
bwm-ng, darkstat, ibmonitor, iftop, ifstat, ipaud, ipband, iptraf, jnettop, mtr, nethogs, nicstat, nload, pchar, pktstat, bmon, iptstate, iptraf-ng, tcptrack, httpry scanlogd,  sockstat,
Network sniffer tools
cdpinfo, cdpr, dhest, ipscan, ngrep, nmap, p0f, justniffer, netsniff-ng, tcpdump, dropwatch, zmap,
Network test tools hping2, t50, sockperf, arping, netcat
WLAN monitoring horst, wavemon


Disk Performance Test bonnie++, fio, hdperf, iozone, ioping
Network performance test tools netio, netperf, iperf3, iperf
Performance help tools
CPUHog, stress, stress-ng, fio


File Info tools
fiemap
File access monitoring tools
fnotifystat, fspy, inotifywait
Storage access monitoring tools
iotop
Disk Monitoring tools smartmontools


Tools with WebGUI darkstat, netdata, manServer



History


Date
Version
Comment
01.01.2021 /bs
2.6.0
added support for the Raspberry OS to the compile scripts

the script to create a new archive, create_archive.sh, now also deletes the .a files in the directory ${JWM_DIR}/lib.

added pspy 1.2.0
added sockstat 0.4.1-1
added zmap 2.1.1

New Versions
new version: nmon 16m
new version: ipscan 3.7.3
new version: memconf 3.15
new version: inxi 3.2.01-00
new version: stress-ng 0.12.0
new version: atop 2.6
new version: eventstat 0.4.11
new version: forkstat 0.2.16
new version: htop 3.0.4
new version: sysstat 12.5.2
new version: netsniff-ng 0.6.7
new version: mtr 0.94
new version: iozone 491
new version: t50 5.8.8
new version: fnotifystat 0.02.07
new version: hostscope v7.0
new version: netdata v1.28
new version: bpytop 1.0.52
new version: lynis 3.0.2


removed: tracebox
removed: libprotobuf (the library is not necessary for the current version of hostscope anymore)

01.10.2020/bs
2.5.0
added bashtop 0.9.25
added bpytop 1.0.3
added faultstat 0.01.04

New Versions
new version: ack 3.4.0
new version: fnotifystat 0.02.06
new version: smemstat 0.02.08
new version: eventstat 0.04.10
new version: forkstat 0.02.09
new version: stress-ng 0.11.19
new version: sysstat 12.4.0
new version: health-check 0.03.09
new version: oprofile 1.4.0
new version: busybox 1.3.2
new version: powerstat 00.02.24
new version: screen 4.8.0
new version: netdata 1.24.0
new version: lynis 3.0.0
new version: htop 3.0.0
new version: iptraf-ng 1.2.1
new version: powertop 2.13
new version: procdump 1.1.1
new version: t50 5.8.7
new version: cpustat 0.02.11
new version: pagemon 0.01.20

additional libraries now included in the JWM / Linux archive are

libjson-c*
libbsd*

removed: tecmint_monitor.sh
removed: pt-diskstats

Updates for all compile scripts

- the compile parameter  -ltinfo will now only be used if the library libtinfo.so exists

- the compile scripts now always create temporary make files if changes to the make file are necessary


...
see the History archive for the previous updates

27.10.2013/bs 1.0.0 first public release
see also the README file in the tar archive
.


Installation


JWM / Linux is delivered in a compressed tar archive.

The name of the tar archive is

jwml_<archive_version>_<distname>_<distrelease>_<cpu_architecture>_<date>.tar.gz

e.g.

jwml_v100_Mint_14_Nadia_3.5.0-17-generic_x86_64_2013-10-26.tar.gz

This is JWM / Linux version v1.0.0 compiled under "MINT 14 Nadia" with kernel patch "3.5.0-17" for "x86_64" created on "2013/10/26".

or

jwml_v226_Fedora_release_23_(Twenty_Three)_4.7.7-100.fc23.x86_64_x86_64_2016-10-26.tar.gz

This is JWM / Linux version 2.2.6 compiled under "Fedora release 23_(Twenty Three)" with kernel patch "4.7.7-100" for "x86_64" created on "2016/10/26".


To use JWM / Linux  download the tar file for your distribution and unpack it using tar with the options -xzf in an empty directory.

If there is no archive with precompiled binaries for your distribution just compile the sources yourself.


Note:

Some of the tools included need a fixed target location while building the binaries. To make sure that every user can install the tools the target directory used for the precompiled binaries is /var/tmp/jwm (/var/tmp is writable by everyone on a Linux machine). Therefor you should install the precompiled tools into the directory /var/tmp/jwm to be sure that all included binaries work.

This directory is called ${JWM_DIR} or JWM_DIR in the rest of this document.

To change the target location you should compile the tools.



Requirements for JWM / Linux


The tools in JWM / Linux should run on every modern 64 Bit Linux for x86 . Not so common libraries used by the tools are included in the archive.

In addition, the source code for the tools is included in the archive (if available) so that you can create your own binaries.

The script to execute the compile tools is written in ksh -- therefor /bin/ksh is required to compile the tools.

Some make scripts expect the executable sed to be in /usr/bin but in new Linux distributions sed is in /bin. To get around this issue just create a symoblic link:

sudo ln -s /bin/sed /usr/bin/sed

The same is true for mkdir:

sudo ln -s /bin/mkdir /usr/bin/mkdir


To compile the tools the necessary compile tools (gcc, g++, c++, make, bison, flex, yacc) , the kernel headers, and some library header files must be installed.
If the configure script for a tool fails just check the output of the configure script for missing header files, install them, and restart compiling.

You may use the script ./compile_scripts/ add_os_packages.sh to install the missing OS packages for the supported Linux distributions.


The environment is written for bash or ksh.

See also the notes for the tools in the table with the descriptions and the Hints for Compiling the tools below.


Required GCC version

Some of the tools require a recent version of GCC to compile. Therefor you should update the GCC before compiling the tools.

example:

To update the GCC on Centos 6.x do

sudo yum install centos-release-scl
sudo yum update
sudo yum install devtoolset-7-gcc-c++

Results:

[xtrnaw7@centos69 ~]$ gcc --version | head -1
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
sudo dnf --enablerepo=powertools install libunistring-devel [xtrnaw7@centos69 ~]$

[xtrnaw7@centos69 ~]$ scl --list
devtoolset-7
[xtrnaw7@centos69 ~]$

[xtrnaw7@centos69 ~]$ scl enable devtoolset-7 bash
[xtrnaw7@centos69 ~]$

[xtrnaw7@centos69 ~]$ gcc --version | head -1
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
[xtrnaw7@centos69 ~]$


To update the GCC in CentOS 7.x do

install centos-release-scl
sudo yum install centos-release-scl
sudo yum install devtoolset-7-gcc-c++
scl enable devtoolset-7 bash

Results

[xtrnaw7@centos7 compile_scripts]$ scl enable devtoolset-7 bash

[xtrnaw7@centos7 compile_scripts]$ gcc --version
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[xtrnaw7@centos7 compile_scripts]$




Required Libraries


Some of the required libraries are probably not in the standard enabled repositories configured in some distribiutions, e.g:

The package libunistring-devel is in the base repository in CentOS 7.x but in CentOS 8.x it's in the additional repository powertools. Therefor to install the package either enable the repository powertools permanent or install the a package using the command:

sudo dnf --enablerepo=powertools install libunistring-devel





Linux Distributions tested

JWM / Linux was compiled on these Linux Distributions:


JWM Version
Date
Linux Distribution
Kernel version gcc version Supported by
add_os_packages?
Comment
2.6.0
25.12.2020
Fedora 33
5.9.15
gcc (GCC) 10.2.1 20201125 (Red Hat 10.2.1-9)

yes
all packages can be compiled; this is the main distribution for development

2.6.0 25.12.2020 CentOS 8
4.18.0
gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
yes
all packages can be compiled

2.6.0 25.12.2020 CentOS 7
3.10.0
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
yes
some tools do not compile anymore with the standard gcc in Centos 7.x
Therefor I installed and used the GCC v7 (see Required GCC version)

all packages can be compiled with the GCC v7.x

2.6.0 25.12.2020 CentOS 6.10 2.6.32 gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
yes
some tools do not compile anymore with the standard gcc in Centos 6.x
Therefor I installed and used the GCC v7 (see Required GCC version)

all packages can be compiled with the GCC v7.x except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)

justniffer must be compiled manually -- see here

some tools do not compile in OS with kernel 2.x anymore -- for details see here








2.6.0 26.12.2020 Mint 19
4.15.0
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
yes
all packages can be compiled
2.6.0 26.12.2020 Debian 10 4.19.0
gcc (Debian 8.3.0-6) 8.3.0

yes all packages can be compiled, except these packages:

sockperf

2.6.0 26.12.2020
Ubuntu 16.04.7 LTS
4.15.0
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609

yes
all packages can be compiled

2.6.0 26.12.2020 Ubuntu_20.04.1 LTS (Server)
5.4.0
gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

yes
all packages can be compiled







2.6.0 26.12.2020
OpenSuse Tumbleweed
5.10.1
gcc (SUSE Linux) 10.2.1 20201202 [revision e563687cf9d3d1278f45aaebd03e0f66531076c9]

yes
all packages can be compiled except these ones:

horst  (see here)
iptraf

2.6.0 26.12.2020 OpenSUSE Leap 15.2
5.3.18
gcc (SUSE Linux) 7.5.0

yes
all packages can be compiled except these ones:

horst  (see here)
iptraf 








2.6.0 26.12.2020 Manjaro (ArchLinux)
5.9.11
gcc (GCC) 10.2.0

yes
all packages can be compiled

2.6.0 26.12.2020 Slackware 4.4.240
gcc (GCC) 5.5.0
no
all packages can be compiled except these ones

atop v2.6 (use atop V2.4, see here)

Missing packages can be find here:

https://pkgs.org/








2.6.0 26.12.2020
Raspberry OS
5.4.79-v7l+
gcc (Raspbian 8.3.0-6+rpi1) 8.3.0
no
all packages can be compiled except these ones:

IntelPCM (this tool is only for Intel CPUs)
justniffer (architecture not supported by make scripts)
numatop (this tool is only for Intel CPUs)



Old Linux Distributions tested (History)

The old versions of JWM / Linux were compiled on these Linux Distributions:

JWM / Linux distributions tested

JWM Version
Date
Linux Distribution
Kernel version gcc version Supported by
add_os_packages?
Comment
2.5.0
11.09.2020
Fedora 32
5.7.17
gcc (GCC) 10.2.1 20200723 (Red Hat 10.2.1-1)
yes
all packages can be compiled; this is the main distribution for development

2.5.0 11.09.2020 CentOS 8
4.18.0

gcc (GCC) 8.3.1 20191121 (Red Hat 8.3.1-5)
yes
all packages can be compiled

2.5.0
11.09.2020 CentOS 7
3.10.0
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-39)
yes
all packages can be compiled except these packages:

t50


2.5.0 11.09.2020 CentOS 6.10 2.6.32 gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
yes
some tools do not compile anymore with the standard gcc in Centos 6.9
Therefor I installed and used the GCC v7 (see Required GCC version)

all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)

justniffer must be compiled manually -- see here








2.5.0 11.09.2020 Mint 19
4.15.0
gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0

yes
all packages can be compiled
2.5.0 11.09.2020 Debian 10 4.19.132
gcc (Debian 8.3.0-6) 8.3.0

yes all packages can be compiled, except these packages:

sockperf

2.5.0
21.09.2020
Ubuntu 16.04.7 LTS
4.15.0
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
yes
all packages can be compiled
2.5.0
21.09.2020
Ubuntu_20.04.1 LTS (Server)
5.4.0
gcc (Ubuntu 9.3.0-10ubuntu2) 9.3.0

yes
all packages can be compiled







2.5.0 11.09.2020 OpenSuse Tumbleweed
5.8.4
gcc (SUSE Linux) 10.2.1 20200825 [revision c0746a1beb1ba073c7981eb09f55b3d993b32e5c]
yes
all packages can be compiled except these ones:

horst
hostscope
iptraf

compiling horst and hostscope fails with error messages like this:

display.c:435:11: error: lvalue required as left operand of assignment
  435 |  ESCDELAY = 25; /* we don't use ESC sequences */

A workaround for this error is to comment the lines with the "invalid" assignments

2.5.0
13.09.202
OpenSUSE Leap 15.2
5.3.18
gcc (SUSE Linux) 7.5.0

yes
all packages can be compiled except these ones:

horst
hostscope
iptraf

compiling horst and hostscope fails with error messages like this:

display.c:435:11: error: lvalue required as left operand of assignment
  435 |  ESCDELAY = 25; /* we don't use ESC sequences */

A workaround for this error is to comment the lines with the "invalid" assignments







2.5.0 11.09.2020 Antergos (ArchLinux)
5.8.7
gcc (GCC) 10.2.0

yes
all packages can be compiled

To compile some of the tools a modification of a source file is neccessary :

#include <sys/sysmacros.h>

must be added to some of the source files (for details why see below)

Details:
atop add the line

#include <sys/sysmacros.h>

to the file

showsys.c

fio add the line

#include <sys/sysmacros.h>

to the file

os/os-linux.h

fnotifystat add the line

#include <sys/sysmacros.h>

to the file

fnotifystat.c


Note [04.01.2019]

These modifications are also neccesary for other Linux distributions with a recent gcc version
so they are done by the compile scripts in JWM / Linux now.

Note [16.06.2019]

fio will not compile anymore due to a change in the GLUSTER api (Note: you can install the fio package from the ArcLinux repositories if required - see also here: https://github.com/axboe/fio/issues/781)

Note [04.09.2020]

fio compile works again


2.5.0
11.09.2020 Slackware
4.4.14
gcc (GCC) 5.3.0

no
all packages can be compiled

Missing packages can be find here:

https://pkgs.org/

2.3.0
16.06.2019
Fedora 30
5.1.8
gcc (GCC) 9.1.1 20190503 (Red Hat 9.1.1-1)
yes
all packages can be compiled; this is the main distribution for development since 01.01.2019

2.3.0 16.06.2019
RedHat 7 3.10.0
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36)

yes
all packages can be compiled except these ones:

t50

2.3.0 16.06.2019 Centos 6.10 2.6.32
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)
yes
some tools do not compile anymore with the standard gcc in Centos 6.9
Therefor I installed and used the GCC v7:

gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

(see Required GCC version)

all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)

justniffer must be compiled manually -- see here








2.3.0 16.06.2019 Mint 19
4.15.0
gcc (Ubuntu 7.4.0-1ubuntu1~18.04) 7.4.0
yes
all packages can be compiled
2.3.0 16.06.2019 Debian 3.16.0
gcc (Debian 4.9.2-10+deb8u2) 4.9.2
yes all packages can be compiled







2.3.0 20.06.2019
OpenSuse LEAP
42.3
4.4.180
gcc (SUSE Linux) 4.8.5
yes
all packages can be compiled except these ones:

t50

2.3.0
20.06.2019
OpenSUSE LEAP 15.2
4.12.14
gcc (SUSE Linux) 7.4.1 20190424 [gcc-7-branch revision 270538]

gcc (SUSE Linux) 8.2.1 20180831 [gcc-8-branch revision 264010]


yes
all packages can be compiled except these ones:

horst
hostscope
iptraf
justniffer
tracebox

2.3.0
16.06.2019
OpenSuse Tumbleweed
 5.1.7
gcc (SUSE Linux) 9.1.1 20190520 [gcc-9-branch revision 271396]
yes
all packages can be compiled except these ones:

horst
hostscope
iptraf
justniffer
tracebox









2.3.0 16.06.2019 Antergos (ArchLinux)
5.1.9
gcc (GCC) 8.3.0
yes
To compile some of the tools a modification of a source file is neccessary :

#include <sys/sysmacros.h>

must be added to some of the source files (for details why see below)

Details:
atop add the line

#include <sys/sysmacros.h>

to the file

showsys.c

fio add the line

#include <sys/sysmacros.h>

to the file

os/os-linux.h

fnotifystat add the line

#include <sys/sysmacros.h>

to the file

fnotifystat.c



Note [04.01.2019]

These modifications are also neccesary for other Linux distributions with a recent gcc version
so they are done by the compile scripts in JWM / Linux now.

Note [16.06.2019]

fio will not compile anymore due to a change in the GLUSTER api (Note: you can install the fio package from the ArcLinux repositories if required - see also here: https://github.com/axboe/fio/issues/781)







2.2.11
22.08.2018
Fedora 27 4.17.14
gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-6)
yes
all packages can be compiled; this is the main distribution for development as of 19.08.2018
2.2.11 22.08.2018
RedHat 7 3.10.0
gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28)
yes
all packages can be compiled except these ones:

t50

2.2.11 22.08.2018
Centos 6.9 2.6.32
gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

installed per default but not used is:

gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)

yes
some tools do not compile anymore with standard gcc in Centos 6.9
Therefor I installed and used the GCC v7:

gcc (GCC) 7.3.1 20180303 (Red Hat 7.3.1-5)

(see Required GCC version)

all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)

justniffer must be compiled manually -- see here

2.2.11
22.08.2018
Mint 19
4.15.0
gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
yes
all packages can be compiled
2.2.11
25.08.2018
OpenSuse LEAP
4.4.104
gcc (SUSE Linux) 4.8.5
yes
all packages can be compiled except these ones:

t50

2.2.11
25.08.2018
Debian
3.16.0
gcc (Debian 4.9.2-10+deb8u1) 4.9.2
yes
all packages can be compiled
2.2.11
25.08.2018
Antergos (ArchLinux)
4.18.4.0
gcc (GCC) 8.2.0

yes
all packages can be compiled except these ones

unfs3

To compile some of the tools a modification of a source file is neccessary :

#include <sys/sysmacros.h>

must be added to some of the source files (for details why see below):

Details:
atop add the line

#include <sys/sysmacros.h>

to the file

showsys.c

fio add the line

#include <sys/sysmacros.h>

to the file

os/os-linux.h

fnotifystat add the line

#include <sys/sysmacros.h>

to the file

fnotifystat.c




2.2.11
29.08.2018
Fedora 23
4.8.13
gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6)
yes
all packages can be compiled
2.2.10 26.12.201 Fedora 27 4.14.7 gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2) yes all packages can be compiled; this is the main distribution for development as of 26.12.2017
2.2.10 26.12.201 RedHat 7 3.10.0 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) yes all packages can be compiled except these ones:

t50
2.2.10 26.12.201 entos 6.9 2.6.32 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) yes all packages can be compiled except these ones:

t50

health-check  (kernel not supported)
fnotifystat  (kernel not supported)














2.2.9 08.10.2017 Antergos (Arch Linux based Distribution) 4.13.4 gcc (GCC) 7.2.0 yes all packages can be compiled
2.2.9 08.10.2017 Fedora 25 4.12.14 gcc version 6.4.1 20170727 (Red Hat 6.4.1-1) (GCC) yes all packages can be compiled; this is the main distribution for development as of 14.08.2017
2.2.9 08.10.2017 Fedora 23 4.8.13 gcc (GCC) 5.3.1 20160406 (Red Hat 5.3.1-6) yes all packages can be compiled
2.2.9 08.10.2017 RHEL 7.4 (Maipo) 3.10.0 gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-16) yes all packages can be compiled
2.2.9 08.10.2017 Open Suse LEAP 42 4.4.87
gcc (SUSE Linux) 4.8.5
yes all packages can be compiled
2.2.9 08.10.2017 Ubuntu 16.04.3 LTS 4.10.0 gcc (Ubuntu 5.4.0-06ubuntu1-16.04.4) 5.4.0  20160609 yes all packages can be compiled
2.2.9
08.10.2017
Linux Mint 18
4.4.0
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.4) 5.4.0 20160609
yes
all packages can be compiled
2.2.9
08.10.2017
Debian 8.6
3.16.0
gcc (Debian 4.9.2-10) 4.9.2
yes
all packages can be compiled except these ones:

t50

2.2.9 08.10.2017 Centos (RHEL 6.9) 2.6.32 gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-18) yes all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)

t50 can not be compiled with the default gcc from this Linux distribution

2.2.8 07.04.2017 Fedora 25 4.9.13
yes all packages can be compiled; this is the main distribution for development as of 07.04.2017
2.2.8 08.04.2017 Apricity (Arch Linux based Distribution) 4.10.8
yes all packages can be compiled
2.2.8 08.04.2017 Mint 17 3.19.0
yes all packages can be compiled
2.2.8 08.04.2017 OpenSUSE 12 3.7.10
yes all packages can be compiled except these ones:

horst
hostscope (can be compiled with a current gcc version)
  Note:  Use the binaries from the tar files ${JWM_DIR}/hostscope_jwm_rhel6.tar for this distribution

2.2.8
07.04.2017
Centos 6.9
2.6.32

yes
all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)
hostscope (can be compiled with a current gcc version)
  Note:  Use the binaries from the tar files ${JWM_DIR}/hostscope_jwm_rhel6.tar for this distribution
t50 can not be compiled with the default gcc from this Linux distribution




JWM Version
Date
Linux Distribution
Kernelversion Supported by
add_os_packages?
Comment
2.2.7 25.12.2016 Fedora 23 4.8.13 yes all packages can be compiled; this is the main distribution for development as of 27.12.2016
2.2.7 25.12.2016 Fedora 24 4.8.14 yes all packages can be compiled
2.2.7 27.12.2016 Fedora 25 4.8.15 yes all packages can be compiled
2,2.7 25.12.2016 Mint 18 4.4.0 yes all packages can be compiled
2.2.7 26.12.2016 Mint 17 3.19.0 yes all packages can be compiled
2.2.7 27.12.2016 Debian 8 3.16.0 yes all packages can be compiled
2.2.7 25.12.2016 OpenSUSE 42.2 4.4.36 yes all packages can be compiled
2.2.7 26.12.2016 OpenSUSE 12.3 3.7.10 yes all packages can be compiled
2.2.7 26.12.2016 OpenSUSE 13.2 3.16.6 yes all packages can be compiled
2.2.7 25.12.2016 Oracle Linux Server release 6.5 3.8.13 yes
all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)
hostscope (can be compiled with a current gcc version)
  Note:  Use the binaries from the tar files ${JWM_DIR}/hostscope_jwm_rhel6.tar for this distribution

to compile bmon you must download, compile, and install libnl3 and libconfuse (both libraries are not in the repositories for this distribution)

to compile justniffer you must download boost (the boost in the repositories for this distribution is to old)

see also Libraries neccessary for JWM
2.2.7 26.12.2016 Red Hat Enterprise Linux Workstation release 6.8 (Santiago) 2.6.32 yes
all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)
hostscope  (can be compiled with a current gcc version)
  Note:  Use the binaries from the tar files ${JWM_DIR}/hostscope_jwm_rhel6.tar for this distribution

to compile justniffer you must download boost (the boost in the repositories for this distribution is to old)

t50 only compiles with a current version of gcc; the gcc 4.4.7 does not like pragma statements inside of functions

see also Libraries neccessary for JWM
2.2.7 30.12.2016 Fedora 13 2.6.33 yes all packages can be compiled except these ones:

health-check  (kernel not supported)
fnotifystat  (kernel not supported)
hostscope (can be compiled with a current gcc version)
  Note:  Use the binaries from the tar files ${JWM_DIR}/hostscope_jwm_rhel6.tar for this distribution

to compile bmon you must download, compile, and install libnl3  (the libraries are not in the repositories for this distribution)

to compile justniffer you must download boost (the boost in the repositories for this distribution is to old)

to compile oprofile and stress-ng a new version of the binutils is required

t50 only compiles with a current version of gcc; the gcc 4.4.7 does not like pragma statements inside of functions

see also Libraries neccessary for JWM




add_os_packages.sh - Script to add missing packages

The script ./compile_scripts/add_os_packages.sh can be used to install the missing packages to compile all tools in JWM / Linux.

Usage:

[26.12.2016 16:19 ] ### The logfile used is /var/tmp/add_os_packages.sh.log
 add_os_packages.sh

 Function: add missing OS packages for compiling JWM / Linux
 
 Usage:    add_os_packages.sh [-v|--verbose] [-q|--quiet] [-f|--force] [start|stop|restart|status]

 Parameter:
   -v - verbose mode
   -q - quiet mode
   -f - force execution
   -d - dry-run mode, only print the commands to execute

[26.12.2016 16:19 ] ### The logfile used was /var/tmp/add_os_packages.sh.log
[26.12.2016 16:19 ] ### add_os_packages.sh ended at Mon Dec 26 16:19:17 CET 2016
[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$

add_os_packages.sh supports Linux distributions based on

add_os_packages.sh installs all packages that are missing after an initial installation of the distribution without any modifications.

The script asks the user for confirmation before starting the installation.

Note:

The scripts assumes a "standard installation" of the Linux distribution  - so there may be other libraries or tools missing to compile all tools . Just check the error messages of the compile script and install the missing packages manually.



Using JWM / Linux




Creating a JWM / Linux session


To use JWM / Linux change to the directory with JWM / Linux (the JWM_DIR) and issue

. ./init_session

e.g.

screenshot:


[xtrnaw7@t540p /var/tmp/jwm]$ cd /var/tmp/jwm
[xtrnaw7@t540p /var/tmp/jwm]$ . init_session
JWM_DIR is "/var/tmp/jwm"
[bash] Starting environment for "JMW / Linux v260 created on Fedora_release_33_(Thirty_Three) 5.9.15-200.fc33.x86_64 x86_64 at 2020-12-25" ...
[bash] Initializing JWM environment ...
[bash] JWM environment initialized. The tools available are:
/var/tmp/jwm/bin:
atop          dlist_test       hdperf        iostat       netio       op-check-perfevents  powerstat    sockperf     trace-view
atopsar       dropwatch        horst         iozone       netperf     operf                procdump     sockstat     uninstall_ndiff
bmon          dropwatch.1.5.0  horst.sh      iperf3       netserver   opgprof              protoc       stress       uninstall_zenmap
bmore         dstat            hostscope     jnettop      nicstat     ophelp               prtdiag      stress-ng    unpigz
bon_csv2html  faultstat        hping2        justniffer   nload       opimport             prtdiag.cfg  sysstat      wavemon
bon_csv2txt   fiemap           htop          kernelshark  nmap        opjitconv            ptiptop      systool      zblocklist
bvi           fileop           htop2         makelocal    nmon        opreport             rawtime      tapestat     zenmap
bwm-ng        fio              httpry        memstat      nmonchart   pcap-config          rnano        tcptrack     ziterate
cifsiostat    fspy             ibmonitor     mpstat       nping       pidstat              rvnamed      tiptop       zmap
cpulimit      get_device       ifstat        nano         ocount      pigz                 rvnamed-ng   total        ztee
cpumon        get_driver       inotifywait   ncat         opannotate  pit_server           screen       trace-cmd
cpustat       get_module       inotifywatch  ndiff        oparchive   plugins              smemstat     trace-graph

/var/tmp/jwm/bin1:
CPUhog.jar  inq             inq.LinuxI386  iperf   ipscan-linux64-3.7.3.jar  latencytop-tui  pchar_for_linux26
CPUhog.sh   inq.LinuxAMD64  iodump         ipscan  latencytop-gui            lxtx            pspy64

/var/tmp/jwm/sbin:
arping        dhtest        hostscoped  iptraf       nethogs      pcm-core.x    pcm-tsx.x  t50                   zblocklist
astraceroute  dmidecode     ifpps       iptraf.fc31  netsniff-ng  pcm-memory.x  pcm.x      tcpdump               zcav
biosdecode    eventstat     iftop       iptraf-ng    ngrep        pcm-msr.x     pktstat    tcpdump.4.9.2         ziterate
bonnie++      flowtop       ioping      iptstate     numatop      pcm-numa.x    powertop   trafgen               zmap
bpfc          fnotifystat   ipaudit     latencytop   p0f          pcm-pcie.x    scanlogd   unfsd                 ztee
cdpr          forkstat      ipband      mausezahn    pagemon      pcm-power.x   smartctl   update-smart-drivedb
darkstat      health-check  ipstrings   mtr          pchar        pcm-sensor.x  smartd     vpddecode

/var/tmp/jwm/scripts:
ack                              compile_justniffer_with_boost.sh     iotop                 mle.sh
ack-2.24-single-file.pl          darkstat.sh                          iotop-0.4.4           monitor_system.sh
ack-v3.1.2                       exec_snoop_wrapper.sh                iotop-0.6             mpathstat.py
ack-v3.4.0                       execute_on_all_hosts.sh              iotop.sh              netdata.sh
addtimestamp                     execute_osbuild_check_tasks.include  itop                  opensnoop1
bashtop                          execute_osbuild_check_tasks.sh       jdiskreport           open_snoop_wrapper.sh
bpytop                           execute_scripts.sh                   jwm.sh                rtp_task_desc.inp
busybox_httpd.sh                 execute_tasks.sh                     manServer_107_ma1.pl  show_kernel_memory
cdpinfo                          fio_tests.sh                         manServer_107.pl      smem
check_network_adapter_config.sh  hostscope.sh                         manServer.pl          start_stop_manserver.sh
collectl                         init_infoscale.include               manServer.pl.org      testssl.sh
collectl_top                     init_infoscale.sh                    memconf               view_vmware_server_configuration.sh
collectl_top_io                  inxi                                 memconf-v3.15.pl

Additional general Linux tools are in the directory /var/tmp/jwm/busybox

Additional performance monitoring tools are in /var/tmp/jwm/perf-tools

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


Notes:

init_session sets the environment variables PATH, LD_LIBRARY_PATH, MANPATH, PYTHONPATH, and PS1 and defines some useful aliase.

If you want to use the already installed Linux libraries instead of the libraries contained in JWM / Linux set and export the variable LD_LIBRARY_PATH before calling init_session.



Using JWM commands via jwm.sh


To only execute a single command from the JWM / Linux environment without starting a JWM / Linux shell you can use the script ${JWM_DIR}/scripts/jwm.sh.

jwm.sh creates a temporary JWM / Linux environment and then executes the command. The usage for jwm.sh is

[xtrnaw7@t540p /var/tmp/jwm]$ /var/tmp/jwm/scripts/jwm.sh -h
[18.11.2016 17:08 ] ### jwm.sh started at Fri Nov 18 17:08:53 CET 2016
[18.11.2016 17:08 ] ### The logfile used is /var/tmp/jwm.sh.log
 jwm.sh

 Function: exeucte a command in a temporary JWM / Linux environment
 
 Usage:    jwm.sh [-v|--verbose] [-q|--quiet] [-f|--force] command [parameter]

 Parameter:
   -v - verbose mode
   -q - quiet mode
   -f - force execution

[18.11.2016 17:08 ] ### The logfile used was /var/tmp/jwm.sh.log
[18.11.2016 17:08 ] ### jwm.sh ended at Fri Nov 18 17:08:53 CET 2016
[xtrnaw7@t540p /var/tmp/jwm]$


You should create a symbolic link for jwm.sh in a directory that is in your standard path, e.g

sudo ln -s /var/tmp/jwm/scripts/jwm.sh /usr/bin/jwm

Then you can use jwm.sh like this

[xtrnaw7@t540p /var/tmp/jwm]$  jwm  nicstat 1 1
[18.11.2016 17:29 ] ### jwm started at Fri Nov 18 17:29:22 CET 2016
[18.11.2016 17:29 ] ### The logfile used is /var/tmp/jwm.log
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
17:29:22  enp0s25   12.01    3.06    9.34    6.22  1316.5   504.8  0.01   0.00
17:29:22       lo    2.74    2.74   41.09   41.09   68.30   68.30  0.00   0.00
17:29:22   wlp4s0    0.00    0.00    0.00    0.00   112.5   145.5  0.00   0.00
[18.11.2016 17:29 ] ### The logfile used was /var/tmp/jwm.log
[18.11.2016 17:29 ] ### jwm ended at Fri Nov 18 17:29:22 CET 2016
[xtrnaw7@t540p /var/tmp/jwm]$


Note: Use jwm.sh with the parameter -v to get some more information for trouble shooting:
[xtrnaw7@t540p /var/tmp/jwm]$ jwm -v nicstat 1 1
[29.08.2018 13:32 ] ### jwm started at Wed Aug 29 13:32:54 CEST 2018
[29.08.2018 13:32 ] ### The logfile used is /var/tmp/jwm.log
[29.08.2018 13:32 ] INFO: SCRIPTNAME is "jwm"
[29.08.2018 13:32 ] INFO: SCRIPTDIR is "/tools/scripts"
[29.08.2018 13:32 ] INFO: REAL_SCRIPTNAME is "/data/tools/scripts/jwm"
[29.08.2018 13:32 ] INFO: REAL_SCRIPTDIR is "/data/tools/scripts"
[29.08.2018 13:32 ] INFO: WORKING_DIR is "/var/tmp/jwm"
[29.08.2018 13:32 ] INFO: RUNNING_IN_TERMINAL_SESSION is "0" (0 = yes, 1 = no)
[29.08.2018 13:32 ] INFO: CUR_USER_ID is "1000"
[29.08.2018 13:32 ] INFO: CUR_USER_NAME is "xtrnaw7"
[29.08.2018 13:32 ] INFO: CUR_GROUP_ID is "1000"
[29.08.2018 13:32 ] INFO: CUR_GROUP_NAME is "xtrnaw7"
[29.08.2018 13:32 ] INFO: ACTION is ""
[29.08.2018 13:32 ] INFO: Using the JWM directory "/var/tmp/jwm"
[29.08.2018 13:32 ] INFO: PATH is now /var/tmp/jwm/scripts:/var/tmp/jwm/bin:/var/tmp/jwm/sbin:/tools/scripts:/tools/bin:/tools/sbin:/usr/lib64/qt-3.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/home/xtrnaw7/.local/bin:/home/xtrnaw7/bin
[29.08.2018 13:32 ] INFO: LD_LIBRARY_PATH is now /var/tmp/jwm/lib:
[29.08.2018 13:32 ] INFO: MANPATH is now /var/tmp/jwm/man:/tools/man:
[29.08.2018 13:32 ] INFO: PYTHONPATH is now :/var/tmp/jwm/lib/python2.7/site-packages/
[29.08.2018 13:32 ] INFO: Executing now "nicstat 1 1" ...
    Time      Int   rKB/s   wKB/s   rPk/s   wPk/s    rAvs    wAvs %Util    Sat
13:32:54  enp0s25   20.84    8.38   18.73   12.40  1139.6   692.1  0.02   0.00
13:32:54       lo    0.00    0.00    0.01    0.01   77.56   77.56  0.00   0.00
[29.08.2018 13:32 ] ### The logfile used was /var/tmp/jwm.log
[29.08.2018 13:32 ] ### jwm ended at Wed Aug 29 13:32:54 CEST 2018
[xtrnaw7@t540p /var/tmp/jwm]$

 




JWM / Linux manServer


JWM / Linux contains a simple manServer that can be used to view the man pages in a web browser that listens on localhost:7777.

To use it start a JWM / Linux session

cd /var/tmp/jwm

. init_session


and start the JWM / Linux manServer

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ start_stop_manserver.sh start
[04.11.2016 21:01 ] ### start_stop_manserver.sh started at Fri Nov  4 21:01:38 CET 2016
[04.11.2016 21:01 ] ### The logfile used is /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:01 ] Starting the JWM manserver ...
export MANPATH="/var/tmp/jwm/share/man:/tools/man::/var/tmp/jwm/perf-tools/man"   
nohup /var/tmp/jwm/scripts/manServer.pl -s 7777 >/tmp/manserver_jwm.log 2>&1 &
echo $! >"/tmp/manserver_jwm.pid"
[04.11.2016 21:01 ] Use "http://localhost:7777" or "http://t540p:7777" to connect to the JWM manserver
[04.11.2016 21:01 ] ### The logfile used was /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:01 ] ### start_stop_manserver.sh ended at Fri Nov  4 21:01:38 CET 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$



Now you can use your Web Browser to view the man pages, e.g.




To add other man pages to the JWM / Linux manServer and use another port use :

MANPATH=$MANPATH:/usr/share/man ./start_stop_manserver.sh --port 7788 start

example
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ MANPATH=$MANPATH:/usr/share/man start_stop_manserver.sh --port 7788 start
[12.01.2019 17:23 ] ### start_stop_manserver.sh started at Sat Jan 12 17:23:05 CET 2019
[12.01.2019 17:23 ] ### The logfile used is /var/tmp/start_stop_manserver.sh.log
[12.01.2019 17:23 ] Starting the JWM manserver ...
export MANPATH="/var/tmp/jwm/share/man:/tools/man::/var/tmp/jwm/perf-tools/man:/usr/share/man"   
nohup /var/tmp/jwm/scripts/manServer.pl -s 7788 >/tmp/jwm_manserver_7788.log 2>&1 &
echo $! >"/tmp/jwm_manserver_7788.pid"
[12.01.2019 17:23 ] Use "http://localhost:7788" or "http://t540p:7788" to connect to the JWM manserver
[12.01.2019 17:23 ] ### The logfile used was /var/tmp/start_stop_manserver.sh.log
[12.01.2019 17:23 ] ### start_stop_manserver.sh ended at Sat Jan 12 17:23:05 CET 2019
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$






start_stop_manserver.sh details
Use the parameter status to check the status of the JWM manserver:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ start_stop_manserver.sh status
[04.11.2016 21:02 ] ### start_stop_manserver.sh started at Fri Nov  4 21:02:11 CET 2016
[04.11.2016 21:02 ] ### The logfile used is /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:02 ] The JWM manserver already running; the PID is 8378
[04.11.2016 21:02 ] The JWM manserver is listening to the ports:
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:7777            0.0.0.0:*               LISTEN      8378/perl          
[04.11.2016 21:02 ] ### The logfile used was /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:02 ] ### start_stop_manserver.sh ended at Fri Nov  4 21:02:11 CET 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$



[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ start_stop_manserver.sh stop
[04.11.2016 21:04 ] ### start_stop_manserver.sh started at Fri Nov  4 21:04:37 CET 2016
[04.11.2016 21:04 ] ### The logfile used is /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:04 ] The JWM manserver is not running
[04.11.2016 21:04 ] ### The logfile used was /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:04 ] ### start_stop_manserver.sh ended at Fri Nov  4 21:04:37 CET 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$


The usage for the JWM mansever start/stop script is:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ start_stop_manserver.sh --help
[04.11.2016 21:13 ] ### start_stop_manserver.sh started at Fri Nov  4 21:13:13 CET 2016
[04.11.2016 21:13 ] ### The logfile used is /var/tmp/start_stop_manserver.sh.log
 start_stop_manserver.sh

 Function: start or stop the manserver in JWM / Linux
 
 Usage:    start_stop_manserver.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-p|--port port] [start|stop|restart|status]

 Parameter:
   -v - verbose mode
   -q - quiet mode
   -f - force execution
   -p - port for the JWM manserver, the default port is 7777

[04.11.2016 21:13 ] ### The logfile used was /var/tmp/start_stop_manserver.sh.log
[04.11.2016 21:13 ] ### start_stop_manserver.sh ended at Fri Nov  4 21:13:13 CET 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$





Directories in the JWM / Linux archive


Directory name
Directory contents
Comment
bashtop*
bashtop

bin
binaries w/ source

bin1
binaries w/o source

bpytop*
bpytop

busybox
busybox binary and links

checksec*
checksec
collectl*
collectl

compile_scripts
scripts for compiling the tools

data/*
data files for the tools

develop
script templates and other development files

etc
config files for the tools

htdocs
webserver based applications and html pages

include
include files

info
.info files

iotop*
iotop (various versions)

jdiskreport* JDiskReport
lib
libraries for the tools

lib64
symbolic link to lib

libexec add files for the tools
lynis*
lynis installation

man
symbolic link to ./share/man

netdata*
netdata installation

new
staging directory for new tools

other_os
this directory contains some binaries for other OS

perf-tools
directory with the perftools

sbin
binaries that need root privileges

scripts
well, scripts

share
docs, manpages, etc for the tools

src
source for the tools

src/old
source code for the previous version of some tools (see here)

testssl* directories with the tool testssl.sh
workdir
data files and log files for compiling the tools



Outdated versions of the tools


The current version of some of the tools can not be compiled on older kernels anymore. For these tools the archive also contains the source code for the old version of the tool in the directory ${JWM_DIR}/src/old. The compile script then compiles the old version of a tool if neccessary.

e.g. the version 2.6 of atop does not compile for kernel 2.x . Therefor the compile script for atop will compile the version 2.4 of atop ia kernel 2.x is detected.

As of [25.12.2020] the tar archive contains this "old" versions of the tools


[xtrnaw7@t540p ~]$ ls -l /var/tmp/jwm/src/old
total 8
drwxrwxr-x. 1 xtrnaw7 xtrnaw7 1102 Jan 12  2019 atop-2.4.0
lrwxrwxrwx. 1 xtrnaw7 xtrnaw7   18 Sep  5 20:05 iptraf-ng -> ./iptraf-ng-1.1.4/
drwxrwxr-x. 1 xtrnaw7 xtrnaw7  562 Jul 23  2013 iptraf-ng-1.1.4
drwxr-xr-x. 1 xtrnaw7 xtrnaw7 8048 Sep  5 13:27 stress-ng-0.10.08
lrwxrwxrwx. 1 xtrnaw7 xtrnaw7   18 Sep  5 12:21 stress-ng-without_O_PATH -> stress-ng-0.10.08/
[xtrnaw7@t540p ~]$


Libraries included in JWM / Linux

Because not all libraries necessary for the tools are installed on all machines (especially on machines in production environments) some libraries are included in JWM / Linux. The libraries are in the directory ${JWM_DIR}/lib.

As of this writing these libraries are:

Library
Version
Description
Source
libpcap
1.0.0
necessary library for some of the network related tools

Note:

Version 1.0.0 is used here because newer versions do not compile out-of-the box on some Linux Releases.
http://www.tcpdump.org/










The make script for JWM / Linux also copies some OS libraries necessary for some of the tools to the JWM / Linux lib directory. The libraries to copy are listed in the file

${JWM_DIR}/compile_scripts/OS_LIBS

The libraries to copy are [as of 22.09.2020]; (you may change the file if the libraries are already on the target machines for JWM / Linux ]:

Library
Comment
libcrypto.so.10*

libdb-4.7*

libdb-5.3*

libtinfo*
libnuma*
liblua*
liblua5.2*

liblua-5.1*

liblua-5.2*

liblua-5.3*

libnet*

libnl*
libconfuse*

libnl-3*
libnl-route-3*
libnl-genl-3*
libsctp1*
libnetfilter_conntrack*
libboost_regex*
libboost_regex-mt*
libboost_iostreams*
libboost_program_options*
libboost_program_options-mt*
liburcu*
libcli*
libnet*
libsctp1*

libjson-c*

libbsd*


99


see How to add another OS Library for details for the copy process

Note:

To suppress the copying of the libraries create the semaphor file ${JWM_DIR}/lib/_DO_NOT_COPY_LIBS_ prior to calling the make script (or remove the file ${JWM_DIR}/compile_scripts/OS_LIBS).

 


Tools included in JWM / Linux


Tool
Version
Last
Update
Interface
Description
Source
ack
3.1.2
2019
cli
ack is a grep replacement written in Perl; requirement is Perl 5.8.8 or higher

http://beyondgrep.com/
arping
2.19
2017
cli
arping is a util to find out if a specific IP address on the LAN is 'taken' and what MAC address owns it.
http://github.com/ThomasHabets/arping

atop
2.6.0
2020
cli
top like system monitor

Hints for compiling atop
If you get the error message

cc -O2 -I. -Wall          -c -o photosyst.o photosyst.c
photosyst.c: In function ‘lvmmapname’:
photosyst.c:1466:19: error: called object ‘major’ is not a function or function pointer
     dmp->major  = major(statbuf.st_rdev);
                   ^~~~~
photosyst.c:1421:25: note: declared here
 lvmmapname(unsigned int major, unsigned int minor,
            ~~~~~~~~~~~~~^~~~~

add the line

#include <sys/sysmacros.h>

to the file

photosyst.c


Note [25.12.2020]

The compile script for atop will compile the old version 2.4 of atop if a kernel version 2.x is detected becuse the atop version 2.6 can not be compiled for kernel 2.x (see also here.)


http://www.atoptool.nl/
bashtop
0.9.25
2020
cli
a "top" written in bash  (see also bpytop)

Dependencies for bashtop are

bash (v4.4 or later)

GNU coreutils, sed, grep, ps, awk

(see also the homepage of bashtop)


https://github.com/aristocratos/bashtop
bmon 4.0 2017 cli "bmon is a monitoring and debuggng tool to capture networking related statistics and prepare them visually in a human friendly way. It features various output methods including an interactive curses user interface and a programmable text output for scripting."

https://github.com/tgraf/bmon/
bonnie++
1.04 UNRELEASED
2017
cli
bonnie++ is a disk performance test tool
http://www.coker.com.au/bonnie++/
bpytop
1.0.52
2020
cli
a "top" written in Python (see also bashtop)

Dependencies for bpytop are
https://github.com/aristocratos/bpytop
busybox
1.32.0
2020
cli BusyBox: The Swiss Army Knife of Embedded Linux

Note:
The config for busybox in the tar archive is the default config without the i2c tools. The compile script does not create a new config.

Use

make menuconfig

in the busybox source directory to select which busybox components should be compiled.


Hints for some of the errors I got while compiling busybox on older Linux versions
Error message ‘MTD_FILE_MODE_RAW’ undeclared


-> disable "Miscellaenous Utilities/nandwrite" and "Miscellaenous Utilities/nanddump"

Error message  ‘BLKSECDISCARD’ undeclared


-> disable "Linux System Utilities/blkdiscard"

Error message  sync.c:(.text.sync_main+0x7a): undefined reference to `syncfs'


-> disable "Core Utils/sync"

Error message  nsenter.c:(.text.nsenter_main+0x1b6): undefined reference to `setns'


-> disable "Linux System Utilties/nsenter"

The config without these tools is saved in the file rhel6_config in the busybox source directroy. Use "make menuconfig" in the busybox source directory to use this config.


http://www.busybox.net
bvi 1.4rc0 2014 cli
bvi is a vi like editor for binary files http://bvi.sourceforge.net/
bwm-ng
0.6.2
2018
cli Bandwidth Monitor NG is a small and console-based live network and disk-io bandwidth monitor
http://sourceforge.net/projects/bwmng/
cdpinfo
1.2
2012
cli A perl script to  listen for Cisco Discovery Protocol (CDP) packets and print out key values such as switch, port and vlan
https://github.com/wildajet/scripts/blob/master/cdpinfo
cdpr
2.4
2013
cli Cisco Discovery Protocol Reporter - view and decode CDP packets
http://sourceforge.net/projects/cdpr/
checksec 1.10.0
2018
cli
Test security features implemented in the running Linux version
https://github.com/slimm609/checksec.sh
http://www.trapkit.de/tools/checksec.html
collectl
4.3.1
2018
cli powerfull performance monitoring tool
http://collectl.sourceforge.net/

CPUHog
2.1.3
2018
GUI
Java app. to utilise (waste) as much CPU as it can. The application allows the user to create multiple Java threads, each performing a CPU-intensive task tasks with a selectable memory footprint. The options let you 'thrash' the aspect you want. https://sourceforge.net/projects/cpuhog/
cpumon
2.4
2014
cli monitor cpu usage
http://www.softndesign.org/codes/c/cpumon/
cpustat
0.02.11
2020
cli cpustat periodically dumps out the current CPU utilisation statistics of running processes. cpustat has been optimised to have a minimal CPU overhead and typically uses about 35% of the CPU compared to top. cpustat also includes some simple statistical analysis options that can help characterise the way CPUs are being loaded. https://github.com/ColinIanKing/cpustat
darkstat
3.0.719
2015
WebGUI
Captures network traffic, calculates statistics about usage, and serves reports over HTTP.

Use darkstat.sh to start or stop the darkstat daemon.

http://unix4lyfe.org/darkstat/

dhtest
1.5
2018
cli DHCP Test client
https://github.com/saravana815/dhtest
dmidecode
3.2
2019
cli dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard (see a sample output) http://www.nongnu.org/dmidecode/
dstat
0.7.3
2017
cli Resource statistic tool
http://dag.wieers.com/home-made/dstat/
dropwatch
1.5.0
2016
cli
list dropped network packages
https://github.com/nhorman/dropwatch

eventstat 0.04.11
2020
cli
eventstat periodically dumps out the current kernel event state. It keeps track of current events and outputs the change in events on each output update. The tool requires sudo to run since it needs to write to /proc/timer_stats to start and stop the event monitoring. http://kernel.ubuntu.com/~cking/eventstat/
faultstat
0.01.4
2020
cli
" Faultstat reports the page fault activity of processes running on a system. The tool supports a 'top' like mode to dynamically display the top page faulting processes. " https://kernel.ubuntu.com/~cking/faultstat/
fiemap

2017
cli
Reads file extents using the FIEMAP ioctl
https://github.com/ColinIanKing/fiemap
fio
2.1.10
2017
cli benchmark tool

Hints for Compiling fio
If you get these errors

/usr/bin/ld: diskutil.o: in function `get_device_numbers':
/var/tmp/jwm/src/fio-2.1.10/diskutil.c:184: undefined reference to `major'
/usr/bin/ld: /var/tmp/jwm/src/fio-2.1.10/diskutil.c:185: undefined reference to `minor'
/usr/bin/ld: /var/tmp/jwm/src/fio-2.1.10/diskutil.c:163: undefined reference to `major'

add

#include <sys/sysmacros.h>

to the file 

os/os-linux.h

05.09.2020 /bs

fio requires the function gettid; this function is not defined in older version of Linux. Therefor the compile script checks if the function gettid is defined in the current OS. If not the compile script will add a temporary include file with the definition of the function gettid.



http://freecode.com/projects/fio
fnotifystat 0.02.07
2020
cli
Fnotifystat is a program that dumps the file system activity in a given period of time.

Note:
The compile script aborts the compilation if the file fanotify.h is not found in /usr/include or one of the sub directories. This file is missing in older Linux versions

Hints for compiling fnotifystat
If you get the error message

cc -Wall -Wextra -DVERSION='"0.01.17"' -O2 fnotifystat.o -o fnotifystat
/usr/bin/ld: fnotifystat.o: in function `fnotify_get_filename.constprop.3':
fnotifystat.c:(.text+0xbad): undefined reference to `minor'

add the line

#include <sys/sysmacros.h>

to the file

fnotifystat.c


http://kernel.ubuntu.com/~cking/fnotifystat/
forkstat
0.02.16
2020
cli forkstat is a program that logs process fork(), exec() and exit() activity. It is useful for monitoring system behaviour and to track down rogue processes that are spawning off processes and potentially abusing the system.

Note that forkstat uses the Linux netlink connector to gather process activity and this may miss events if the system is overly busy. Netlink connector also requires root privilege.
http://kernel.ubuntu.com/~cking/forkstat/
fspy
0.1.1



2010
cli fspy is an easy to use linux filesystem activity monitoring tool which is meant to be small, fast and to handle system resources conservative. you can apply filters, use diffing and your own output format in order to get the best results.
https://www.security-database.com/toolswatch/fspy-v0-1-1-linux-filesystem.html
hdperf
1.5
2013
cli harddrive performance benchmark
http://sourceforge.net/projects/hdperf/
health-check 0.03.09
2020
cli The health-check tool monitors processes in various ways to help identify areas where it is consuming too many resources. One can trace one or more processes (including all their threads and child processes too) for a full story of system activity.

Note:
The compile script aborts the compilation if the file fanotify.h is not found in /usr/include or one of the sub directories. This file is missing in older Linux versions


http://kernel.ubuntu.com/~cking/health-check/
horst 5.1 2016 cli horst is a small, lightweight IEEE802.11 WLAN analyzer with a text interface.

Hints for compiling horst
If compiling horst fails with error messages like this:

display.c:435:11: error: lvalue required as left operand of assignment
  435 |  ESCDELAY = 25; /* we don't use ESC sequences */

A workaround for this error is to comment the lines with the "invalid" assignments


https://github.com/br101/horst
hostscope
7.0
2020
cli, network
hostscope displays key system metrics of Linux hosts, such as detailed CPU load, speed and temperature, I/O rates of network interfaces, I/O rates of disks, and user process summary information. All metrics are multicast on the LAN, if wanted, and clients can switch between multiple hosts on the network.

http://www.maier-komor.de/hostscope.html
hping2
2.0.0
2006
cli command-line oriented TCP/IP packet assembler/analyzer https://sourceforge.net/projects/hping2/
htop
3.0.4
2020
cli top like system monitor

Note:

The old htop version 2.2.0 is available as htop2.

http://htop.sourceforge.net/
httpry
0.1.8.0
2014
cli
a HTTP logging and information retrieval tool

https://github.com/jbittel/httpry#
ibmonitor
1.4
2006
cli ibmonitor is an interactive linux console application which shows
bandwidth consumed and total data transferred on all interfaces.
http://ibmonitor.sourceforge.net/index.html
ifstat
1.1
2004
cli report network interface bandwidth
http://gael.roualland.free.fr/ifstat/
iftop
1.0pre4
2014
cli report network interface bandwidth http://www.ex-parrot.com/pdw/iftop/
inxi
3.2.01-00
2020
cli inxi - the universal, portable, system information tool for console and irc.

http://smxi.org/

inotify
3.14
2010
cli

inotify-tools is a C library and a set of command-line programs for Linux providing a simple interface to inotify. These programs can be used to monitor and act upon filesystem events. ...
The programs are written in C and have no dependencies other than a Linux kernel supporting inotify.

inotify-tools 3.14 is the latest version, released on the 7th of March 2010.

inotify is a file change notification system in the Linux kernel, available since version 2.6.13

To check whether your own kernel version supports Inotify as well, you can run the following command:

% grep INOTIFY_USER /boot/config-$(uname -r)
CONFIG_INOTIFY_USER=y
https://github.com/rvoicilas/inotify-tools/wiki

see also:

http://www.infoq.com/articles/inotify-linux-file-system-event-monitoring
inq
9.1.0.0

2019
cli disk inquiry program from EMC,

Notes:
The archive contains only the 32bit binary and the 64bit binary
The 32 Bit Version is still 7.6.2.0


ftp://ftp.emc.com/pub/symm3000/inquiry/

(no source code available)
Intel PCM
2.11
2012
cli Intel Performance Counter Monitor
https://software.intel.com/en-us/articles/intel-performance-counter-monitor/
ioping
1.1
2018
cli
simple disk I/0 latency measuring tool
https://github.com/koct9i/ioping
iotop
0.4.4
2013
cli iotop is a Python program with a top like UI used to show of behalf of which process is the I/O going on.

Be aware of the requirements for this iotop version:

"It requires Python >= 2.5 (or Python >= 2.4 with the ctypes module) and a Linux kernel >= 2.6.20 with the CONFIG_TASK_DELAY_ACCT CONFIG_TASKSTATS,
CONFIG_TASK_IO_ACCOUNTING and CONFIG_VM_EVENT_COUNTERS options on."

http://guichaz.free.fr/iotop/
iotop
0.6
2013
cli iotop is a Python program with a top like UI used to show of behalf of which process is the I/O going on.

Be aware of the requirements for this iotop version:

"It requires Python >= 2.7 and a Linux kernel >= 2.6.20 with the CONFIG_TASK_DELAY_ACCT CONFIG_TASKSTATS,
CONFIG_TASK_IO_ACCOUNTING and CONFIG_VM_EVENT_COUNTERS options on."

http://guichaz.free.fr/iotop/
iozone
3_491
2020
cli IOzone is a filesystem benchmark tool
http://iozone.org/
ipaudit
1.1
2016
cli IPAudit monitors network activity on a network by host, protocol and port. http://ipaudit.sourceforge.net/
ipband
0.8.1
2008
cli ipband is a pcap based IP traffic monitor. http://ipband.sourceforge.net/
iperf3 3.6.0 2018 cli iperf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it r./src/bwm-ngeports the bandwidth, loss, and other parameters.

Note:

A binary version of the "old" iperf 2.0.5 that should run on most Linux distributions is in the directory ./bin1.

https://github.com/esnet/iperf
ipscan
3.7.3
2020
GUI
A cross-platform network scanner written in Java that is fast and simple to use


old releases:

https://sourceforge.net/projects/ipscan/

iptraf
3.0.0
2005
cli IPTraf is a console-based network statistics utility for Linux. http://iptraf.seul.org/index.html
iptraf-ng 1.2.1 2020 cli iptraf-ng is a fork of the original iptraf-3.0.0

Hints for compiling iptraf-ng

05.09.2020 /bs

New versions of iptraf-ng require the definition of PACKET_USER and PACKET_KERNEL. These definitions are missing in older Linux versions. Therefor the compile script for iptraf-ng checks if PACKET_USER is defined in the file
/usr/include/linux/if_packet.h. If the definition is missing the compile script will compile the old version of iptraf-ng in the directory ${JWM_DIR}/src/old/iptraf-ng.
(see also here)

https://github.com/iptraf-ng/iptraf-ng
iptstate 2.2.6 2016 cli IPTState is a top-like interface to your netfilter connection-tracking table. https://www.phildev.net/iptstate/index.shtml
itop

2012
cli itop monitors the interrupts of a system in real time
http://www.void.gr/kargig/blog/2012/06/24/interrupts-top-like-utility-for-linux/
JDiskReport 1.4.1 .2014 GUI "JDiskReport enables you to understand how much space the files and directories consume on your disk drives, and it helps you find obsolete files and folders.

The tool analyses your disk drives and collects several statistics which you can view as overview charts and details tables."

http://www.jgoodies.com/freeware/jdiskreport/
jnettop
0.13
2006
cli jnettop is a traffic visualiser, which captures traffic going through the host it is running from and displays streams sorted by bandwidth they use.
https://sourceforge.net/projects/jnettop/files/
justniffer 0.5.14 2014 cli justniffer is a network sniffer

Hints for compiling justniffer
Compiling justniffer requires boost  version 1.46 or newer.
If you do not want to install a new boost version you can compile justniffer using a boost staging area.

See also the hint below regarding GENL_ID_GENERATE.

Update 13.09.2020 boost_regex missing error

If the configure script complains about a missing library boost_regex the real missing library might be libboost_program_options.so:

checking whether the Boost::Regex library is available... yes
checking for exit in -lboost_regex... yes
checking whether the Boost::Program_Options library is available... yes
configure: error: Could not link against boost_regex !



http://justniffer.sourceforge.net/

https://sourceforge.net/projects/justniffer/?source=directory
latencytop
0.5
2009
cli view process latencies http://www.latencytop.org

[27.10.2013/bs: The web site is not available]

http://git.infradead.org/latencytop.git
lxtx 1.1.12 2016 cli A simple command line program, like vmstat, sar, or iostat.

Note:
There is no source code available for this tool.

http://ontune.us/lxtx/
lynis
3.0.2
2020
cli Lynis is a security auditing tool for UNIX derivatives like Linux, macOS, BSD, Solaris, AIX, and others https://cisofy.com/download/lynis/
manServer
1.07 ma1
2006
WebGUI
manServer - convert manual pages to HTML for viewing with a web browser. Use start_stop_manserver.sh to start or stop the JWM / Linux manServer.

A copy of this page is in the directory ./htdocs.

Note: the download link on that page does NOT work.

Working Download Link (05.11.2016)

http://www.filewatcher.com/m/manServer.pl.63487-0.html
memconf
3.15
2019
cli Identify sizes of memory modules installed on a Solaris, Linux, FreeBSD or HP-UX workstation or server. http://sourceforge.net/projects/memconf/
memstat 1.0.0 ? cli memstat is a small proc-based utility designed to help the system administrator figure out what's consuming memory https://www.gnu.org/software/hurd/user/tlecarrour/memstat.html
monitor_system.sh
1.0.0
2018
cli
monitor_system.sh is a simple wrapper script to start one or more monitor commands -- for further details see the documentation for the script.
http://bnsmb.de/Linux/monitor_system.html
mpathstat.py 1.1 2016 cli Python script to sort the output of iostat for better monitoring of multipathed devices http://prefetch.net/blog/index.php/2016/10/24/displaying-multi-path-statistics-on-linux-systems/
mtr
0.92
2017
cli mtr combines the functionality of the 'traceroute' and 'ping' programs in a single network diagnostic tool. http://www.bitwizard.nl/mtr/
nano
3.1
2018
cli
nano is a small visual editor
https://nano-editor.org/
netcat
0.7.1
2004
cli
The GNU Netcat
http://netcat.sourceforge.net/
netdata
1.28.0
2020
WebGUI real time performance monitoring in a Web dashboard

Very short netdata usage help
To use netdata start the daemon:

/var/tmp/jwm/netdata/usr/bin/netdata

(or use the script netdata.sh)

Then connect via WebBrowser to

http://127.0.0.1:19999/

To view the config use:

http://127.0.0.1:19999/netdata.conf

Note:

Please make sure that all files and sub directories in the directory ${JWM_DIR}/netdata are owned by the user executing netdata  

Hints for compiling netdata
netdata needs the develop package for libuv-1 or a newer version. This package is currently [as of 10.08.2020] not available in the standard repositories for RHEL 8.x or CentOS 8.x (neither in the repositories for the base OS nor in the epel repositories. Therefor you must reinstall the package from another source (for example from the repository from okay) or download the source for the library, compile it and install it.

Use the parameter  --disable-cloud for the installer netdata-installer.sh as work around for this error while compiling netdata:

externaldeps/libwebsockets/libwebsockets.a(unix-caps.c.o): In function `lws_plat_drop_app_privileges':
unix-caps.c:(.text+0x2d9): undefined reference to `cap_get_proc'
unix-caps.c:(.text+0x2f5): undefined reference to `cap_set_flag'




https://github.com/firehol/netdata
nethogs
0.8.0
2015
cli
NetHogs is a small 'net top' tool https://github.com/raboof/nethogs#readme
netio
1.32
2012
cli
network benchmark tool

Note:

For 10 GB connections netio is not that useful; use one of the other tools (for example netperf) instead.

https://web.ars.de/netio/






netperf
2.7.0
2015
cli network benchmark tool
http://www.netperf.org/netperf
netsniff-ng 0.6.7 2020 cli netsniff-ng is a free Linux networking toolkit, a Swiss army knife for your daily Linux network plumbing if you will.

Hints for compiling netsniff-ng
netsniff-ng does not compile with the libraries and headers from JWM / Linux . You must install the latest version of the libraries to compile netsniff-ng.

Compiling the version 0.6.3 will fail with the error message

staging/tools.c:485:10: error: ‘UINT64_MAX’ undeclared (first use in this function)

To fix this issue add the missing statement

#include <stdint.h>

to the file

./staging/tools.c


http://netsniff-ng.org/
ngrep
1.47
2006
cli grep for network traffic
http://ngrep.sourceforge.net/
nicstat
1.95
2014
cli Network traffic statics utility for Solaris and Linux http://sourceforge.net/projects/nicstat/
nload
0.7.4
2012
cli nload is a console application which monitors network traffic and bandwidth usage in real time. It visualizes the in- and outgoing traffic using two graphs and provides additional info like total amount of transfered data and min/max network usage.
http://www.roland-riegel.de/nload/index.html
nmap
7.70
2017
cli network port scanner
http://nmap.org/
nmon
16m
2020
cli Nigel's performance Monitor for Linux

Hints for compiling nmon

The source code for nmon version 15+ uses functions from the math library but does not link the necessary lib for that, so compiling nmon ends with an error:

cc -o nmon_power_rhel3 lmon.c -g -O2 -D JFS -D GETUSER -Wall -D LARGEMEM -lncurses -g -D POWER
/tmp/ccLo9PxQ.o: In function `main':
/var/tmp/jwm/src/nmon/lmon.c:5616: undefined reference to `ceilf'
collect2: error: ld returned 1 exit status


To get around this edit the makefile and change the line

LDFLAGS=-lncurses -g

to

LDFLAGS=-lncurses -g -lm



Included are also nmonchart:

"nmonchart is a Korn shell script for AIX or Linux to convert nmon collected files to a webpage (.html) including Google Chart and JavaScript to display the top 53+ AIX and Linux Performance Graphs and configuration details"

and the Java Nmon Analyzer

"The Java Nmon analyser is a free, open source analyser tool which is helpful in analyzing performance data captured using the nmon performance tool. and real-time monitor the Linux/AIX 's performance base on nmon."

There are other tools to use the data collected by nmon - see the list of other tools not included in JWM / Linux below.

nmon and nmon chart:

http://nmon.sourceforge.net/pmwiki.php

nmon Analyzer:

https://sourceforge.net/projects/jnmonanalyser/
numatop
1.0.4
2015
cli NumaTOP is an observation tool for runtime memory locality characterization and analysis of processes and threads running on a NUMA system. It helps the user characterize the NUMA behavior of processes and threads and identify where the NUMA-related performance bottlenecks reside.

NumaTOP Requirements
NumaTOP requires a special patch which supports PEBS Load Latency functionality.

The patch has not been integrated in 3.8 (probably it will be integrated
in 3.9).

Numatop is supported on Intel Xeon processors: 5500-series, 6500/7500-series,
5600 series, E7-x8xx-series, and E5-16xx/24xx/26xx/46xx-series.

E5-16xx/24xx/26xx/46xx-series had better be updated to latest CPU microcode
(microcode must be 0x618+ or 0x70c+).


https://01.org/numatop
oprofile 1.4.0 2020 cli OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead

Note:

The binary operf will only be compiled if the kernel supports the neccessary events.


http://oprofile.sourceforge.net/news/
p0f
3.09b
2016
cli P0f is a tool that utilizes an array of sophisticated, purely passive traffic fingerprinting mechanisms to identify the players behind any incidental TCP/IP communications (often as little as a single normal SYN) without interfering in any way. Version 3 is a complete rewrite of the original codebase, incorporating a significant number of improvements to network-level fingerprinting, and introducing the ability to reason about application-level payloads (e.g., HTTP).
http://lcamtuf.coredump.cx/p0f3/
pagemon
0.01.20
2020
cli pagemon is an interactive memory/page monitoring tool allowing one to browse the memory map of an active running process on Linux.
https://github.com/ColinIanKing/pagemon
pchar
1.5
2005
cli pchar is a tool to characterize the bandwidth, latency, and loss of links along an end-to-end path through the Internet.

Hints for compiling pchar
If compiling pchar with make fails with saying something like "SO_BSDCOMPAT not defined" temporary add

#define SO_BSDCOMPAT    14

to the file

/usr/include/asm-generic/socket.h

The compile script in JWM / Linux adds this statement to the include file pc.h from pchar if neccessary.

The usage of the abs function in the pchar source file ResultTable.cc is not allowed with GCC 7.x anymore. Therefor I corrected the source file:

[xtrnaw7@t61p pchar-1.5]$ diff ResultTable.cc ResultTable.cc.org
913,921c913,917
< //        residuals[l] = abs(partialmins[i] -
< //                   ((currentslope *
< //                     column2size(i) /
< //                     slopescale) +
< //                    currentintercept));
<         residuals[l] = partialmins[i] > ((currentslope * column2size(i) / slopescale ) + currentintercept ) ?
<             partialmins[i] -  ((currentslope * column2size(i) / slopescale ) + currentintercept ) :
<             ((currentslope * column2size(i) / slopescale ) + currentintercept ) - partialmins[i] ;
<
---
>         residuals[l] = abs(partialmins[i] -
>                    ((currentslope *
>                      column2size(i) /
>                      slopescale) +
>                     currentintercept));
938,939c934
< //        ys[l] = abs(partialmins[i] - mediany);
<         ys[l] = partialmins[i] > mediany ? partialmins[i] - mediany : mediany - partialmins[i] ;
---
>         ys[l] = abs(partialmins[i] - mediany);
[xtrnaw7@t61p pchar-1.5]$


[xtrnaw7@t61p pchar-1.5]$ ls -ltr ResultTable.cc*
-rw-r--r-- 1 xtrnaw7 users 26718 Aug 13 11:35 ResultTable.cc        # source w/ corrections for gcc 7.x
-rw-r--r-- 1 xtrnaw7 users 26109 Aug 13 11:42 ResultTable.cc.org    # original source file
-rw-r--r-- 1 xtrnaw7 users 26718 Aug 13 11:42 ResultTable.cc.gc7x  
# source w/ corrections for gcc 7.x
[xtrnaw7@t61p pchar-1.5]$




http://www.kitchenlab.org/www/bmah/Software/pchar/
perftools
(2017/12/19)
2017
cli Performance analysis tools based on Linux perf_events (aka perf) and ftrace (Brendan Gregg)
https://github.com/brendangregg/perf-tools
pigz
2.4.0
2017
cli parallel gzip
http://zlib.net/pigz/
pktstat
1.8.5
2012
cli pktstat displays a real-time list of active connections seen on a network interface, and how much bandwidth is being used by what.

It partially decodes HTTP and FTP protocols to show what filename is being transferred, as well as X11 application names. Entries hang around on the screen for a few seconds so you can see what just happened, in short a very useful tool to figure out network connection in real time.

http://linuxpoison.blogspot.de/2010/12/top-like-utility-to-monitor-network.html
powertop
2.13
2020
cli

PowerTOP is a Linux tool to diagnose issues with power consumption and power management.

In addition to being a diagnostic tool, PowerTOP also has an interactive mode where the user can experiment various power management settings for cases where the Linux distribution has not enabled these settings.

Hints for compiling powertop 2.8 and older

Neccessary changes in main.cpp to compile in GCC 7.x:

[xtrnaw7@t540p /var/tmp/jwm/src/powertop-2.6.1/src]$ diff main.cpp main.cpp.org
420c420
<                 sprintf(workload, "%s", optarg ? optarg : (char *)'\0' );
---
>                 sprintf(workload, "%s", optarg ? optarg :'\0' );
[xtrnaw7@t540p /var/tmp/jwm/src/powertop-2.6.1/src]$



https://01.org/powertop/
powerstat
0.02.24
2020
cli "Powerstat measures the power consumption of a machine using the battery stats or the Intel RAPL interface. The output is like vmstat but also shows power consumption statistics. At the end of a run, powerstat will calculate the average, standard deviation and min/max of the gathered data." https://github.com/ColinIanKing/powerstat
procdump 1.1.1 2020 cli ProcDump is a Linux reimagining of the classic ProcDump tool from the Sysinternals suite of tools for Windows.  ProcDump provides a convenient way for Linux developers to create core dumps of their application based on performance triggers.

Hints for compiling procdump

Changes for the source code and make file done are:

[xtrnaw7@rhel7-001 procdump-1.0.0]$ diff Makefile Makefile.org
3c3
< CFLAGS=-I ./include -pthread -lrt
---
> CFLAGS=-I ./include -pthread
[xtrnaw7@rhel7-001 procdump-1.0.0]$

[xtrnaw7@t540p /var/tmp/jwm/src/procdump-1.0.0/src]$ diff ProcDumpConfiguration.c ProcDumpConfiguration.c.org
461,462c461
<     int i ;
<     for (i = 0; i < self->nThreads; i++) {
---
>     for (int i = 0; i < self->nThreads; i++) {
588,589c587,588
<     int i ;
<     for (i = 0; i < strLen; i++) {
---
>
>     for (int i = 0; i < strLen; i++) {
[xtrnaw7@t540p /var/tmp/jwm/src/procdump-1.0.0/src]$

40p /var/tmp/jwm/src/procdump-1.0.0/src]$ diff CoreDumpWriter.c CoreDumpWriter.c.org
184c184
<         int j;        
---
>                 
186c186
<         for(j = 0; j < i; j++){
---
>         for(int j = 0; j < i; j++){


https://github.com/Microsoft/ProcDump-for-Linux
prtdiag
1.2
2003
cli prtdiag is a little script that displays the hardware configuration and status of a running machine.
http://people.redhat.com/tcallawa/prtdiag/
pspy
1.2
2019
cli
pspy - unprivileged Linux process snooping
https://github.com/DominicBreuker/pspy

Note:

The tar archive only contains the binary because the source file is in written in go. The source code is available on the website.

scanlogd
2.2.7
2012
cli
" scanlogd is a TCP port scan detection tool, originally designed to illustrate various attacks an IDS developer has to deal with, for a Phrack Magazine article. Thus, unlike some of the other port scan detection tools out there, scanlogd is designed to be totally safe to use." https://www.openwall.com/scanlogd/
screen
4.8.0

cli screen is a full-screen window manager that multiplexes a physical terminal between several processes, typically interactive shells.

Hints for compiling screen
To compile screen the include file /usr/include/sys/stropts.h is necessary but in standard Linux distributions this file does not exist. To get around this bug do

sudo mkdir -p /usr/include/sys
sudo touch /usr/include/sys/stropts.h



https://www.gnu.org/software/screen/
smartmontools
6.6
2017
cli smartmontools contains utility programs (smartctl, smartd) to control/monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) built into most modern ATA and SCSI disks. It is derived from smartsuite. http://sourceforge.net/projects/smartmontools/
smem
1.4
2013
cli

smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size (PSS), which is a more meaningful representation of the amount of memory used by libraries and applications in a virtual memory system.

Because large portions of physical memory are typically shared among multiple applications, the standard measure of memory usage known as resident set size (RSS) will significantly overestimate memory usage. PSS instead measures each application's "fair share" of each shared area to give a realistic measure.

https://www.selenic.com/smem/
smemstat
0.02.08
2020
cli Smemstat reports the physical memory usage taking into consideration shared memory. The tool can either report a current snapshot of memory usage or periodically dump out any changes in memory.
http://kernel.ubuntu.com/~cking/smemstat/
sockperf
3.5
2018
cli
sockperf is a network benchmarking utility over socket API that was designed for testing performance (latency and throughput) of high-performance systems (it is also good for testing performance of regular networking systems as well). It covers most of the socket API calls and options. https://github.com/Mellanox/sockperf
sockstat
0.4.1-1
2019
cli
"Sockstat is a tool to let you view information about open connections. It is similar to the tool of the same name that is included in FreeBSD, trying to faithfully reproduce as much functionality as is possible."
https://packages.debian.org/unstable/main/sockstat

Source:

https://packages.debian.org/source/sid/sockstat
stress
1.0.4
2014
cli stress is a deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system. It is written in C, and is free software licensed under the GPLv2.
stress-ng
0.12.0
2020
cli stress-ng will stress test a computer system in various selectable ways.

Hints for compiling stress-ng
If you get the error message

stress-rdrand.c:49: Error: no such instruction: `rdrand %rax'


then the installed binutils are too old. Update the binutils (see Links_to libraries neccessary for JWM below)  and try again

13.08.2017 /bs

Changes in stress-fp-error.c from version 0.07.14 to successfully compile in ArcLinux with

[xtrnaw7@t61p /var/tmp/jwm/src/stress-ng-0.07.14]$ uname -a
Linux t61p 4.12.6-1-ARCH #1 SMP PREEMPT Sat Aug 12 09:16:22 CEST 2017 x86_64 GNU/Linux
[xtrnaw7@t61p /var/tmp/jwm/src/stress-ng-0.07.14]$ gcc --version
gcc (GCC) 7.1.1 20170630
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[xtrnaw7@t540p /var/tmp/jwm/src/stress-ng-0.07.14]$ diff stress-fp-error.c  stress-fp-error.c.org
30,44d29
< /*
<   neccessary code for ArcLinux (?)  13.08.2017/bs
< */
< #if !defined EDOM
< # define EDOM   33      /* Math argument out of domain of function.  */
< #endif
<
< #if !defined ERANGE
< # define ERANGE 34      /* Math result not representable.  */
< #endif
<
< /*
<   end of work around for ArcLinux
< */
<


18.08.2018 /bs

stress-ng needs a GCC version that supports this:

#pragma GCC diagnostic not allowed inside functions

The GCC version in Centos 6.9 does not support that. Therefor stress-ng must be compiled with a newer GCC version in Centos 6.9  (see Required GCC version on how to install a newer GCC version):

scl enable devtoolset-7 bash
cd /var/tmp/jwm/compile_scripts && ./compile_stress-ng.sh

05.09.2020 /bs

New versions of stress-ng require O_PATH to be defined. But O_PATH is not defined in older Linux versions. Therefor the compile script for stress-ng checks if O_PATH is defined in the file /usr/include/asm-generic/fcntl.h . If O_PATH is not defined the compile script will compile an older version of stress-ng; the source code for the older version of stress-ng is in the directory ${JWM_DIR}/src/old/stress-ng-without_O_PATH.
(see also here)


http://kernel.ubuntu.com/~cking/stress-ng/

sysfsutils 2.1.0 2006 cli This package's purpose is to provide a set of utilities for interfacing with sysfs https://sourceforge.net/projects/linux-diag/files/sysfsutils/
sysstat
12.5.2
2020
cli misc. tools :

cifsiostat mpstat iostat pidstat sysstat tapestat

Hints for compiling sysstat
18.08.2018 /bs

sysstat needs a GCC version that supports the __builtin_bswap16.
The GCC version in Centos 6.9 does not support that. Therefor sysstat must be compiled with a newer GCC version in Centos 6.9 (see Required GCC version on how to install a newer GCC version):

scl enable devtoolset-7 bash
cd /var/tmp/jwm/compile_scripts && ./compile_sysstat.sh



http://sebastien.godard.pagesperso-orange.fr/
t50
5.8.8
2020
cli T50 - Experimental Mixed Packet Injector

T50 (f.k.a. F22 Raptor) is a tool designed to perform "Stress Testing"


https://gitlab.com/fredericopissarra/t50
tcptrack 1.4.2 2004
cli Monitor TCP connections on the network
no home page
tcpdump 4.9.3 2019
cli
a powerful command-line packet analyzer http://www.tcpdump.org/
testssl.sh 2.9.5-6 2018 cli testssl.sh is a free command line tool which checks a server's service on any port for the support of TLS/SSL ciphers, protocols as well as recent cryptographic flaws and more. https://testssl.sh/
tiptop
2.3

cli tiptop is a performance monitoring tool for Linux.  It provides a dynamic real-time view of the tasks running in the system. tiptop is very similar to the top utility, but most of the information displayed comes from hardware counters.

Requirements:  Linux 2.6.31+
http://tiptop.gforge.inria.fr/
trace-cmd
2.7
2018
cli
trace-cmd: A front-end for Ftrace

see also Using the ftrace interface with shell

https://git.kernel.org/pub/scm/linux/kernel/git/rostedt/trace-cmd.git/








wavemon 0.8.0 2008
cli WLAN monitor http://freecode.com/projects/wavemon/
zmap
2.1.1
2017
cli
a fast single packet network scanner designed for Internet-wide network surveys https://github.com/zmap/zmap

see also https://github.com/zmap/zmap/wiki



Scripts and files include in JWM / Linux


Script
Purpose
Comment
./scripts/addtimestamp
add a timestamp to every output line of an executable

./scripts/busybox_httpd.sh start or stop the busybox httpd daemon
the htdocs directory for the httpd daemon is ${JWM_DIR}/htdocs
./scripts/collectl
wrapper script to call collectl

./scripts/collectl_top
call collectl with top like output

./scripts/collectl_top_io
call collectl with top like output with I/O

./scripts/darkstat.sh
start or stop the darkstat daemon

./scripts/execute_on_all_hosts.sh
execute a script or command on multiple hosts

./scripts/execute_tasks.sh
a wrapper script to execute tasks defined in an include file
execute_tasks.include is an sample include file for execute_tasks.sh; use

./scripts/execute_tasks.sh -v -h

to get the usage help and documentation for the script

./scripts/execute_scripts.sh
execute one or more executables in parallel or sequential sessions

./scripts/exec_snoop_wrapper.sh a wrapper script for the execsnoop script from the perftools
./scripts/iotop*
shell scripts to start iotop

./scripts/netdata.sh
start or stop the netdata daemon

./scripts/open_snoop_wrapper.sh a wrapper script for the opensnoop script from the perftools
./scripts/opensnoop1 a patched version of the opensnoop script from the perftools
./scripts/start_stop_manserver.sh
start or stop the JWM manServer

./scripts/compile_justniffer_with_boost.sh script to compile justniffer with a boost staging area
./scripts/jwm.sh script to execute a command in a temporay JWM / Linux environment
./compile_scripts/check_for_missing_libs.sh script to check for missing libraries
./compile_scripts/add_os_packages.sh script to install the OS packages required to compile all tools included in JWM / Linux

Note:

The scripts in the directory ./scripts not listed in the table above are part of one of the tools listed below


Develop Templates


These files/scripts can be used as template for new scripts

Script / file
Purpose
Comment
./develop/scriptt_mini.sh
simple kornshell script template with only the most useful functions

./develop/scriptt.sh
complex kornshell script template with lots of predefined variables and functions

./develop/send_monitor_login_mail.sh
a sample script to monitor a log file

./compile_scripts/compile_tool.template
a template for new compile scripts






Scripts and files for the JWM / Linux Environment

This table list the files and scripts that make up the JWM / Linux environment:

File
Type
Purpose
Comment
compile_tools.sh
script
simple wrapper script for make_tools.sh





create_archive.sh
script
create a new archive

init_session
script
start a JWM / Linux session

JWM_DESC
textfile
contains the description of the archive; this file will be (re)created by create_archive.sh before creating the new archive

jwm_env
include script
this is the include script for all other scripts in JWM / Linux that defines the necessary variables and some general functions

JWM_Linux_documentation.html
HTML page
this file

README
textfile
readme file for JWM / Linux

VERSION
textfile
contains the version of the JWM / Linux archive

NO_COMPILE_LIST
textfile
file with the list of packages that should not be compiled

compile_scripts/make_tools.sh
main script to compile the tools

compile_scripts/check_compile_status
script
view the compile status

compile_scripts/compile_<toolname>.sh script
compile the tool <toolname>

compile_scripts/start_compiling.sh
script
help script for the compile process

Note:

This script is used to compile the libraries included in JWM / Linux and copy the requried OS libraries to the JWM / Linux lib directory.

compile_scripts/jwml_include.inc script
include script for the compile scripts

compile_scripts/compile_tool.template
script
template for a compile script

./lib/_DO_NOT_COPY_LIBS_
file
semaphore file to request make_tools.sh NOT to copy the OS libraries

compile_scripts/OS_LIBS
textfile
list of OS libraries that should be copied to the JWM / Linux lib directory




Aliase in JWM / Linux


The JWM / Linux init script init_session defines the following aliase:

Alias
Purpose
Comment
jwm_version
print the version of the installed JWM archive

jwm_tools
list the tools in the current JWM environment

jwm_dir
print the the JWM / Linux base directory

jwm_home
change the working directory to the JWM / Linux base directory







Examples

This section contains the usage and some usage examples for the tools included in JWM / Linux. For more indepth information see either the man page or the documentation on the websites for the tools.


Note:

Most of the examples are copied from the documentation for the tools.


ack

ack is a replacement for grep written in Perl.

ack usage
xtrnaw7@t540p /tools/scripts]$ ack
Usage: ack [OPTION]... PATTERN [FILES OR DIRECTORIES]

Search for PATTERN in each source file in the tree from the current
directory on down.  If any files or directories are specified, then
only those files and directories are checked.  ack may also search
STDIN, but only if no file or directory arguments are specified,
or if one of them is "-".

Default switches may be specified in an .ackrc file. If you want no dependency
on the environment, turn it off with --noenv.

Example: ack -i select

Searching:
  -i, --ignore-case             Ignore case distinctions in PATTERN
  -S, --[no]smart-case          Ignore case distinctions in PATTERN,
                                only if PATTERN contains no upper case.
                                Ignored if -i or -I are specified.
  -I, --no-ignore-case          Turns on case-sensitivity in PATTERN.
                                Negates -i and --smart-case.
  -v, --invert-match            Invert match: select non-matching lines
  -w, --word-regexp             Force PATTERN to match only whole words
  -Q, --literal                 Quote all metacharacters; PATTERN is literal
  --range-start PATTERN         Specify PATTERN as the start of a match range.
  --range-end PATTERN           Specify PATTERN as the end of a match range.
  --match PATTERN               Specify PATTERN explicitly. Typically omitted.

Search output:
  -l, --files-with-matches      Only print filenames containing matches
  -L, --files-without-matches   Only print filenames with no matches
  --output=expr                 Output the evaluation of expr for each line
                                (turns off text highlighting)
  -o                            Show only the part of a line matching PATTERN
                                Same as --output='$&'
  --passthru                    Print all lines, whether matching or not
  -m, --max-count=NUM           Stop searching in each file after NUM matches
  -1                            Stop searching after one match of any kind
  -H, --with-filename           Print the filename for each match (default:
                                on unless explicitly searching a single file)
  -h, --no-filename             Suppress the prefixing filename on output
  -c, --count                   Show number of lines matching per file
  --[no]column                  Show the column number of the first match

  -A NUM, --after-context=NUM   Print NUM lines of trailing context after
                                matching lines.
  -B NUM, --before-context=NUM  Print NUM lines of leading context before
                                matching lines.
  -C [NUM], --context[=NUM]     Print NUM lines (default 2) of output context.

  --print0                      Print null byte as separator between filenames,
                                only works with -f, -g, -l, -L or -c.

  -s                            Suppress error messages about nonexistent or
                                unreadable files.


File presentation:
  --pager=COMMAND               Pipes all ack output through COMMAND.  For
                                example, --pager="less -R".  Ignored if output
                                is redirected.
  --nopager                     Do not send output through a pager.  Cancels
                                any setting in ~/.ackrc, ACK_PAGER or
                                ACK_PAGER_COLOR.
  --[no]heading                 Print a filename heading above each file's
                                results.  (default: on when used interactively)
  --[no]break                   Print a break between results from different
                                files.  (default: on when used interactively)
  --group                       Same as --heading --break
  --nogroup                     Same as --noheading --nobreak
  -p, --proximate=LINES         Separate match output with blank lines unless
                                they are within LINES lines from each other.
  -P, --proximate=0             Negates --proximate.
  --[no]underline               Print a line of carets under the matched text.
  --[no]color, --[no]colour     Highlight the matching text (default: on unless
                                output is redirected, or on Windows)
  --color-filename=COLOR
  --color-match=COLOR
  --color-colno=COLOR
  --color-lineno=COLOR          Set the color for filenames, matches, line and
                                column numbers.
  --help-colors                 Show a list of possible color combinations.
  --help-rgb-colors             Show a list of advanced RGB colors.
  --flush                       Flush output immediately, even when ack is used
                                non-interactively (when output goes to a pipe or
                                file).


File finding:
  -f                            Only print the files selected, without
                                searching.  The PATTERN must not be specified.
  -g                            Same as -f, but only select files matching
                                PATTERN.
  --sort-files                  Sort the found files lexically.
  --show-types                  Show which types each file has.
  --files-from=FILE             Read the list of files to search from FILE.
  -x                            Read the list of files to search from STDIN.

File inclusion/exclusion:
  --[no]ignore-dir=name         Add/remove directory from list of ignored dirs
  --[no]ignore-directory=name   Synonym for ignore-dir
  --ignore-file=FILTER:ARGS     Add filter for ignoring files.
  -r, -R, --recurse             Recurse into subdirectories (default: on)
  -n, --no-recurse              No descending into subdirectories
  --[no]follow                  Follow symlinks.  Default is off.

File type inclusion/exclusion:
  --type=X                      Include only X files, where X is a recognized
                                filetype, e.g. --php, --ruby
  --type=noX                    Exclude X files, e.g. --nophp, --no-ruby.
  -k, --known-types             Include only files of types that ack recognizes.
  --help-types                  Display all known types, and how they're defined.

File type specification:
  --type-set=TYPE:FILTER:ARGS   Files with the given ARGS applied to the given
                                FILTER are recognized as being of type TYPE.
                                This replaces an existing definition for TYPE.
  --type-add=TYPE:FILTER:ARGS   Files with the given ARGS applied to the given
                                FILTER are recognized as being type TYPE.
  --type-del=TYPE               Removes all filters associated with TYPE.

Miscellaneous:
  --version                     Display version & copyright
  --[no]env                     Ignore environment variables and global ackrc
                                files.  --env is legal but redundant.
  --ackrc=filename              Specify an ackrc file to use
  --ignore-ack-defaults         Ignore default definitions included with ack.
  --create-ackrc                Outputs a default ackrc for your customization
                                to standard output.
  --dump                        Dump information on which options are loaded
                                and where they're defined.
  --[no]filter                  Force ack to treat standard input as a pipe
                                (--filter) or tty (--nofilter)
  --help                        This help
  --man                         Print the manual.
  --help-types                  Display all known types, and how they're defined.
  --help-colors                 Show a list of possible color combinations.
  --help-rgb-colors             Show a list of advanced RGB colors.
  --thpppt                      Bill the Cat
  --bar                         The warning admiral
  --cathy                       Chocolate! Chocolate! Chocolate!

Filter specifications:
    If FILTER is "ext", ARGS is a list of extensions checked against the
        file's extension.
    If FILTER is "is", ARGS must match the file's name exactly.
    If FILTER is "match", ARGS is matched as a case-insensitive regex
        against the filename.
    If FILTER is "firstlinematch", ARGS is matched as a regex the first
        line of the file's contents.

Exit status is 0 if match, 1 if no match.

ack's home page is at https://beyondgrep.com/

The full ack manual is available by running "ack --man".

This is version v3.1.1 of ack.  Run "ack --version" for full version info.
[xtrnaw7@t540p /tools/scripts]$ cd -
/var/tmp/jwm/scripts
[xtrnaw7@t540p /var/tmp/jwm/scripts]$








arping


arping is a util to find out if a specific IP address on the LAN is 'taken' and what MAC address owns it. Sure, you *could* just use 'ping' to find out if it's taken and even if the computer blocks ping (and everything else) you still get an entry in your ARP cache. But what if you aren't on a routable net? Or the host blocks ping (all ICMP even)? Then you're screwed. Or you use arping.


arping usage
[xtrnaw7@t540p /data/download/arping-arping-2.x]$  ./src/arping --help
ARPing 2.19, by Thomas Habets <thomas@habets.se>
usage: arping [ -0aAbdDeFpPqrRuUv ] [ -w <sec> ] [ -W <sec> ] [ -S <host/ip> ]
              [ -T <host/ip ] [ -s <MAC> ] [ -t <MAC> ] [ -c <count> ]
              [ -C <count> ] [ -i <interface> ] [ -m <type> ] [ -g <group> ]
              [ -V <vlan> ] [ -Q <priority> ] <host/ip/MAC | -B>

Options:

    -0     Use this option to ping with source IP address 0.0.0.0. Use this
           when you haven't configured your interface yet.  Note that  this
           may  get  the  MAC-ping  unanswered.   This  is  an alias for -S
           0.0.0.0.
    -a     Audiable ping.
    -A     Only count addresses matching  requested  address  (This  *WILL*
           break  most things you do. Only useful if you are arpinging many
           hosts at once. See arping-scan-net.sh for an example).
    -b     Like -0 but source broadcast source  address  (255.255.255.255).
           Note that this may get the arping unanswered since it's not nor-
           mal behavior for a host.
    -B     Use instead of host if you want to address 255.255.255.255.
    -c count
           Only send count requests.
    -C count
           Only wait for this many replies, regardless of -c and -w.
    -d     Find duplicate replies. Exit with 1 if there are answers from
           two different MAC addresses.
    -D     Display answers as exclamation points and missing packets as dots.
    -e     Like -a but beep when there is no reply.
    -F     Don't try to be smart about the interface name.  (even  if  this
           switch is not given, -i overrides smartness)
    -g group
           setgid() to this group instead of the nobody group.
    -h     Displays a help message and exits.
    -i interface
           Use the specified interface.
    -m type
           Type of timestamp to use for incoming packets. Use -vv when
           pinging to list available ones.
    -q     Does not display messages, except error messages.
    -Q pri 802.1p priority to set. Should be used with 802.1Q (-V).
           Defaults to 0.
    -r     Raw output: only the MAC/IP address is displayed for each reply.
    -R     Raw output: Like -r but shows "the other one", can  be  combined
           with -r.
    -s MAC Set source MAC address. You may need to use -p with this.
    -S IP  Like  -b and -0 but with set source address.  Note that this may
           get the arping unanswered if the target does not have routing to
           the  IP.  If you don't own the IP you are using, you may need to
           turn on promiscious mode on the interface (with -p).  With  this
           switch  you can find out what IP-address a host has without tak-
           ing an IP-address yourself.
    -t MAC Set target MAC address to use when pinging IP address.
    -T IP  Use -T as target address when pinging MACs that won't respond to
           a broadcast ping but perhaps to a directed broadcast.
           Example:
           To check the address of MAC-A, use knowledge of MAC-B and  IP-B.
           $ arping -S <IP-B> -s <MAC-B> -p <MAC-A>
    -p     Turn  on  promiscious  mode  on interface, use this if you don't
           "own" the MAC address you are using.
    -P     Send ARP replies instead of requests. Useful with -U.
    -u     Show index=received/sent instead  of  just  index=received  when
           pinging MACs.
    -U     Send unsolicited ARP.
    -v     Verbose output. Use twice for more messages.
    -V num 802.1Q tag to add. Defaults to no VLAN tag.
    -w sec Specify a timeout before ping exits regardless of how many
packets have been sent or received.
    -W sec Time to wait between pings.
Report bugs to: thomas@habets.se
Arping home page: <http://www.habets.pp.se/synscan/>
Development repo: http://github.com/ThomasHabets/arping
[xtrnaw7@t540p /data/download/arping-arping-2.x]$



arping example
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ ./arping 192.168.1.151
arping: libnet_init(LIBNET_LINK, <null>): libnet_open_link(): UID/EUID 0 or capability CAP_NET_RAW required
arping: you may need to run as root
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./arping 192.168.1.151
ARPING 192.168.1.151
60 bytes from 1c:c1:de:83:dc:24 (192.168.1.151): index=0 time=219.432 usec
60 bytes from 1c:c1:de:83:dc:24 (192.168.1.151): index=1 time=224.237 usec
60 bytes from 1c:c1:de:83:dc:24 (192.168.1.151): index=2 time=204.635 usec
^C
--- 192.168.1.151 statistics ---
3 packets transmitted, 3 packets received,   0% unanswered (0 extra)
rtt min/avg/max/std-dev = 0.205/0.216/0.224/0.008 ms
[xtrnaw7@t540p /var/tmp/jwm/sbin]$





atop

atop is a replacement for top.

atop usage
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/atop -V
Version: 2.6.0 - 2020/12/21 20:45:10     <gerlof.langeveld@atoptool.nl>
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/atop -h
Usage: atop [-flags] [interval [samples]]
        or
Usage: atop -w  file  [-S] [-a] [interval [samples]]
       atop -r [file] [-b [YYYYMMDD]hhmm] [-e [YYYYMMDD]hhmm] [-flags]

    generic flags:
      -V  show version information
      -a  show or log all processes (i.s.o. active processes only)
      -R  calculate proportional set size (PSS) per process
      -W  determine WCHAN (string) per thread
      -P  generate parseable output for specified label(s)
      -L  alternate line length (default 80) in case of non-screen output
      -f  show fixed number of lines with system statistics
      -F  suppress sorting of system resources
      -G  suppress exited processes in output
      -l  show limited number of lines for certain resources
      -y  show threads within process
      -Y  sort threads (when combined with 'y')
      -1  show average-per-second i.s.o. total values

      -x  no colors in case of high occupation
      -g  show general process-info (default)
      -m  show memory-related process-info
      -d  show disk-related process-info
      -n  show network-related process-info
      -s  show scheduling-related process-info
      -v  show various process-info (ppid, user/group, date/time)
      -c  show command line per process
      -o  show own defined process-info
      -u  show cumulated process-info per user
      -p  show cumulated process-info per program (i.e. same name)
      -j  show cumulated process-info per container

      -C  sort processes in order of cpu consumption (default)
      -M  sort processes in order of memory consumption
      -D  sort processes in order of disk activity
      -N  sort processes in order of network activity
      -E  sort processes in order of GPU activity
      -A  sort processes in order of most active resource (auto mode)

    specific flags for raw logfiles:
      -w  write raw data to   file (compressed)
      -r  read  raw data from file (compressed)
          symbolic file: y[y...] for yesterday (repeated)
          file name '-': read raw data from stdin
      -S  finish atop automatically before midnight (i.s.o. #samples)
      -b  begin showing data from specified date/time
      -e  finish showing data after specified date/time

    interval: number of seconds   (minimum 0)
    samples:  number of intervals (minimum 1)

If the interval-value is zero, a new sample can be
forced manually by sending signal USR1 (kill -USR1 pid_atop)
or with the keystroke 't' in interactive mode.

Please refer to the man-page of 'atop' for more details.
[xtrnaw7@t540p /var/tmp/jwm/src]$








bashtop

bashtop is a "Resource monitor that shows usage and stats for processor, memory, disks, network and processes."  (see also bpytop)






bmon

"bmon is a monitoring and debugging tool to capture networking related statistics and prepare them visually in a human friendly way. It features various output methods including an interactive curses user interface and a programmable text output for scripting."

bmon usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/bin]$ ./bmon -h
bmon 3.9
Copyright (C) 2001-2015 by Thomas Graf <tgraf@suug.ch>
Copyright (C) 2013 Red Hat, Inc.
bmon comes with ABSOLUTELY NO WARRANTY. This is free software, and you
are welcome to redistribute it under certain conditions. See the source
code for details.

Usage: bmon [OPTION]...

Options:
Startup:
   -i, --input=MODPARM             Input module(s)
   -o, --output=MODPARM            Output module(s)
   -f, --configfile=PATH           Alternative path to configuration file
   -h, --help                      Show this help text
   -V, --version                   Show version

Input:
   -p, --policy=POLICY             Element display policy (see below)
   -a, --show-all                  Show all elements (even disabled elements)
   -r, --read-interval=FLOAT       Read interval in seconds (float)
   -R, --rate-interval=FLOAT       Rate interval in seconds (float)
   -s, --sleep-interval=FLOAT      Sleep time in seconds (float)
   -L, --lifetime=LIFETIME         Lifetime of an element in seconds (float)

Output:
   -U, --use-si                    Use SI units
   -b, --use-bit                   Display in bits instead of bytes

Module configuration:
   modparm := MODULE:optlist,MODULE:optlist,...
   optlist := option;option;...
   option  := TYPE[=VALUE]

   Examples:
       -o curses:ngraph=2
       -o list            # Shows a list of available modules
       -o curses:help     # Shows a help text for html module

Interface selection:
   policy  := [!]simple_regexp,[!]simple_regexp,...

   Example: -p 'eth*,lo*,!eth1'

Please see the bmon(1) man pages for full documentation.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/bin]$








bonnie++

"Bonnie++ is a benchmark suite that is aimed at performing a number of simple tests of hard drive and file system performance. Then you can decide which test is important and decide how to compare different systems after running it. I have no plans to ever have it produce a single number, because I don't think that a single number can be useful when comparing such things.
The main program tests database type access to a single file (or a set of files if you wish to test more than 1G of storage), and it tests creation, reading, and deleting of small files which can simulate the usage of programs such as Squid, INN, or Maildir format email.
The ZCAV program which I initially released as a seperate package tests the performance of different zones of a hard drive. It does not write any data (so you can use it on full file systems). It can show why comparing the speed of Windows at the start of a hard drive to Linux at the end of the hard drive (typical dual-boot scenario) isn't a valid comparison.
Bonnie++ was based on the code for Bonnie by Tim Bray. "

bonnie++ usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bonnie++ -h
bonnie++: invalid option -- 'h'
usage: bonnie++ [-d scratch-dir] [-s size(MiB)[:chunk-size(b)]]
                [-n number-to-stat[:max-size[:min-size][:num-directories]]]
                [-m machine-name]
                [-r ram-size-in-MiB]
                [-x number-of-tests] [-u uid-to-use:gid-to-use] [-g gid-to-use]
                [-q] [-f] [-b] [-D] [-p processes | -y]

Version: 1.03e




bpytop


A python version of bashtop.




busybox

"BusyBox combines tiny versions of many common UNIX utilities into a single small executable. It provides replacements for most of the utilities you usually find in GNU fileutils, shellutils, etc. The utilities in BusyBox generally have fewer options than their full-featured GNU cousins; however, the options that are included provide the expected functionality and behave very much like their GNU counterparts. BusyBox provides a fairly complete environment for any small or embedded system.

BusyBox has been written with size-optimization and limited resources in mind. It is also extremely modular so you can easily include or exclude commands (or features) at compile time. This makes it easy to customize your embedded systems. To create a working system, just add some device nodes in /dev, a few configuration files in /etc, and a Linux kernel."

busybox is compiled for all supported tools; the binary and links are in the directory ${JWM_DIR}/busybox.

Binaries combined in busybox

[xtrnaw7@t540p /var/tmp/jwm/busybox]$ ls
[           cttyhack       fsck        iprule       mkfs.vfat      raidautorun   sleep              ubirmvol
[[          cut            fsck.minix  iptunnel     mknod          rdate         smemcap            ubirsvol
acpid       date           fstrim      kbd_mode     mkpasswd       rdev          softlimit          ubiupdatevol
addgroup    dc             fsync       kill         mkswap         readahead     sort               udhcpc
add-shell   dd             ftpd        killall      mktemp         readlink      split              udhcpd
adduser     deallocvt      ftpget      killall5     modinfo        readprofile   start-stop-daemon  udpsvd
adjtimex    delgroup       ftpput      klogd        modprobe       realpath      stat               uevent
ar          deluser        fuser       last         more           reboot        strings            umount
arp         depmod         getopt      less         mount          reformime     stty               uname
arping      devmem         getty       linux32      mountpoint     remove-shell  su                 uncompress
ash         df             grep        linux64      mpstat         renice        sulogin            unexpand
awk         dhcprelay      groups      linuxrc      mt             reset         sum                uniq
base64      diff           gunzip      ln           mv             resize        sv                 unix2dos
basename    dirname        gzip        loadfont     nameif         rev           svlogd             unlink
beep        dmesg          halt        loadkmap     nanddump       rm            swapoff            unlzma
blkdiscard  dnsd           hd          logger       nandwrite      rmdir         swapon             unlzop
blkid       dnsdomainname  hdparm      login        nbd-client     rmmod         switch_root        unshare
blockdev    dos2unix       head        logname      nc             route         sync               unxz
bootchartd  du             hexdump     logread      netstat        rpm           sysctl             unzip
brctl       dumpkmap       hostid      losetup      nice           rpm2cpio      syslogd            uptime
bunzip2     dumpleases     hostname    lpd          nmeter         rtcwake       tac                users
busybox     echo           httpd       lpq          nohup          runlevel      tail               usleep
bzcat       ed             hush        lpr          nsenter        run-parts     tar                uudecode
bzip2       egrep          hwclock     ls           nslookup       runsv         tcpsvd             uuencode
cal         eject          i2cdetect   lsattr       ntpd           runsvdir      tee                vconfig
cat         env            i2cdump     lsmod        od             rx            telnet             vi
catv        envdir         i2cget      lsof         openvt         script        telnetd            vlock
chat        envuidgid      i2cset      lspci        passwd         scriptreplay  test               volname
chattr      ether-wake     id          lsusb        patch          sed           tftp               wall
chgrp       expand         ifconfig    lzcat        pgrep          sendmail      tftpd              watch
chmod       expr           ifdown      lzma         pidof          seq           time               watchdog
chown       fakeidentd     ifenslave   lzop         ping           setarch       timeout            wc
chpasswd    false          ifplugd     lzopcat      ping6          setconsole    top                wget
chpst       fatattr        ifup        makedevs     pipe_progress  setfont       touch              which
chroot      fbset          inetd       makemime     pivot_root     setkeycodes   tr                 who
chrt        fbsplash       init        man          pkill          setlogcons    traceroute         whoami
chvt        fdflush        insmod      md5sum       pmap           setserial     traceroute6        whois
cksum       fdformat       install     mdev         popmaildir     setsid        true               xargs
clear       fdisk          ionice      mesg         poweroff       setuidgid     truncate           xz
cmp         fgconsole      iostat      microcom     powertop       sh            tty                xzcat
comm        fgrep          ip          mkdir        printenv       sha1sum       ttysize            yes
conspy      find           ipaddr      mkdosfs      printf         sha256sum     tunctl             zcat
cp          findfs         ipcalc      mke2fs       ps             sha3sum       tune2fs            zcip
cpio        flock          ipcrm       mkfifo       pscan          sha512sum     ubiattach
crond       fold           ipcs        mkfs.ext2    pstree         showkey       ubidetach
crontab     free           iplink      mkfs.minix   pwd            shuf          ubimkvol
cryptpw     freeramdisk    iproute     mkfs.reiser  pwdx           slattach      ubirename
[xtrnaw7@t540p /var/tmp/jwm/busybox]$





busybox_httpd.sh

busybox_httpd.sh is a script to start or stop the busybox httpd daemon.


The current version of the script is always available here.


The usage for the script

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh --help
[25.10.2016 18:52 ] ### busybox_httpd.sh started at Tue Oct 25 18:52:07 CEST 2016
 busybox_httpd.sh

 Function: start or stop the busybox httpd daemon
 
 Usage:    busybox_httpd.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-p|--port httpd_port] [-h|--home homedir] [-c|--config configfile]
                            [start [httpd_options]|stop|restart [httpd_options]|status|daemon_help]

 Parameter
   -v - verbose mode
   -q - quiet mode
   -f - force execution
   -p - port for httpd (default: 8080)
   -h - home dir , default: ${JWM_DIR}/htdocs or <script_dir>/../htdocs if JWM_DIR is not set
   -c - config file, default: ${JWM_DIR}/etc or <script_dir>/../etc/httpd.conf if JWM_DIR is not set
   -C - config file like -c but do NOT change the config file at all

   httpd_options - additional options for starting the httpd
   daemon_help - list the usage help for the busybox httpd daemon

  The script searches the busybox binary in these directories:
    - the current working directory
    - the directory with this script
    - the directory ${JWM_DIR}/busybox
    - the directory ${PWD}/../busybox

 Author:
   Bernd Schemmer (Bernd.Schemmer@gmx.de)

[25.10.2016 18:52 ] ### busybox_httpd.sh ended at Tue Oct 25 18:52:07 CEST 2016



Examples busybox_httpd.sh

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh start
[25.10.2016 18:52 ] ### busybox_httpd.sh started at Tue Oct 25 18:52:14 CEST 2016
[25.10.2016 18:52 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:52 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:52 ] Starting the httpd daemon ...
[25.10.2016 18:52 ] Using the httpd home directory /var/tmp/jwm/htdocs
[25.10.2016 18:52 ] Using the httpd config file /var/tmp/jwm/etc/httpd.conf
[25.10.2016 18:52 ] The port to use for the httpd daemon is 8080
[25.10.2016 18:52 ] Preparing the environment to start the busybox httpd with php support ...
[25.10.2016 18:52 ] Searching for the php-cgi binary ...
[25.10.2016 18:52 ] Using the PHP binary "/usr/bin/php-cgi" ...
+ ./busybox/httpd '' -p 8080 -c /tmp/httpd.8080.conf -h /var/tmp/jwm/htdocs
+ 2>& 1

[25.10.2016 18:52 ] httpd daemon started; the PID is 573
[25.10.2016 18:52 ] Use http://localhost:8080 or http://t540p:8080 to access the httpd in your Webbrowser
[25.10.2016 18:52 ] ### busybox_httpd.sh ended at Tue Oct 25 18:52:14 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh status
[25.10.2016 18:52 ] ### busybox_httpd.sh started at Tue Oct 25 18:52:25 CEST 2016
[25.10.2016 18:52 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:52 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:52 ] The httpd daemon is running; the PID is 573

UID        PID  PPID  C STIME TTY          TIME CMD
xtrnaw7    573     1  0 18:52 ?        00:00:00 ./busybox/httpd  -p 8080 -c /tmp/httpd.8080.conf -h /var/tmp/jwm/htdocs

[25.10.2016 18:52 ] The httpd daemon is listening on these ports:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::8080                 :::*                    LISTEN      573/./busybox/httpd

[25.10.2016 18:52 ] ### busybox_httpd.sh ended at Tue Oct 25 18:52:26 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh stop
[25.10.2016 18:52 ] ### busybox_httpd.sh started at Tue Oct 25 18:52:29 CEST 2016
[25.10.2016 18:52 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:52 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:52 ] The httpd daemon is running; the PID is 573
[25.10.2016 18:52 ] Stopping the httpd daemon ...
[25.10.2016 18:52 ] ### busybox_httpd.sh ended at Tue Oct 25 18:52:30 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh status
[25.10.2016 18:52 ] ### busybox_httpd.sh started at Tue Oct 25 18:52:33 CEST 2016
[25.10.2016 18:52 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:52 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:52 ] The httpd daemon is NOT running (well, it may be running but it was not started by this script)
[25.10.2016 18:52 ] ### busybox_httpd.sh ended at Tue Oct 25 18:52:33 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$


To change the port used by the httpd use:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh -p 8888 start
[25.10.2016 18:53 ] ### busybox_httpd.sh started at Tue Oct 25 18:53:13 CEST 2016
[25.10.2016 18:53 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:53 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:53 ] Starting the httpd daemon ...
[25.10.2016 18:53 ] Using the httpd home directory /var/tmp/jwm/htdocs
[25.10.2016 18:53 ] Using the httpd config file /var/tmp/jwm/etc/httpd.conf
[25.10.2016 18:53 ] The port to use for the httpd daemon is 8888
[25.10.2016 18:53 ] Preparing the environment to start the busybox httpd with php support ...
[25.10.2016 18:53 ] Searching for the php-cgi binary ...
[25.10.2016 18:53 ] Using the PHP binary "/usr/bin/php-cgi" ...
+ ./busybox/httpd '' -p 8888 -c /tmp/httpd.8888.conf -h /var/tmp/jwm/htdocs
+ 2>& 1

[25.10.2016 18:53 ] httpd daemon started; the PID is 825
[25.10.2016 18:53 ] Use http://localhost:8888 or http://t540p:8888 to access the httpd in your Webbrowser
[25.10.2016 18:53 ] ### busybox_httpd.sh ended at Tue Oct 25 18:53:13 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh status
[25.10.2016 18:53 ] ### busybox_httpd.sh started at Tue Oct 25 18:53:19 CEST 2016
[25.10.2016 18:53 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:53 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:53 ] The httpd daemon is running; the PID is 825

UID        PID  PPID  C STIME TTY          TIME CMD
xtrnaw7    825     1  0 18:53 ?        00:00:00 ./busybox/httpd  -p 8888 -c /tmp/httpd.8888.conf -h /var/tmp/jwm/htdocs

[25.10.2016 18:53 ] The httpd daemon is listening on these ports:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::8888                 :::*                    LISTEN      825/./busybox/httpd

[25.10.2016 18:53 ] ### busybox_httpd.sh ended at Tue Oct 25 18:53:19 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./busybox_httpd.sh stop
[25.10.2016 18:53 ] ### busybox_httpd.sh started at Tue Oct 25 18:53:30 CEST 2016
[25.10.2016 18:53 ] Using the busybox directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 18:53 ] The busybox base directory is /var/tmp/jwm
[25.10.2016 18:53 ] The httpd daemon is running; the PID is 825
[25.10.2016 18:53 ] Stopping the httpd daemon ...
[25.10.2016 18:53 ] ### busybox_httpd.sh ended at Tue Oct 25 18:53:31 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$



The known parameter of the busybox httpd daemon are:

busybox httpd usage
[25.10.2016 19:04 ] Additional parameter supported by the busybox httpd daemon are:
BusyBox v1.25.0 (2016-10-25 14:12:10 CEST) multi-call binary.

Usage: httpd [-ifv[v]] [-c CONFFILE] [-p [IP:]PORT] [-u USER[:GRP]] [-r REALM] [-h HOME]
or httpd -d/-e/-m STRING

Listen for incoming HTTP requests

    -i              Inetd mode
    -f              Don't daemonize
    -v[v]           Verbose
    -p [IP:]PORT    Bind to IP:PORT (default *:80)
    -u USER[:GRP]   Set uid/gid after binding to port
    -r REALM        Authentication Realm for Basic Authentication
    -h HOME         Home directory (default .)
    -c FILE         Configuration file (default {/etc,HOME}/httpd.conf)
    -m STRING       MD5 crypt STRING
    -e STRING       HTML encode STRING
    -d STRING       URL decode STRING

[25.10.2016 19:04 ] ### busybox_httpd.sh ended at Tue Oct 25 19:04:44 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$




bvi


"The bvi is a display-oriented editor for binary files (hex editor), based on the vi texteditor. If you are familiar with vi, just start the editor and begin to edit! A bmore program is also included in the package.
If you never heard about vi, maybe bvi is not the best choice for you. "

bvi usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bvi -h Usage: bvi [-R] [-c cmd | +cmd] [-f script] [-s begin] [-e end] [-n size] file ... file offset/size: 10k, 20m, 1g, 0x1000 hex, 0200 octal [JWM session] [xtrnaw7@t540p /var/tmp/jwm]$









bwm-ng

bwm-ng is a network bandwidth monitor; the usage for bwm-ng is:

bwm-ng usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/bin]$ bwm-ng -h
Bandwidth Monitor NG (bwm-ng) v0.6.2
Copyright (C) 2004-2007 Volker Gropp <bwmng@gropp.org>
USAGE: bwm-ng [OPTION] ... [CONFIGFILE]
displays current ethernet interfaces stats

Options:
  -t, --timeout <msec>    displays stats every <msec> (1msec = 1/1000sec)
                          default: 500
  -d, --dynamic [value]   show values dynamically (Byte KB or MB)
  -a, --allif [mode]      where mode is one of:
                          0=show only up (and selected) interfaces
                          1=show all up interfaces (default)
                          2=show all and down interfaces
  -I, --interfaces <list> show only interfaces in <list> (comma separated), or
                          if list is prefaced with % show all but interfaces
                          in list
  -S, --sumhidden [value] count hidden interfaces for total
  -A, --avglength <sec>   sets the span of average stats (Default 30s)
  -D, --daemon [value]    fork into background and daemonize
  -h, --help              displays this help
  -V, --version           print version info

Input:
  -i, --input <method>    input method, one of: proc disk
  -f, --procfile <file>   filename to read raw data from. (/proc/net/dev)
      --diskstatsfile <file> filename to read diskstats (Linux 2.6+) from. (/proc/diskstats)
      --partitionsfile <file> filename to read diskstats (Linux 2.4) from. (/proc/partitions)

Output:
  -o, --output <method>   output method, one of:
                          plain, curses, curses2, csv, html
  -u, --unit <value>      unit to show. one of bytes, bits, packets, errors
  -T, --type <value>      type of stats. one of rate, max, sum, avg
  -C, --csvchar <char>    delimiter for csv
  -F, --outfile <file>    output file for csv and html (default stdout)
  -R, --htmlrefresh <num> meta refresh for html output
  -H, --htmlheader        show <html> and <meta> frame for html output
  -c, --count <num>       number of query/output for plain & csv
  -N, --ansiout           disable ansi codes for plain output
                          (ie 1 for one single output)

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/bin]$

    






cdpinfo

cdpinfo is a perl script listening for Cisco Discovery Protocol (CDP) packets  and printing out key values such as switch, port and vlan.

This script depends on either "snoop" (Solaris) or  "tcpdump" (Linux, AIX, and others).  Both of those programs generally  must be run as root (see also cdpr)

cdpinfo usage
[xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./cdpinfo -h
Usage: ./cdpinfo -i devX [-t tmout] [-v]

    -i devX   : Use the devX device name for the interface to watch.
    -t tmout  : Timeout value in seconds. Don't wait for a CDP packet longer than this.
                    Default is 60 seconds. 0 means no limit.
    -v        : Verbose output.
    -h        : This help message.

[xtrnaw7@t540p /var/tmp/jwm/scripts]$



cdpinfo example

[xtrnaw7@t540p /var/tmp/jwm/scripts]$ sudo ./cdpinfo -i enp0s25
No CDP packet - sorry
^C





cdpr


"cdpr is used to decode a Cisco Disovery Protocol (CDP) packet, by default it will report the device ID, the IP Address (of the device), and the port number that the machine is connected to. Optionally it will decode the entire CDP packet"

Please note that the Cisco Discovery Protocol is disabled in a lot of production sites and therefor cdpr can not do anything.

cdpr usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ cdpr -h
cdpr - Cisco Discovery Protocol Reporter
Version 2.4
Copyright (c) 2002-2010 - MonkeyMental.com

d: Specify device to use (eth0, hme0, etc.)
h: Print this usage
t: time in seconds to abort waiting for a packet (should be > 60)
v[vv]: Set verbose mode
r: read from file instead of network device

** Options dealing with server updates: **
 u: Send cdpr information to a cdpr server
    requires config file as arg
 l: Location/description of this port for use with -u or -s and -p
 n: Override the hostname reported to the server for use with -u or -s and -p
 s: Server to send information to specify port with a : after Server/IP
     Example: 192.168.1.20:88 (default: 80) requires -p (overridden by -u)
 p: Path of server script to send data to requires -s (overridden by -u)
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





checksec

"Checksec.sh is a bash script to check the properties of executables (like PIE, RELRO, PaX, Canaries, ASLR, Fortify Source). It has been originally written by Tobias Klein and the original source is available here: http://www.trapkit.de/tools/checksec.html"

"Modern Linux distributions offer some mitigation techniques to make it harder to exploit software vulnerabilities reliably. Mitigations such as RELRO, NoExecute (NX), Stack Canaries, Address Space Layout Randomization (ASLR) and Position Independent Executables (PIE) have made reliably exploiting any vulnerabilities that do exist far more challenging. The checksec.sh script is designed to test what standard Linux OS and PaX security features are being used."

see also http://blog.siphos.be/2011/07/high-level-explanation-on-some-binary-executable-security/


checksec usage
[xtrnaw7@t540p /var/tmp/jwm]$ scripts/checksec -h
Usage: checksec [--output {cli|csv|xml|json}] [OPTION]


Options:

  --file (-f) <executable-file>
  --dir (-d) <directory> [-v]
  --proc (-p) <process name>
  --proc-all (-pa)
  --proc-libs (-pl) <process ID>
  --kernel (-k) [kconfig]
  --fortify-file (-ff)<executable-file>
  --fortify-proc (-fp) <process ID>
  --version
  --help
  --update

For more information, see:
  http://github.com/slimm609/checksec.sh

[xtrnaw7@t540p /var/tmp/jwm]$


checksec example
[xtrnaw7@t540p /var/tmp/jwm]$ scripts/checksec --kernel
* Kernel protection information:

  Description - List the status of kernel protection mechanisms. Rather than
  inspect kernel mechanisms that may aid in the prevention of exploitation of
  userspace processes, this option lists the status of kernel configuration
  options that harden the kernel itself against attack.

  Kernel config:
/boot/config-4.18.19-100.fc27.x86_64

  Warning: The config on disk may not represent running kernel config!

  Vanilla Kernel ASLR:                    Full
  Protected symlinks:                     sysctl: permission denied on key 'fs.protected_symlinks'
Disabled
  Protected hardlinks:                    sysctl: permission denied on key 'fs.protected_hardlinks'
Disabled
  Ipv4 reverse path filtering:            Enabled
  Ipv6 reverse path filtering:            Disabled
  Kernel heap randomization:              Enabled
  GCC stack protector support:            Enabled
  SLAB freelist randomization:            Enabled
  Virtually-mapped kernel stack:          Enabled
  Restrict /dev/mem access:               Enabled
  Restrict I/O access to /dev/mem:        Enabled
  Enforce read-only kernel data:          Enabled
  Enforce read-only module data:          Enabled
  Exec Shield:                            Disabled

  Hardened Usercopy:                      Enabled
  Hardened Usercopy Pagespan:             Disabled
  Harden str/mem functions:               Enabled
  Restrict /dev/mem access:               Enabled
  Restrict I/O access to /dev/mem:        Enabled
  Restrict /dev/kmem access:              Enabled

* X86 only:           
  Address space layout randomization:     Enabled

* SELinux:                                Disabled

  SELinux infomation available here:
    http://selinuxproject.org/

* grsecurity / PaX:                       No GRKERNSEC

  The grsecurity / PaX patchset is available here:
    http://grsecurity.net/
[xtrnaw7@t540p /var/tmp/jwm]$
[xtrnaw7@t540p /var/tmp/jwm]$ scripts/checksec --file /bin/bash
RELRO           STACK CANARY      NX            PIE             RPATH      RUNPATH    Symbols        FORTIFY    Fortified    Fortifiable  FILE
Full RELRO      Canary found      NX enabled    PIE enabled     No RPATH   No RUNPATH   No Symbols      Yes    13        34    /bin/bash

[xtrnaw7@t540p /var/tmp/jwm]$





Note:
checksec.sh needs the binary readelf. The readelf binary is in the ./bin directory of JMW / Linux. The script needs bash v3.2 or newer.




collectl

collectl is a excellent general monitoring tool for Linux.

To use the additional moduls for collectl, collectl must be started from within the collectl directory. Therefor you should always use the script collectl in the script directory which is available via the PATH variable.

see also the examples on the collectl homepagehttp://collectl.sourceforge.net/Examples.html
and the collectl FAQ.

Short collectl usage
JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ collectl -h
This is a subset of the most common switches and even the descriptions are
abbreviated.  To see all type 'collectl -x', to get started just type 'collectl'

usage: collectl [switches]
  -c, --count      count      collect this number of samples and exit
  -f, --filename   file       name of directory/file to write to
  -i, --interval   int        collection interval in seconds [default=1]
  -o, --options    options    misc formatting options, --showoptions for all
                                d|D - include date in output
                                  T - include time in output
                                  z - turn off compression of plot files
  -p, --playback   file       playback results from 'file' (be sure to quote
                  if wild carded) or the shell might mess it up
  -P, --plot                  generate output in 'plot' format
  -s, --subsys     subsys     specify one or more subsystems [default=cdn]
      --verbose               display output in verbose format (automatically
                              selected when brief doesn't make sense)

Various types of help
  -h, --help                  print this text
  -v, --version               print version
  -V, --showdefs              print operational defaults
  -x, --helpextend            extended help, more details descriptions too
  -X, --helpall               shows all help concatenated together

  --showoptions               show all the options
  --showsubsys                show all the subsystems
  --showsubopts               show all subsystem specific options
  --showtopopts               show --top options

  --showheader                show file header that 'would be' generated
  --showcolheaders            show column headers that 'would be' generated
  --showslabaliases           for SLUB allocator, show non-root aliases
  --showrootslabs             same as --showslabaliases but use 'root' names

Copyright 2003-2016 Hewlett-Packard Development Company, L.P.
collectl may be copied only under the terms of either the Artistic License
or the GNU General Public License, which may be found in the source kit
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



Complete collectl usage
[JWM session] xtrnaw7@t61p Tue Oct 29 20:19:39 /var/tmp/jwm/scripts $ collectl --help
This is a subset of the most common switches and even the descriptions are
abbreviated.  To see all type 'collectl -x', to get started just type 'collectl'
usage: collectl [switches]
  -c, --count      count      collect this number of samples and exit
  -f, --filename   file       name of directory/file to write to
  -i, --interval   int        collection interval in seconds [default=1]
  -o, --options    options    misc formatting options, --showoptions for all
                                d|D - include date in output
                                  T - include time in output
                                  z - turn off compression of plot files
  -p, --playback   file       playback results from 'file' (be sure to quote
                  if wild carded) or the shell might mess it up
  -P, --plot                  generate output in 'plot' format
  -s, --subsys     subsys     specify one or more subsystems [default=cdn]
      --verbose               display output in verbose format (automatically
                              selected when brief doesn't make sense)

Various types of help
  -h, --help                  print this text
  -v, --version               print version
  -V, --showdefs              print operational defaults
  -x, --helpextend            extended help, more details descriptions too
  -X, --helpall               shows all help concatenated together

  --showoptions               show all the options
  --showsubsys                show all the subsystems
  --showsubopts               show all subsystem specific options
  --showtopopts               show --top options

  --showheader                show file header that 'would be' generated
  --showcolheaders            show column headers that 'would be' generated
  --showslabaliases           for SLUB allocator, show non-root aliases
  --showrootslabs             same as --showslabaliases but use 'root' names

Copyright 2003-2013 Hewlett-Packard Development Company, L.P.
collectl may be copied only under the terms of either the Artistic License
or the GNU General Public License, which may be found in the source kit


[JWM session] xtrnaw7@t61p Tue Oct 29 20:23:27 /var/tmp/jwm/scripts $ collectl --showoptions
Various combinations can be specified with -o or --options, both interactively
and in playback mode, in far too many combinations to describe.  In general if
they make sense together they probably work!

Date and Time
  d - preface output with 'mm/dd hh:mm:ss'
  D - preface outout with 'ddmmyyyy hh:mm:ss'
  T - preface output with time only
  U - preface output with UTC time
  m - when reporting times, include milli-secs

Numerical Formats
  g - include/substitute 'g' for decimal point for numbers > 1G
  G - include decimal point (when it will fit) for numbers > 1G

Exception Reporting
  x - report exceptions only (see man page)
  X - record all values + exceptions in plot format (see manpage)
 
Modify results before display (do NOT effect collection)
  n - do NOT normalize rates to units/second

Plot File Naming/Creation
  a - if plotfile exists, append [default=skip -p file]
  c - always create new plot file
  u - create unique plot file names - include time

Plot Data Format
  1 - plot format with 1 decimal place of precision
  2 - plot format with 2 decimal places of precision
  z - don't compress output file(s)

File Header Information
  i - include file header in output


JWM session] xtrnaw7@t61p Tue Oct 29 20:24:46 /var/tmp/jwm/scripts $ collectl --showsubsys
The following subsystems can be specified in any combinations with -s or
--subsys in both record and playbackmode.  [default=bcdfijlmnstx]

These generate summary, which is the total of ALL data for a particular type
  b - buddy info (memory fragmentation)
  c - cpu
  d - disk
  f - nfs
  i - inodes
  j - interrupts by CPU
  l - lustre
  m - memory
  n - network
  s - sockets
  t - tcp
  x - interconnect (currently supported: Infiniband and Quadrics)
  y - slabs
 
These generate detail data, typically but not limited to the device level

  C -  individual CPUs, including interrupts if -sj or -sJ
  D -  individual Disks
  E -  environmental (fan, power, temp) [requires ipmitool]
  F -  nfs data
  J -  interrupts by CPU by interrupt number
  L -  lustre
  M -  memory numa/node
  N -  individual Networks
  T -  tcp details (lots of data!)
  X -  interconnect ports/rails (Infiniband/Quadrics)
  Y -  slabs/slubs
  Z -  processes

An alternative format lets you add and/or subtract subsystems to the defaults by
immediately following -s with a + and/or -
  eg: -s+YZ-x adds slabs & processes and removes interconnet summary data
      -s-n removes network summary data
      -s-all removes ALL subsystems, something that can handy when playing back
             data collected with --import and you ONLY want to see that data

[JWM session] xtrnaw7@t61p Tue Oct 29 20:25:24 /var/tmp/jwm/scripts $ collectl --showsubopts
These options are all subsystem specific and all take one or more arguments.
Options typically effect the type of data collectl and filters effect the way
it is displayed.  In the case of lustre there are also 'services'

CPU
  --cpuopts
      z - do not show any detail lines which are ALL 0    

Disk
  --dskfilt perl-regx[,perl-regx...]
      this ONLY applies to disk stats output and not data collection
      only data for disk names that match the pattern(s) will be
      included in summary stats or displayed when details requested
      if you don't know perl, a partial string will usually work too
  --dskopts
      f - include fractions for some of the detail output columns
      i - include average i/o size in brief mode (as with --iosize)
      o - exclude unused devices from new headers and plot data
          see docs on disk monitoring for more detail
      z - do not show any detail lines which are ALL 0    
  --rawdskfilt
      this works like dskfilt except rather than being applied to the
      output it applies to the data collection.
  --rawdskignore
      this is the opposite if --rawdskfilt in that any disks matching this
      pattern will not have their statistics recorded as well as not being
      shown in any output

Environmental
  --envopts [def=fpt]  NOTE: these do not filter data on collection
      f - display fan data
      p - display power data
      t - display temperature data
      C - display temperature in celcius
      F - display temperature in fahrenheit
      M - display data on multiple lines (useful when too much data) 
      T - display all env data truncated to whole integers
    0-9 - use as ipmi device number

  --envfilt perl-regx
      during collection, this filter is applied to the data returned by
      ipmitool and only those lines that match are kept

  --envremap perl-regx...
      a list of regx expressions, comma separated, are applied to the
      final env names before reporting

  The following are for those needed to develop/debug remapping rules.
  See online documentation OR Ipmi.html in docs/
  --envrules  filename     file containin remapping rules
  --envdebug               show processing of ipmi data
  --envtest   filename     file containing extract of 'ipmitool -c sdr'

Interconnect
  --xopts
      i - include i/o sizes in brief mode
     
Interrupts
  --intfilt perl-regx
    like other filters, this filter only applies to display output
    and all interrupts will always be collected and available for
    playback

Lustre
  --lustopts
      B - only for OST's and clients, collect buffer/rpc stats
      D - collect lustre disk stats (HPSFS: MDS and OSS only)
      M - collect lustre client metadata
      O - collect lustre OST level stats (detail mode only and not MDS)
      R - collect lustre client readahead stats

  --lustsvc: force monitoring/reporting of these lustre services
      c - client
      m - mds
      o - oss
    NOTE - you can specify the service in either lower or upper case, in
    case other tools might care.  see the collectl documentation on lustre
    for details

Memory
  --memopts
      P - display physical portion of verbose display
      V - display virtual portion of verbose display
      p - display/record alloc/refill number of pages
      s - display/record steal/kswap/direct number of pages
      R - show changes in memory as rates, not instantaneous values

      note that including p or s will collect more data and will slightly increase in processing
      time.  if neither P or V are specified none of the basic memory stats will be displayed BUT
      they will be recorded making it possible to display later either by including P/V as an
      option OR leaving off both p and s.

Network
  --netfilt perl-regx[,perl-regx...]
      this ONLY applies to network stats output and not data collection
      only data for network names that match the pattern(s) will be
      included in summary stats or displayed when details requested
      if you don't know perl, a partial string will usually work too
  --netopts eEw99
      e - include errors in brief mode and explicit error types in
          verbose and detail formats
      E - only display intervals which have network errors in them
      i - include i/o sizes in brief mode
      o - exclude unused devices from new headers and plot data
          see docs on network monitoring for more detail
      w - sets minimal network name width in network stats output which
          can be useful for aligning output from multiple systems
  --rawnetfilt
      this works like netfilt except rather than being applied to the
      output it applies to the data collection.
  --rawnetignore
      this is the opposite of --rawnetfilt in that any networks matching this
      pattern will not have their statistics recorded as well as not being
      shown in any output

NFS
  --nfsfilt  TypeVer,...
      C - client
      S - server
      2 - V2
      3 - V3
      4 - V4
      By specifying a csv list, collectl will only collect/record the type
      of data indicated (eg c3,s3 indicates V3 clients/server data)
   --nfsopts
      z - do not show lines of 0 activity with -sF

Processes
   --procopts
      c - include cpu time of children who have exited (same as ps S switch)
      f - use cumulative totals for page faults in proc data instead of rates
      i - show io counters in display
      I - disable collection/display of I/O stats.  saves over 25% in data
          collection overhead
      k - remove known shells from process names
      m - show memory breakdown and faults in display
      p - never look for new pids or threads to match processing criteria
            This also improves performance!
      r - show root command name for a narrower display, can be combined with w
      R - show ALL process priorities ('RT' currently displayed if realtime)
      s - include process start times in hh:mm:ss format
      S - include process start times in mmmdd-hh:mm:ss format
      t - include ALL threads (can be a lot of overhead if many active threads)
      u - make username format 12 chars wide.  you can also set any arbitrary
          width of at least 8, eg u10
      w - make format wider by including entire process argument string
          you can also set a max number of chars, eg w32
      x - include extended process attributes (currently only for context switches)
      z - exclude any processes with 0 in sort field

   --procfilt: restricts which procs are listed, where 'procs' is of the
      Format: <type><match>[[,<type><match>],...], and valid types are any
      combinations of:
      c - any substring in command name
      C - command name starts with this string
      f - full path of command (including args) contains string
      p - pid
      P - parent pid
      u - any processes owned by this user's UID or in range xxx-yyy
      U - any processes owned by this user

      NOTE1:  if 'procs' is actually a filename, that file will be read and all
              lines concatenated together, comma separted, as if typed in as an
              argument of --procfilt.  Lines beginning with # will be ignored
              as comments and blank lines will be skipped.
      NOTE2:  if any type fields are immediatly followed by a plus sign, any
              threads associated with that process will also be reported.
              see man page for important restrictions

   --procstate  Only show processes in one or more of the following states
      D - waiting in uninterruptable disk sleep
      R - running
      S - sleeping in uninterruptable wait
      T - traced or stopped
      W - paging
      Z - zombie

Slab Options and Filters
   --slabopts
      s - only show slabs with non-zero allocations
      S - only show slabs that have changed since last interval

   --slabfilt: restricts which slabs are listed, where 'slab's is of the form:
               'slab[,slab...].  only slabs whose names start with this name
               will be included

TCP Stack Options - these DO effect data collection as well as printing
   --tcpfilt
      i - ip stats, no brief stats so selecting it alone will force --verbose
      t - tcp stats
      u - udp stats
      c - Icmp Stats
      I - ip extended stats
      T - tcp extended stats
 

[JWM session] xtrnaw7@t61p Tue Oct 29 20:25:27 /var/tmp/jwm/scripts $ collectl --showtopopts
The following is a list of --top's sort types which apply to either
process or slab data.  In some cases you may be allowed to sort
by a field that is not part of the display if you so desire

TOP PROCESS SORT FIELDS

Memory
  vsz    virtual memory
  rss    resident (physical) memory

Time
  syst   system time
  usrt   user time
  time   total time
  accum  accumulated time

I/O
  rkb    KB read
  wkb    KB written
  iokb   total I/O KB

  rkbc   KB read from pagecache
  wkbc   KB written to pagecache
  iokbc  total pagecacge I/O
  ioall  total I/O KB (iokb+iokbc)

  rsys   read system calls
  wsys   write system calls
  iosys  total system calls

  iocncl Cancelled write bytes

Page Faults
  majf   major page faults
  minf   minor page faults
  flt    total page faults

Context Switches
  vctx   volunary context switches
  nctx   non-voluntary context switches

Miscellaneous (best when used with --procfilt)
  cpu    cpu number
  pid    process pid
  thread total process threads (not counting main)

TOP SLAB SORT FIELDS

  numobj    total number of slab objects
  actobj    active slab objects
  objsize   sizes of slab objects
  numslab   number of slabs
  objslab   number of objects in a slab
  totsize   total memory sizes taken by slabs
  totchg    change in memory sizes
  totpct    percent change in memory sizes
  name      slab names




collectl - List detailed output


To view more detailed fields use the switch --verbose, e.g:

JWM session] xtrnaw7@t61p Tue Oct 29 20:16:39 /var/tmp/jwm/scripts $ collectl -sn  -oT
monospace;"> waiting for 1 second sample...
#         <----------Network---------->
#Time       KBIn  PktIn  KBOut  PktOut
20:17:22       0      1      0       0
20:17:23       0      0      0       0
20:17:24       0      1      0       0
Ouch!

[JWM session] xtrnaw7@t61p Tue Oct 29 20:17:24 /var/tmp/jwm/scripts $ collectl -sn  --verbose -oT
waiting for 1 second sample...

# NETWORK SUMMARY (/sec)
#Time      KBIn  PktIn SizeIn  MultI   CmpI  ErrsI  KBOut PktOut  SizeO   CmpO  ErrsO
20:17:31      0      0      0      0      0      0      0      0      0      0      0
20:17:32      0      1     60      0      0      0      0      0      0      0      0
20:17:33      0      0      0      0      0      0      0      0      0      0      0
20:17:34      0      1     60      0      0      0      0      0      0      0      0
20:17:35      0      0      0      0      0      0      0      0      0      0      0




collectl - List processes in tree view


To view processes in a tree view use the switch --export proctree, e.g.

collectl --top  --export proctree

Process Tree 01:00:00 [skip when 'time'<=0 is 'on' aggr: 'on' x1024: 'off' depth 5]
#  PID       PPID User     PR S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
00001           0 root     20 S   23G    1G  1  0.03  0.08  11  02:07.44    0    0    0    7 /sbin/init
 01964          1 root     20 S    9G  497M  0  0.03  0.08  11  01:39.73    0    0    0    7  /usr/sbin/mdm
  01979      1964 root     20 S    9G  495M  1  0.03  0.08  11  01:39.73    0    0    0    7   /usr/sbin/mdm
   01992     1979 root     20 S  170M   60M  1  0.01  0.00   1  00:26.55    0    0    0    0    /usr/bin/X
   02407     1979 xtrnaw7  20 S    9G  431M  1  0.02  0.08  10  01:13.17    0    0    0    7    gnome-session
    02804    2407 xtrnaw7  20 S    3G  264M  0  0.02  0.08  10  01:06.44    0    0    0    7     /usr/bin/cinnamon
00002           0 root     20 S     0     0  1  0.01  0.00   1  00:07.16    0    0    0    0 kthreadd
 00181          2 root     20 S     0     0  1  0.01  0.00   1  00:01.77    0    0    0    0  kworker/1:2
monospace;"> Ouch!




collectl - View process I/O

To view process I/O use this parameter:

[JWM session] xtrnaw7@t61p Tue Oct 29 20:34:03 /var/tmp/jwm/scripts $  collectl -sZ  -i:1 |more
waiting for 1 second sample...

### RECORD    1 >>> t61p <<< (1383075264.001) (Tue Oct 29 20:34:24 2013) ###

# PROCESS SUMMARY (counters are /sec)
monospace;"> # PID  User     PR  PPID THRD S   VSZ   RSS CP  SysT  UsrT Pct  AccuTime  RKB  WKB MajF MinF Command
    1  root     20     0    0 S   24M    2M  1  0.00  0.00   0  00:00.44    0    0    0    0 /sbin/init
    2  root     20     0    0 S     0     0  1  0.00  0.00   0  00:00.00    0    0    0    0 kthreadd
    3  root     20     2    0 S     0     0  0  0.00  0.00   0  00:00.67    0    0    0    0 ksoftirqd/0
    6  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:01.59    0    0    0    0 migration/0
    7  root     RT     2    0 S     0     0  0  0.00  0.00   0  00:00.03    0    0    0    0 watchdog/0
    8  root     RT     2    0 S     0     0  1  0.00  0.00   0  00:00.36    0    0    0    0 migration/1


The columns RKB and WKB list the kilobytes read and written by the processes.



collectl - View with timestamps


To add a timestamp to the output lines use

[JWM session] xtrnaw7@t61p Tue Oct 29 20:40:40 /var/tmp/jwm/scripts $ collectl --procopts i   -oT
waiting for 1 second sample...
#         <--------CPU--------><----------Disks-----------><----------Network---------->
#Time     cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut
20:40:43    3   1   252    486      0      0      0      0      0      0      0       0
20:40:44    4   1   287    658      0      0      0      0      0      1      0       0
20:40:45    3   1   262    556      0      0     56      6      0      0      0       0
20:40:46    4   1   296    576      0      0    192      3      0      1      0       0
Ouch!



To add a timestamp in milli seconds to the output lines use

[JWM session] xtrnaw7@t61p Tue Oct 29 20:40:46 /var/tmp/jwm/scripts $ collectl --procopts i   -oTm
waiting for 1 second sample...
#             <--------CPU--------><----------Disks-----------><----------Network---------->
#Time         cpu sys inter  ctxsw KBRead  Reads KBWrit Writes   KBIn  PktIn  KBOut  PktOut
20:40:51.001   12   8   402    998      0      0      8      2      0      0      0       0
20:40:52.001    5   2   326    720      0      0      0      0      0      1      0       0
20:40:53.001    6   4   299    652      0      0      0      0      0      1      0       2
Ouch!




CPUHog


CPUhog is a small Java program to use all CPU resources .


CPUhog usage
[xtrnaw7@t540p /data/download]$ java -jar CPUhog.jar  -h
 Usage:
 java -jar CPUhog <options>

 The options can be specified in any order and later ones override earlier ones.
 Available options are
 -t nnn   Start load nnn threads (default 10).  Typically the main program
          runs in the initial thread and it starts a monitoring thread as
          well as the specified number of load threads.  You may see additional
          threads created by the JVM for system use.

 -s nnn   The size of the vector used during the convolution (default 100).
          Note that doubling the number coefficients will
          appoximately increase the load execution time by 4.

 -a       Permit the application to adjust the vector size automatically.
          Initially this will reduce the size when out of memory errors start to
          occur.  During adjustment the load may fluctuate.  Currently the
          size is not adjusted upwards so the -d option can be used to set an
          upper value.

 -w nnn   The amount of time (ms) to wait between log line outputs.

 -sn      No statistics.
 -sa      All statistics
 -sc      Compilation information
 -so      Operating system information.  This is the only section output by default.
 -sr      Runtime information (includes all java system properties)
 -st      Thread information
 -sm      Memory information
 -sp      Memory pool information

 -c nnn   The target percentage of total CPU to use (integer - default 100).
          A delay within each load thread will be adjusted to bring the aggregate
          load on the system to the specified percentage. The granularity that
          the application can achieve will be determined by the size of load
          and the speed of CPU.  This also relies on the JVM / OS to spread the
          total load evenly (although this may be what you are testing!)

 -q       Supress logging information.


[xtrnaw7@t540p /data/download]$




CPUhog example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$  bin1/CPUhog.sh
Operating System Information
OS name: Linux
OS version: 4.7.7-100.fc23.x86_64
Architecture: amd64
Available processors: 8

Hogging all the CPU with 10 java threads
doing 10x10 matrix arithmetic.

Time /s Threads CPUs   Free KBs  Total KBs    Max KBs  %CPU User %CPU Total %CPU / CPU LoopTime/s Ld Wait/ms mSize
  0.000      10    8     232775     241664    3557376      0.000      0.000      0.000 -1.000e-09          0    10

All threads started.
  2.005      15    8     223886     241664    3557376    782.629    786.077     98.260  3.192e-04          0    10
  4.007      15    8     223886     241664    3557376    779.734    780.817     97.602  2.601e-04          0    10
  6.009      15    8     223886     241664    3557376    784.251    783.921     97.990  3.297e-04          0    10
  8.011      15    8     223886     241664    3557376    787.799    787.870     98.484  2.610e-04          0    10
 10.013      15    8     223886     241664    3557376    780.233    780.892     97.611  3.138e-04          0    10
 12.015      15    8     223886     241664    3557376    791.424    790.783     98.848  3.337e-04          0    10
 14.017      15    8     223886     241664    3557376    788.900    788.183     98.523  3.173e-04          0    10
 16.018      15    8     223886     241664    3557376    788.500    789.356     98.669  3.610e-04          0    10
 18.021      15    8     223886     241664    3557376    792.436    792.113     99.014  2.900e-04          0    10
 20.023      15    8     223886     241664    3557376    789.072    789.279     98.660  3.446e-04          0    10
 22.025      15    8     223886     241664    3557376    789.872    790.447     98.806  3.025e-04          0    10
 24.026      15    8     223886     241664    3557376    793.408    793.212     99.152  2.974e-04          0    10
 26.028      15    8     223886     241664    3557376    790.376    790.354     98.794  3.197e-04          0    10
 28.029      15    8     223886     241664    3557376    788.936    789.481     98.685  3.409e-04          0    10
 30.031      15    8     223886     241664    3557376    786.201    786.107     98.263  3.156e-04          0    10
 32.033      15    8     223886     241664    3557376    792.136    792.731     99.091  2.965e-04          0    10
 34.035      15    8     223886     241664    3557376    790.356    790.693     98.837  3.202e-04          0    10
 36.037      15    8     223886     241664    3557376    789.868    789.714     98.714  3.248e-04          0    10
 38.038      15    8     223886     241664    3557376    785.974    787.033     98.379  2.744e-04          0    10
Time /s Threads CPUs   Free KBs  Total KBs    Max KBs  %CPU User %CPU Total %CPU / CPU LoopTime/s Ld Wait/ms mSize
 40.041      15    8     223886     241664    3557376    789.479    788.058     98.507  3.293e-04          0    10
 42.042      15    8     223886     241664    3557376    782.507    783.508     97.938  1.827e-04          0    10
 44.044      15    8     223886     241664    3557376    792.222    793.141     99.143  3.322e-04          0    10
 46.045      15    8     223886     241664    3557376    792.163    790.496     98.812  3.126e-04          0    10
 48.046      15    8     223886     241664    3557376    788.175    789.011     98.626  3.265e-04          0    10
 50.047      15    8     223886     241664    3557376    794.052    793.869     99.234  3.083e-04          0    10
 52.049      15    8     223886     241664    3557376    793.178    793.641     99.205  2.995e-04          0    10
 54.050      15    8     223886     241664    3557376    774.625    774.294     96.787  3.467e-04          0    10
 56.051      15    8     223886     241664    3557376    780.368    780.860     97.607  2.354e-04          0    10











cpumon

cpumon monitors CPU activity of a multi-core machine. This tools provides effective load report useful for debugging real-time software on standard Linux operating system.


cpumon usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ cpumon -h
usage: cpumon [-c int] [-f str] [-h] [-k int] [-m int] [-s int] [-t int] [-v int] [-V]
 -c int: force calibration (1), need root
 -f str: calibration file (/var/lib/cpumon/calibration.txt)
 -h    : help message
 -k int: cpu id for calibration, -1 means last core (-1)
 -m int: cpu id for monitoring, -1 means last core (0)
 -s int: number of second before stopping, -1 means infinity (-1)
 -t int: timer period (5)
 -v int: verbose level (1)
 -V    : show version
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




cpumon example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo cpumon
sudo: cpumon: command not found
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo bin/cpumon
can't read calibration file (/var/lib/cpumon/calibration.txt)
runnning calibration on cpu 7
calibration max loops: 47994
cpu speed is changing from -0.000 to 2.794
cpu:  34.5% +  35.4% +  46.2% +  39.0% +  38.1% +  33.1% +  35.5% +  36.2% =  297.9%
cpu:  32.4% +  35.6% +  43.7% +  35.5% +  32.6% +  32.7% +  32.9% +  32.8% =  278.0%
cpu:  36.0% +  32.0% +  47.2% +  36.7% +  32.4% +  32.8% +  33.9% +  33.1% =  283.9%
cpu:  43.9% +  42.4% +  43.8% +  29.9% +  33.6% +  32.4% +  34.4% +  32.9% =  293.1%





cpustat


"cpustat periodically dumps out the current CPU utilisation statistics of running processes. cpustat has been optimised to have a minimal CPU overhead and typically uses about 35% of the CPU compared to top. cpustat also includes some simple statistical analysis options that can help characterise the way CPUs are being loaded."


cpustat usage

[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/cpustat  -h
cpustat, version 0.02.11

Usage: cpustat [options] [duration] [count]
 -h help
 -a calculate CPU utilisation based on all the CPU ticks
    rather than per CPU tick
 -c get command name from processes comm field
 -d strip directory basename off command information
 -D show distribution of CPU utilisation stats at end
 -g show grand total of CPU utilisation stats at end
 -i ignore cpustat in the statistics
 -l show long (full) command information
 -n specifies number of tasks to display
 -p just show utilisation for a specified PID
 -q run quietly, useful with option -r
 -r specifies a comma separated values output file to dump
    samples into
 -s show short command information
 -S timestamp output
 -t specifies a task tick count threshold where samples less
    than this are ignored
 -T show total CPU utilisation statistics
 -x show extra stats (load average, avg cpu freq, etc)
 -X top-like curses based display mode
[xtrnaw7@t540p /var/tmp/jwm/src]$



cpustat example
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/cpustat -c -d -D -g -n 20
  %CPU   %USR   %SYS     PID S  CPU    Time Task
 15.69   0.98  14.71    9982 S    1   8.11h VirtualBoxVM
  5.88   1.96   3.92  107641 S    3   2.21h VirtualBoxVM
  3.92   0.00   3.92  107700 S    6   2.25h VirtualBoxVM
  3.92   3.92   0.00   11184 S    4   2.27h slimjet
  3.92   3.92   0.00   11322 S    0   1.05h slimjet
  2.94   1.96   0.98  262429 S    6  20.49m seamonkey
  1.96   0.98   0.98    9954 S    5  15.46m VBoxSVC
  1.96   0.98   0.98    9267 S    1  18.08m pulseaudio
  1.96   1.96   0.00   11076 S    6  41.00m slimjet
  1.96   0.98   0.98  105632 S    4  12.19m Telegram
  1.96   0.98   0.98    9670 S    0  18.13m mate-cpufreq-ap
  1.96   0.98   0.98   13996 S    1   1.04h java
  1.96   1.96   0.00   11158 S    5   1.05h slimjet
  1.96   1.96   0.00    2679 S    3  49.22m Xorg
  0.98   0.00   0.98    9599 S    0  10.36m top
  0.98   0.98   0.00   18661 S    0   1.22m Privileged Cont
  0.98   0.98   0.00   11197 S    6  25.11m slimjet
  0.98   0.00   0.98    9948 S    5   5.46m VBoxXPCOMIPCD
  0.98   0.00   0.98   14051 S    3   8.50m java
  0.98   0.98   0.00    9381 S    3   1.47m mate-terminal

  %CPU   %USR   %SYS     PID S  CPU    Time Task
 17.17   0.00  17.17    9982 S    1   8.11h VirtualBoxVM
  8.08   2.02   6.06  107641 S    3   2.21h VirtualBoxVM
  5.05   2.02   3.03  107700 S    6   2.25h VirtualBoxVM
  5.05   4.04   1.01   11184 S    4   2.27h slimjet
  5.05   3.03   2.02   11322 S    0   1.05h slimjet
  3.03   3.03   0.00   11158 S    5   1.05h slimjet
  2.02   1.01   1.01   11076 S    6  41.00m slimjet
  2.02   2.02   0.00   11009 S    2  41.42m slimjet
  2.02   2.02   0.00   13996 S    1   1.04h java
  2.02   1.01   1.01    2679 S    3  49.22m Xorg
  1.01   1.01   0.00   11485 S    7   7.12m slimjet
  1.01   0.00   1.01   11197 S    6  25.11m slimjet
  1.01   1.01   0.00   12468 S    6  36.72s slimjet
  1.01   1.01   0.00  262429 S    6  20.49m seamonkey
  1.01   0.00   1.01  368505 R    6   0.02s cpustat
  1.01   1.01   0.00  106032 S    3   5.19m slimjet
  1.01   1.01   0.00   10578 S    0   3.07m Web Content

  %CPU   %USR   %SYS     PID S  CPU    Time Task
 17.00   1.00  16.00    9982 S    1   8.11h VirtualBoxVM
  6.00   1.00   5.00  107700 S    6   2.25h VirtualBoxVM
  6.00   6.00   0.00  366129 S    6   8.96s slimjet
  5.00   5.00   0.00   11485 S    7   7.12m slimjet
  5.00   3.00   2.00  107641 S    3   2.21h VirtualBoxVM
  4.00   4.00   0.00   11322 S    0   1.05h slimjet
  3.00   3.00   0.00   11184 S    4   2.27h slimjet
  3.00   2.00   1.00   11486 S    4   7.06m slimjet
  3.00   2.00   1.00   13996 S    1   1.04h java
  3.00   3.00   0.00   11158 S    5   1.05h slimjet
  2.00   1.00   1.00   11633 S    5   1.30m slimjet
  2.00   1.00   1.00    9954 S    5  15.46m VBoxSVC
  2.00   2.00   0.00   11076 S    6  41.00m slimjet
  2.00   1.00   1.00  105632 S    4  12.19m Telegram
  2.00   1.00   1.00  368505 R    6   0.04s cpustat
  1.00   1.00   0.00   11467 S    4   7.31m slimjet
  1.00   1.00   0.00   11483 S    0   7.09m slimjet
  1.00   1.00   0.00   11197 S    6  25.11m slimjet
  1.00   1.00   0.00   10656 S    0   2.05m Web Content
  1.00   0.00   1.00    9267 S    1  18.08m pulseaudio

  %CPU   %USR   %SYS     PID S  CPU    Time Task
 15.84   0.99  14.85    9982 S    1   8.11h VirtualBoxVM
  5.94   1.98   3.96  107641 S    3   2.21h VirtualBoxVM
  4.95   0.99   3.96  107700 S    6   2.25h VirtualBoxVM
  4.95   2.97   1.98   11322 S    0   1.05h slimjet
  3.96   3.96   0.00   11184 S    4   2.27h slimjet
  2.97   2.97   0.00   11158 S    5   1.05h slimjet
  2.97   1.98   0.99    2679 S    3  49.22m Xorg
  1.98   0.99   0.99    9599 S    0  10.36m top
  1.98   0.99   0.99   11076 S    6  41.00m slimjet
  1.98   0.99   0.99  262429 S    6  20.49m seamonkey
  1.98   0.99   0.99   11009 S    2  41.42m slimjet
  1.98   0.99   0.99   13996 S    1   1.04h java
  0.99   0.99   0.00   11485 S    7   7.12m slimjet
  0.99   0.99   0.00   11483 S    0   7.09m slimjet
  0.99   0.99   0.00   11197 S    6  25.11m slimjet
  0.99   0.99   0.00  105632 S    4  12.19m Telegram
  0.99   0.99   0.00  107380 S    2   1.03m mate-terminal
  0.99   0.99   0.00    9670 S    0  18.13m mate-cpufreq-ap
  0.99   0.99   0.00  366129 S    6   8.97s slimjet
  0.99   0.00   0.99  368505 R    6   0.05s cpustat

^C  %CPU   %USR   %SYS     PID S  CPU    Time Task
 16.13   9.68   6.45    9982 S    1   8.11h VirtualBoxVM
  6.45   4.84   1.61   11322 S    0   1.05h slimjet
  6.45   3.23   3.23  107641 S    3   2.21h VirtualBoxVM
  4.84   4.84   0.00  262429 S    6  20.49m seamonkey
  3.23   1.61   1.61  107700 S    6   2.25h VirtualBoxVM
  3.23   3.23   0.00   11184 S    4   2.27h slimjet
  3.23   1.61   1.61  107380 S    2   1.03m mate-terminal
  3.23   1.61   1.61    2679 S    3  49.22m Xorg
  1.61   1.61   0.00   11467 S    4   7.31m slimjet
  1.61   0.00   1.61   14051 S    3   8.50m java
  1.61   1.61   0.00   11076 S    6  41.00m slimjet
  1.61   0.00   1.61  105632 S    4  12.19m Telegram
  1.61   1.61   0.00    9670 S    0  18.13m mate-cpufreq-ap
  1.61   1.61   0.00    9462 S    7   6.56s goa-identity-se
  1.61   1.61   0.00   12635 S    7  13.22m slimjet
  1.61   1.61   0.00    2519 S    3  10.22m teamviewerd
  1.61   0.00   1.61  368505 R    6   0.06s cpustat
  1.61   1.61   0.00   13996 S    1   1.04h java
  1.61   1.61   0.00   11158 S    5   1.05h slimjet

Grand Total (from 5 samples, 4.6 seconds):
  %CPU   %USR   %SYS     PID S  CPU    Time Task
 16.38   1.94  14.44    9982 S    1   8.11h VirtualBoxVM
  6.25   2.37   3.88  107641 S    3   2.21h VirtualBoxVM
  4.74   1.08   3.66  107700 S    6   2.25h VirtualBoxVM
  4.74   3.66   1.08   11322 S    0   1.05h slimjet
  3.88   3.66   0.22   11184 S    4   2.27h slimjet
  2.59   2.59   0.00   11158 S    5   1.05h slimjet
  2.16   1.72   0.43  262429 S    6  20.49m seamonkey
  2.16   1.51   0.65   13996 S    1   1.04h java
  2.16   1.51   0.65    2679 S    3  49.22m Xorg
  1.94   1.51   0.43   11076 S    6  41.00m slimjet
  1.72   1.72   0.00  366129 S    6   8.97s slimjet
  1.51   1.51   0.00   11485 S    7   7.12m slimjet
  1.29   0.65   0.65  105632 S    4  12.19m Telegram
  1.08   0.22   0.86  368505 R    6   0.06s cpustat
  1.08   0.86   0.22  107380 S    2   1.03m mate-terminal
  1.08   0.86   0.22   11009 S    2  41.42m slimjet
  0.86   0.65   0.22   11197 S    6  25.11m slimjet
  0.86   0.43   0.43    9954 S    5  15.46m VBoxSVC
  0.86   0.65   0.22    9670 S    0  18.13m mate-cpufreq-ap
  0.65   0.43   0.22   11486 S    4   7.06m slimjet
  0.65   0.22   0.43    9599 S    0  10.36m top
  0.65   0.22   0.43    9267 S    1  18.08m pulseaudio
  0.65   0.43   0.22    9262 S    7  14.43m marco
  0.43   0.00   0.43   14051 S    3   8.50m java
  0.43   0.22   0.22   11633 S    5   1.30m slimjet
  0.43   0.43   0.00   11483 S    0   7.09m slimjet
  0.43   0.43   0.00   11467 S    4   7.31m slimjet
  0.43   0.43   0.00   11262 S    0   6.26m slimjet
  0.43   0.43   0.00   11081 S    5  15.46m slimjet
  0.43   0.22   0.22    2519 S    3  10.22m teamviewerd
  0.22   0.22   0.00  262070 S    4  22.99s slimjet
  0.22   0.22   0.00  106032 S    3   5.19m slimjet
  0.22   0.22   0.00   18661 S    0   1.22m Privileged Cont
  0.22   0.22   0.00   12635 S    7  13.22m slimjet
  0.22   0.22   0.00   12468 S    6  36.72s slimjet
  0.22   0.22   0.00   10656 S    0   2.05m Web Content
  0.22   0.22   0.00   10630 S    3   1.30m Web Content
  0.22   0.22   0.00   10578 S    0   3.07m Web Content
  0.22   0.00   0.22    9948 S    5   5.46m VBoxXPCOMIPCD
  0.22   0.22   0.00    9462 S    7   6.56s goa-identity-se
  0.22   0.22   0.00    9381 S    3   1.47m mate-terminal
  0.22   0.00   0.22    1737 S    6   5.57s php-fpm

Distribution of CPU utilisation (per Task):
% CPU Utilisation   Count   (%)
  0.00 -   1.37      1921  97.02
  1.37 -   2.74         0   0.00
  2.74 -   4.11        35   1.77
  4.11 -   5.48         0   0.00
  5.48 -   6.85         7   0.35
  6.85 -   8.22         7   0.35
  8.23 -   9.60         4   0.20
  9.60 -  10.97         0   0.00
 10.97 -  12.34         1   0.05
 12.34 -  13.71         0   0.00
 13.71 -  15.08         0   0.00
 15.08 -  16.45         1   0.05
 16.45 -  17.82         0   0.00
 17.82 -  19.19         0   0.00
 19.19 -  20.56         0   0.00
 20.56 -  21.93         0   0.00
 21.94 -  23.31         0   0.00
 23.31 -  24.68         0   0.00
 24.68 -  26.05         2   0.10
 26.05 -  27.42         2   0.10

Distribution of CPU utilisation (per CPU):
 CPU#   USR%   SYS%
    0   6.03   1.72
    1   3.66  15.52
    2   1.72   0.43
    3   4.74   5.17
    4   5.39   1.08
    5   3.66   0.86
    6   7.11   5.82
    7   2.37   0.22
[xtrnaw7@t540p /var/tmp/jwm/src]$
 




darkstat

darkstat captures network traffic, calculates statistics about usage, and serves reports over HTTP.

darkstat usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ darkstat --help
darkstat 3.0.719 (using libpcap version 1.0.0)

usage: darkstat [ -i interface ]
[ -f filter ]
[ -r capfile ]
[ -p port ]
[ -b bindaddr ]
[ -l network/netmask ]
[ --base path ]
[ --local-only ]
[ --snaplen bytes ]
[ --pppoe ]
[ --syslog ]
[ --verbose ]
[ --no-daemon ]
[ --no-promisc ]
[ --no-dns ]
[ --no-macs ]
[ --no-lastseen ]
[ --chroot dir ]
[ --user username ]
[ --daylog filename ]
[ --import filename ]
[ --export filename ]
[ --pidfile filename ]
[ --hosts-max count ]
[ --hosts-keep count ]
[ --ports-max count ]
[ --ports-keep count ]
[ --highest-port port ]
[ --wait secs ]
[ --hexdump ]
[ --version ]
[ --help ]

Please refer to the darkstat(8) manual page for further
documentation and usage examples.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



To use it start it with for example

sudo darkstat -i eth0 -p 9999

Then use a Webbrowser with the URL  <hostname:9999> to monitor the network traffic, e.g.





Note:

To save the captured output also in a file use the start parameter:

      --chroot <outputdir> --export <outputfile> --user <run_user>

e.g.

      --chroot /var/tmp/jwm/data --export darkstat.data --user xtrnaw7

The user <run_user> must have write access to the directory <outputdir>

You may use darkstat.sh to start or stop the darkstat daemon.

Usage examples from the darkstat manpage

USAGE EXAMPLES
       To gather statistics on the fxp0 interface:

              darkstat -i fxp0

       We want to account for traffic on the Internet-facing interface, but only serve web pages to our private local network where we have the IP address 192.168.0.1:

              darkstat -i fxp0 -b 192.168.0.1

       We want to serve web pages on the standard HTTP port:

              darkstat -i fxp0 -p 80

       We are on Optus (cable) and don't want to account for the constant ARP traffic we are receiving:

              darkstat -i fxp0 -f "not arp"

       We only want to account for SSH traffic:

              darkstat -i fxp0 -f "port 22"

       We don't want to account for traffic between internal IPs:

              darkstat -i fxp0 -f "not (src net 192.168.0 and dst net 192.168.0)"

       (For a full reference on filter syntax, refer to the tcpdump(1) manpage)

       We have a network consisting of a gateway server (192.168.1.1) and a few workstations (192.168.1.2, 192.168.1.3, etc.) and we want to graph all traffic entering and leaving the local  net‐
       work, not just the gateway server (which is running darkstat):

              darkstat -i fxp0 -l 192.168.1.0/255.255.255.0

       On some systems, we can't capture on a "decoded" interface but only on nas0 which returns PPPoE encapsulated packets.  Do PPPoE decoding, and override the local IP manually since it cannot
       be automatically detected.  Note the /32 netmask:

              darkstat -i nas0 --pppoe -l 192.168.1.1/255.255.255.255




darkstat.sh

darkstat.sh is a script to start or stop the darkstat daemon

The current version of the script is always available here.

darkstat.sh usage
The usage of the script is:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh --help
[25.10.2016 18:40 ] ### darkstat.sh started at Tue Oct 25 18:40:31 CEST 2016
 darkstat.sh

 Function: start or stop darkstat
 
 Usage:    darkstat.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-p|--port darkstat_port] [-i|--interface interface] [-d|--datadir|--chroot datadirectory]
                       [start [darkstat_options]|stop|restart [darkstat_options]|status|daemon_help]

 Parameter
   -v - verbose mode
   -q - quiet mode
   -f - force execution
   -p - port for darkstat (default: 667)
   -i - interface, default: interface used for the first default route in the output of "netstat -rn"
   -d - data directory for darkstat, default: /tmp or ${JWM_DIR}/data/darkstat if JWM_DIR is set

   darkstat_options - additional options for starting the darkstat
   daemon_help - list the usage help for the darkstat daemon

 To save the output also in a file use the start parameter:
      --chroot <outputdir> --export <outputfile> --user <run_user>
  e.g.
      --chroot /var/tmp/jwm/data --export darkstat.data --user xtrnaw7

  The user <run_user> must have write access to the directory <outputdir>

  The script searches the darkstat binary in these directories:
    - the current working directory
    - the directory with this script
    - the directory ${JWM_DIR}/sbin
    - the directory ${PWD}/../sbin

 Author:
   Bernd Schemmer (Bernd.Schemmer@gmx.de)

[25.10.2016 18:40 ] ### darkstat.sh ended at Tue Oct 25 18:40:31 CEST 2016



darkstat.sh examples
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh status
[25.10.2016 18:40 ] ### darkstat.sh started at Tue Oct 25 18:40:54 CEST 2016
[25.10.2016 18:40 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:40 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:40 ] The interface used by darkstart is enp0s25
[25.10.2016 18:40 ] The data directory used by darkstat is /tmp
[25.10.2016 18:40 ] The darkstat daemon is NOT running (well, it may be running but it was not started by this script)
[25.10.2016 18:40 ] ### darkstat.sh ended at Tue Oct 25 18:40:54 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh start
[25.10.2016 18:41 ] ### darkstat.sh started at Tue Oct 25 18:41:01 CEST 2016
[25.10.2016 18:41 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:41 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:41 ] The interface used by darkstart is enp0s25
[25.10.2016 18:41 ] The data directory used by darkstat is /tmp
[25.10.2016 18:41 ] Starting the darkstat daemon ...
[25.10.2016 18:41 ] The port to use for the darkstat daemon is 667
+ ./sbin/darkstat -p 667 -i enp0s25 --chroot /tmp --pidfile darkstat.667_enp0s25.pid
+ 2>& 1

[25.10.2016 18:41 ] darkstat daemon started; the PID is 31824
[25.10.2016 18:41 ] Use http://localhost:667 or http://t540p:667 to access darkstat in your Webbrowser
[25.10.2016 18:41 ] ### darkstat.sh ended at Tue Oct 25 18:41:01 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh status
[25.10.2016 18:41 ] ### darkstat.sh started at Tue Oct 25 18:41:07 CEST 2016
[25.10.2016 18:41 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:41 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:41 ] The interface used by darkstart is enp0s25
[25.10.2016 18:41 ] The data directory used by darkstat is /tmp
[25.10.2016 18:41 ] The darkstat daemon is running; the PID is 31824

UID        PID  PPID  C STIME TTY          TIME CMD
nobody   31824     1  0 18:41 ?        00:00:00 ./sbin/darkstat -p 667 -i enp0s25 --chroot /tmp --pidfile darkstat.667_enp0s25.pid

[25.10.2016 18:41 ] The darkstat daemon is listening on these ports:

tcp        0      0 0.0.0.0:667             0.0.0.0:*               LISTEN      31824/./sbin/darkst
tcp6       0      0 :::667                  :::*                    LISTEN      31824/./sbin/darkst

[25.10.2016 18:41 ] ### darkstat.sh ended at Tue Oct 25 18:41:07 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh stop
[25.10.2016 18:41 ] ### darkstat.sh started at Tue Oct 25 18:41:10 CEST 2016
[25.10.2016 18:41 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:41 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:41 ] The interface used by darkstart is enp0s25
[25.10.2016 18:41 ] The data directory used by darkstat is /tmp
[25.10.2016 18:41 ] The darkstat daemon is running; the PID is 31824
[25.10.2016 18:41 ] Stopping the darkstat daemon ...
[25.10.2016 18:41 ] ### darkstat.sh ended at Tue Oct 25 18:41:11 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh status
[25.10.2016 18:41 ] ### darkstat.sh started at Tue Oct 25 18:41:14 CEST 2016
[25.10.2016 18:41 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:41 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:41 ] The interface used by darkstart is enp0s25
[25.10.2016 18:41 ] The data directory used by darkstat is /tmp
[25.10.2016 18:41 ] The darkstat daemon is NOT running (well, it may be running but it was not started by this script)
[25.10.2016 18:41 ] ### darkstat.sh ended at Tue Oct 25 18:41:14 CEST 2016


Start darkstat and save the captured data to a file:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh start --export darkstat.data --user xtrnaw7
[25.10.2016 18:45 ] ### darkstat.sh started at Tue Oct 25 18:45:16 CEST 2016
[25.10.2016 18:45 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:45 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:45 ] The interface used by darkstart is enp0s25
[25.10.2016 18:45 ] The data directory used by darkstat is /tmp
[25.10.2016 18:45 ] Starting the darkstat daemon ...
[25.10.2016 18:45 ] The port to use for the darkstat daemon is 667
[25.10.2016 18:45 ] The additional options to use for the darkstat daemon are "--export darkstat.data --user xtrnaw7"
+ ./sbin/darkstat -p 667 -i enp0s25 --chroot /tmp --pidfile darkstat.667_enp0s25.pid --export darkstat.data --user xtrnaw7
+ 2>& 1

[25.10.2016 18:45 ] darkstat daemon started; the PID is 32261
[25.10.2016 18:45 ] Use http://localhost:667 or http://t540p:667 to access darkstat in your Webbrowser
[25.10.2016 18:45 ] ### darkstat.sh ended at Tue Oct 25 18:45:17 CEST 2016


[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh stop
[25.10.2016 18:45 ] ### darkstat.sh started at Tue Oct 25 18:45:36 CEST 2016
[25.10.2016 18:45 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:45 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:45 ] The interface used by darkstart is enp0s25
[25.10.2016 18:45 ] The data directory used by darkstat is /tmp
[25.10.2016 18:45 ] The darkstat daemon is running; the PID is 32261
[25.10.2016 18:45 ] Stopping the darkstat daemon ...
[25.10.2016 18:45 ] ### darkstat.sh ended at Tue Oct 25 18:45:37 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ ls -l /tmp/darkstat.data
-rw------- 1 xtrnaw7 xtrnaw7 3402 Oct 25 18:45 /tmp/darkstat.data
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



Or to use another data directory ( /var/tmp/test in this example):

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh --chroot /var/tmp/test/ start  --export darkstat.data --user xtrnaw7
[25.10.2016 18:46 ] ### darkstat.sh started at Tue Oct 25 18:46:52 CEST 2016
[25.10.2016 18:46 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:46 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:46 ] The interface used by darkstart is enp0s25
[25.10.2016 18:46 ] The data directory used by darkstat is /var/tmp/test/
[25.10.2016 18:46 ] Starting the darkstat daemon ...
[25.10.2016 18:46 ] The port to use for the darkstat daemon is 667
[25.10.2016 18:46 ] The additional options to use for the darkstat daemon are "--export darkstat.data --user xtrnaw7"
+ ./sbin/darkstat -p 667 -i enp0s25 --chroot /var/tmp/test/ --pidfile darkstat.667_enp0s25.pid --export darkstat.data --user xtrnaw7
+ 2>& 1

[25.10.2016 18:46 ] darkstat daemon started; the PID is 32500
[25.10.2016 18:46 ] Use http://localhost:667 or http://t540p:667 to access darkstat in your Webbrowser
[25.10.2016 18:46 ] ### darkstat.sh ended at Tue Oct 25 18:46:52 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$

# Note: You must use the --chroot parameter for every call of the script (because the PID filename is relative to the directory in the --chroot parameter)

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh stop
[25.10.2016 18:47 ] ### darkstat.sh started at Tue Oct 25 18:47:01 CEST 2016
[25.10.2016 18:47 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:47 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:47 ] The interface used by darkstart is enp0s25
[25.10.2016 18:47 ] The data directory used by darkstat is /tmp
[25.10.2016 18:47 ] The darkstat daemon is NOT running (well, it may be running but it was not started by this script)
[25.10.2016 18:47 ] ### darkstat.sh ended at Tue Oct 25 18:47:01 CEST 2016


[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo scripts/darkstat.sh --chroot /var/tmp/test/ stop
[25.10.2016 18:47 ] ### darkstat.sh started at Tue Oct 25 18:47:14 CEST 2016
[25.10.2016 18:47 ] Environment variable JWM_DIR not set - using the directory based on the script directory (scripts)
[25.10.2016 18:47 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 18:47 ] The interface used by darkstart is enp0s25
[25.10.2016 18:47 ] The data directory used by darkstat is /var/tmp/test/
[25.10.2016 18:47 ] The darkstat daemon is running; the PID is 32500
[25.10.2016 18:47 ] Stopping the darkstat daemon ...
[25.10.2016 18:47 ] ### darkstat.sh ended at Tue Oct 25 18:47:15 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ ls -l /var/tmp/test/darkstat.data
-rw------- 1 xtrnaw7 xtrnaw7 3877 Oct 25 18:47 /var/tmp/test/darkstat.data
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


The known parameter of the darkstat daemon are:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ sudo ./darkstat.sh daemon_help
[25.10.2016 19:07 ] ### darkstat.sh started at Tue Oct 25 19:07:02 CEST 2016
[25.10.2016 19:07 ] Environment variable JWM_DIR not set - using the directory based on the script directory (.)
[25.10.2016 19:07 ] The darkstat base directory is /var/tmp/jwm
[25.10.2016 19:07 ] The interface used by darkstart is enp0s25
[25.10.2016 19:07 ] The data directory used by darkstat is /tmp
[25.10.2016 19:07 ] Additional parameter supported by the darkstat daemon are:
darkstat 3.0.719 (using libpcap version 1.0.0)

usage: darkstat [ -i interface ]
                [ -f filter ]
                [ -r capfile ]
                [ -p port ]
                [ -b bindaddr ]
                [ -l network/netmask ]
                [ --base path ]
                [ --local-only ]
                [ --snaplen bytes ]
                [ --pppoe ]
                [ --syslog ]
                [ --verbose ]
                [ --no-daemon ]
                [ --no-promisc ]
                [ --no-dns ]
                [ --no-macs ]
                [ --no-lastseen ]
                [ --chroot dir ]
                [ --user username ]
                [ --daylog filename ]
                [ --import filename ]
                [ --export filename ]
                [ --pidfile filename ]
                [ --hosts-max count ]
                [ --hosts-keep count ]
                [ --ports-max count ]
                [ --ports-keep count ]
                [ --highest-port port ]
                [ --wait secs ]
                [ --hexdump ]
                [ --version ]
                [ --help ]

Please refer to the darkstat(8) manual page for further
documentation and usage examples.
[25.10.2016 19:07 ] ### darkstat.sh ended at Tue Oct 25 19:07:02 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$




dhtest

dhtest is DHCP test program.

dhtest usage
[xtrnaw7@t540p /data/download/dhtest-master]$ ./dhtest -h
Usage: ./dhtest [ options ]
  -m mac_address
  -N                    # always use interface's MAC address in Ethernet frame
  -r, --release                # Releases obtained DHCP IP for corresponding MAC
  -L, --option51-lease_time [ Lease_time ] # Option 51. Requested lease time in secondes
  -I, --option50-ip    [ IP_address ]    # Option 50 IP address on DHCP discover
  -o, --option60-vci    [ VCI_string ]    # Vendor Class Idendifier string
  -h, --option12-hostname [ hostname_string ] # Client hostname string
  -c, --custom-dhcp-option [ option_format ] # option_format - option_number,type_of_option_value(str|num|hex|ip),option_value
  -v, --vlan        [ vlan_id ]    # VLAN ID. Range(1 - 4094)
  -t, --tos        [ TOS_value ]    # IP header TOS value
  -i, --interface    [ interface ]    # Interface to use. Default eth0
  -T, --timeout        [ cmd_timeout ]    # Command returns within specified timout in seconds
  -b, --bind-ip                # Listens on the obtained IP. Supported protocols - ARP and ICMP
  -k, --bind-timeout    [ timeout ]    # Listen timout in seconds. Default 3600 seconds
  -f, --bcast_flag            # Sets broadcast flag on DHCP discover and request
  -d, --fqdn-domain-name   [ fqdn ]    # FQDN domain name to use
  -n, --fqdn-server-not-update        # Sets FQDN server not update flag
  -s, --fqdn-server-update-a        # Sets FQDN server update flag
  -p, --padding                # Add padding to packet to be at least 300 bytes
  -P, --port        [ port ]    # Use port instead of 67
  -g, --giaddr        [ giaddr ]    # Use giaddr instead of 0.0.0.0
  -u, --unicast        [ ip ]        # Unicast request, IP is optional. If not specified, the interface address will be used.
  -a, --nagios                # Nagios output format.
  -S, --server        [ address ]    # Use server address instead of 255.255.255.255
  -j, --json                # Set the output format to json
  -D, --decline                # Declines obtained DHCP IP for corresponding MAC
  -V, --verbose                # Prints DHCP offer and ack details
  dhtest version 1.5
[xtrnaw7@t540p /data/download/dhtest-master]$





dmidecode

"dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard (see a sample output). This information typically includes system manufacturer, model name, serial number, BIOS version, asset tag as well as a lot of other details of varying level of interest and reliability depending on the manufacturer. This will often include usage status for the CPU sockets, expansion slots (e.g. AGP, PCI, ISA) and memory module slots, and the list of I/O ports (e.g. serial, parallel, USB)."

dmidecode usage
[xtrnaw7@t540p /var/tmp/jwm/src/dmidecode-3.0]$ dmidecode -h
Usage: dmidecode [OPTIONS]
Options are:
 -d, --dev-mem FILE     Read memory from device FILE (default: /dev/mem)
 -h, --help             Display this help text and exit
 -q, --quiet            Less verbose output
 -s, --string KEYWORD   Only display the value of the given DMI string
 -t, --type TYPE        Only display the entries of given type
 -u, --dump             Do not decode the entries
     --dump-bin FILE    Dump the DMI data to a binary file
     --from-dump FILE   Read the DMI data from a binary file
     --no-sysfs         Do not attempt to read DMI data from sysfs files
 -V, --version          Display the version and exit






dropwatch

dropwatch is a tool to improve the ability for developers and system administrator to diagnose problems in the Linux Networking stack, specifically in our ability to diagnose where packets are getting dropped.


dropwatch usage
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./dropwatch -h
./dropwatch: invalid option -- 'h'
dropwatch [-l|--lmethod <method | list>]
[xtrnaw7@t540p /var/tmp/jwm/bin]$





dropwatch example
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./dropwatch -l kas
Initalizing kallsyms db
dropwatch> help
Command Syntax:
exit                 - Quit dropwatch
help                 - Display this message
set:
    alertlimit <number>     - caputre only this many alert packets
start                 - start capture
stop                 - stop capture
dropwatch> start
Enabling monitoring...
Kernel monitoring activated.
Issue Ctrl-C to stop monitoring
Error Scanning File: : Success
2 drops at location 0xffffffffac9103a8
Error Scanning File: : Success
4 drops at location 0xffffffffac9103a8
Error Scanning File: : Success
2 drops at location 0xffffffffac9103a8
^CGot a stop message
dropwatch> exit
Shutting down ...
[xtrnaw7@t540p /var/tmp/jwm/bin]$






dstat

"dstat is a versatile replacement for vmstat, iostat, netstat and ifstat. Dstat overcomes some of their limitations and adds some extra features, more counters and flexibility. Dstat is handy for monitoring systems during performance tuning tests, benchmarks or troubleshooting.

Dstat allows you to view all of your system resources in real-time, you can eg. compare disk utilization in combination with interrupts from your IDE controller, or compare the network bandwidth numbers directly with the disk throughput (in the same interval). "

dstat usage
The usage for dstat is:

xtrnaw7@t61p Thu Oct 31 20:29:18 /var/tmp/jwm/bin $ ./dstat --help
Usage: dstat [-afv] [options..] [delay [count]]
Versatile tool for generating system resource statistics

Dstat options:
  -c, --cpu              enable cpu stats
     -C 0,3,total           include cpu0, cpu3 and total
  -d, --disk             enable disk stats
     -D total,hda           include hda and total
  -g, --page             enable page stats
  -i, --int              enable interrupt stats
     -I 5,eth2              include int5 and interrupt used by eth2
  -l, --load             enable load stats
  -m, --mem              enable memory stats
  -n, --net              enable network stats
     -N eth1,total          include eth1 and total
  -p, --proc             enable process stats
  -r, --io               enable io stats (I/O requests completed)
  -s, --swap             enable swap stats
     -S swap1,total         include swap1 and total
  -t, --time             enable time/date output
  -T, --epoch            enable time counter (seconds since epoch)
  -y, --sys              enable system stats

  --aio                  enable aio stats
  --fs, --filesystem     enable fs stats
  --ipc                  enable ipc stats
  --lock                 enable lock stats
  --raw                  enable raw stats
  --socket               enable socket stats
  --tcp                  enable tcp stats
  --udp                  enable udp stats
  --unix                 enable unix stats
  --vm                   enable vm stats

  --plugin-name          enable plugins by plugin name (see manual)
  --list                 list all available plugins

  -a, --all              equals -cdngy (default)
  -f, --full             automatically expand -C, -D, -I, -N and -S lists
  -v, --vmstat           equals -pmgdsc -D total

  --float                force float values on screen
  --integer              force integer values on screen

  --bw, --blackonwhite   change colors for white background terminal
  --nocolor              disable colors (implies --noupdate)
  --noheaders            disable repetitive headers
  --noupdate             disable intermediate updates
  --output file          write CSV output to file

delay is the delay in seconds between each update (default: 1)
count is the number of updates to display before exiting (default: unlimited)






There are some tools to convert the output of dstat into graphics, see for example this blog entry:

https://lamada.eu/blog/2015/12/10/generating-graph-from-dstat-csv-output/




fiemap


fiemap reads file extents using the FIEMAP ioctl.


Usage:   fiemap <file>

fiemap examples
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ fiemap /boot/initramfs-4.7.7-100.fc23.x86_64.img
File /boot/initramfs-4.7.7-100.fc23.x86_64.img has 2 extents:
#    Logical          Physical         Length           Flags
0:    0000000000000000 0000000007600400 0000000000a00000 0000
1:    0000000000a00000 000000000a800400 0000000000833800 0001

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ fiemap /data/VirtualBox_Harddisks/sles11/SLES\ 11.vdi
File /data/VirtualBox_Harddisks/sles11/SLES 11.vdi has 48 extents:
#    Logical          Physical         Length           Flags
0:    0000000000000000 0000009bd3800000 0000000008000000 0000
1:    0000000008000000 0000009bdb800000 0000000008000000 0000
2:    0000000010000000 0000009be3800000 0000000008000000 0000
3:    0000000018000000 0000009beb800000 0000000008000000 0000
4:    0000000020000000 0000009bf3800000 0000000008000000 0000
5:    0000000028000000 0000009bfb800000 0000000004800000 0000
6:    000000002c800000 0000009c08000000 0000000008000000 0000
7:    0000000034800000 0000009c10000000 0000000008000000 0000
8:    000000003c800000 0000009c18000000 0000000008000000 0000
9:    0000000044800000 0000009c20000000 0000000008000000 0000
10:    000000004c800000 0000009c28000000 0000000008000000 0000
11:    0000000054800000 0000009c30000000 0000000008000000 0000
12:    000000005c800000 0000009c38000000 0000000008000000 0000
13:    0000000064800000 0000009c40000000 0000000008000000 0000
14:    000000006c800000 0000009c48000000 0000000008000000 0000
15:    0000000074800000 0000009c50000000 0000000008000000 0000
16:    000000007c800000 0000009c58000000 0000000008000000 0000
17:    0000000084800000 0000009c60000000 0000000008000000 0000
18:    000000008c800000 0000009c68000000 0000000008000000 0000
19:    0000000094800000 0000009c70000000 0000000008000000 0000
20:    000000009c800000 0000009c78000000 0000000008000000 0000
21:    00000000a4800000 0000009c88000000 0000000008000000 0000
22:    00000000ac800000 0000009c90000000 0000000008000000 0000
23:    00000000b4800000 0000009c98000000 0000000008000000 0000
24:    00000000bc800000 0000009ca0000000 0000000008000000 0000
25:    00000000c4800000 0000009ca8000000 0000000008000000 0000
26:    00000000cc800000 0000009cb0000000 0000000008000000 0000
27:    00000000d4800000 0000009cb8000000 0000000008000000 0000
28:    00000000dc800000 0000009cc0000000 0000000008000000 0000
29:    00000000e4800000 0000009cc8000000 0000000008000000 0000
30:    00000000ec800000 0000009cd0000000 0000000008000000 0000
31:    00000000f4800000 0000009cd8000000 0000000008000000 0000
32:    00000000fc800000 0000009ce0000000 0000000008000000 0000
33:    0000000104800000 0000009ce8000000 0000000008000000 0000
34:    000000010c800000 0000009cf0000000 0000000008000000 0000
35:    0000000114800000 0000009cf8000000 0000000008000000 0000
36:    000000011c800000 0000009d08000000 0000000008000000 0000
37:    0000000124800000 0000009d10000000 0000000008000000 0000
38:    000000012c800000 0000009d18000000 0000000008000000 0000
39:    0000000134800000 0000009d20000000 0000000008000000 0000
40:    000000013c800000 0000009d28000000 0000000008000000 0000
41:    0000000144800000 0000009d30000000 0000000008000000 0000
42:    000000014c800000 0000009d38000000 0000000008000000 0000
43:    0000000154800000 0000009d40000000 0000000008000000 0000
44:    000000015c800000 0000009d48000000 0000000008000000 0000
45:    0000000164800000 0000009d50000000 0000000008000000 0000
46:    000000016c800000 0000009d58000000 0000000008000000 0000
47:    0000000174800000 0000009d60000000 0000000005d09000 0001





fio

"fio is an I/O tool meant to be used both for benchmark and stress/hardware verification. It has support for 13 different types of I/O engines (sync, mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio, and more), I/O priorities (for newer Linux kernels), rate I/O, forked or threaded jobs, and much more. It can work on block devices as well as files."

fio usage
xtrnaw7@t61p Thu Oct 31 20:30:28 /var/tmp/jwm/bin $ ./fio --help
fio-2.1.2
./fio [options] [job options] <job file(s)>
  --debug=options    Enable debug logging. May be one/more of:
            process,file,io,mem,blktrace,verify,random,parse,
            diskutil,job,mutex,profile,time,net
  --parse-only        Parse options only, don't start any IO
  --output        Write output to file
  --runtime        Runtime in seconds
  --latency-log        Generate per-job latency logs
  --bandwidth-log    Generate per-job bandwidth logs
  --minimal        Minimal (terse) output
  --output-format=x    Output format (terse,json,normal)
  --terse-version=x    Set terse version output format to 'x'
  --version        Print version info and exit
  --help        Print this page
  --cpuclock-test    Perform test/validation of CPU clock
  --cmdhelp=cmd        Print command help, "all" for all of them
  --enghelp=engine    Print ioengine help, or list available ioengines
  --enghelp=engine,cmd    Print help for an ioengine cmd
  --showcmd        Turn a job file into command line options
  --eta=when        When ETA estimate should be printed
                    May be "always", "never" or "auto"
  --eta-newline=time    Force a new line for every 'time' period passed
  --status-interval=t    Force full status dump every 't' period passed
  --readonly        Turn on safety read-only checks, preventing writes
  --section=name    Only run specified section in job file
  --alloc-size=kb    Set smalloc pool to this size in kb (def 1024)
  --warnings-fatal    Fio parser warnings are fatal
  --max-jobs=nr        Maximum number of threads/processes to support
  --server=args        Start a backend fio server
  --daemonize=pidfile    Background fio server, write pid to file
  --client=hostname    Talk to remote backend fio server at hostname
  --idle-prof=option    Report cpu idleness on a system or percpu basis
            (option=system,percpu) or run unit work
            calibration only (option=calibrate)

Fio was written by Jens Axboe <jens.axboe@oracle.com>
                   Jens Axboe <jaxboe@fusionio.com>




fnotifystat


"fnotifystat is a program that dumps the file system activity in a given period of time."

fnotifystat usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ fnotifystat -h
fnotifystat, version 0.01.16

Options are:
  -c     cumulative totals over time
  -d     strip directory off the filenames
  -D     order stats by unique device
  -f     force output
  -h     show this help
  -i     specify pathnames to include on path events
  -I     order stats by unique device and inode
  -m     merge events on same file and pid in same second
  -n     no stats, just -v verbose mode only
  -p PID collect stats for just process with pid PID
  -P     sort stats by process ID
  -s     disable scaling of file counts
  -t N   show just the busiest N files
  -T     show timestamp
  -v     verbose mode, dump out all file activity
  -x     specify pathnames to exclude on path events
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$



fnotifystat example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ sudo ../sbin/fnotifystat  -i /var/log
Total   Open  Close   Read  Write   PID  Process         Pathname
  4.0    1.0    1.0    2.0    0.0  24828 <unknown>       /var/log
  4.0    1.0    1.0    2.0    0.0  24827 <unknown>       /var/log

Total   Open  Close   Read  Write   PID  Process         Pathname
  4.0    1.0    1.0    2.0    0.0  24831 <unknown>       /var/log

Total   Open  Close   Read  Write   PID  Process         Pathname
  6.0    0.0    0.0    0.0    6.0   1335 rsyslogd        /var/log/messages
  6.0    0.0    0.0    0.0    6.0   1335 rsyslogd        /var/log/secure
  3.0    0.0    0.0    0.0    3.0   1257 auditd          /var/log/audit/audit.log
  2.0    1.0    0.0    1.0    0.0  24852 more            /var/log/messages

Total   Open  Close   Read  Write   PID  Process         Pathname
  4.0    0.0    0.0    0.0    4.0   1335 rsyslogd        /var/log/messages
  2.0    0.0    0.0    0.0    2.0   1257 auditd          /var/log/audit/audit.log
  2.0    0.0    0.0    0.0    2.0   1335 rsyslogd        /var/log/secure
  1.0    0.0    1.0    0.0    0.0  24852 more            /var/log/messages

^C[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$



forkstat

"forkstat is a program that logs process fork(), exec() and exit() activity. It is useful for monitoring system behaviour and to track down rogue processes that are spawning off processes and potentially abusing the system.

Note that forkstat uses the Linux netlink connector to gather process activity and this may miss events if the system is overly busy. Netlink connector also requires root privilege."

forkstat usage
[xtrnaw7@t540p /var/tmp/jwm/src/forkstat-0.02.05]$ ./forkstat -h
forkstat, version 0.02.05

usage: ./forkstat [-d|-D|-e|-E|-g|-h|-l|-s|-S|-q]
-d    strip off directory path from process name.
-D    specify run duration in seconds.
-e    select which events to monitor.
-E    equivalent to -e all.
-g    show glyphs for event types.
-h    show this help.
-l    force stdout line buffering.
-r    run with real time FIFO scheduler.
-s    show short process name.
-S    show event statistics at end of the run.
-q    run quietly and enable -S option.
-x    show extra process information.
[xtrnaw7@t540p /var/tmp/jwm/src/forkstat-0.02.05]$
 


forkstat example
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo sbin/forkstat -sS -D 5
Time     Event  PID  Info  Duration Process
21:20:43 fork   1944 parent          bash
21:20:43 fork   5562 child           bash
21:20:43 exec   5562                 /usr/sbin/tc
21:20:43 exit   5562      0    0.001 /usr/sbin/tc
21:20:44 fork   1944 parent          bash
21:20:44 fork   5563 child           bash
21:20:44 exec   5563                 /usr/sbin/tc
21:20:44 exit   5563      0    0.001 /usr/sbin/tc
21:20:44 clone     1 parent          /usr/lib/systemd/systemd
21:20:44 clone  5564 thread          /usr/lib/systemd/systemd
21:20:44 exit   5564      0    0.000 /usr/lib/systemd/systemd
21:20:45 fork   1944 parent          bash
21:20:45 fork   5565 child           bash
21:20:45 exec   5565                 /usr/sbin/tc
21:20:45 exit   5565      0    0.001 /usr/sbin/tc
21:20:45 clone     1 parent          /usr/lib/systemd/systemd
21:20:45 clone  5566 thread          /usr/lib/systemd/systemd
21:20:45 exit   5566      0    0.000 /usr/lib/systemd/systemd
21:20:45 clone  1422 parent          /usr/sbin/NetworkManager
21:20:45 clone  5567 thread          /usr/sbin/NetworkManager
21:20:45 exit   5554      0  unknown sleep
21:20:45 fork   4711 parent          /bin/bash
21:20:45 fork   5568 child           /bin/bash
21:20:45 exit   5568      0    0.000 /bin/bash
21:20:45 fork   4711 parent          /bin/bash
21:20:45 fork   5569 child           /bin/bash
21:20:45 exec   5569                 /usr/bin/esmtp
21:20:45 exit   5569  19968    0.002 /usr/bin/esmtp
21:20:45 fork   4711 parent          /bin/bash
21:20:45 fork   5570 child           /bin/bash
21:20:45 exec   5570                 expr
21:20:45 exit   5570      0    0.001 expr
21:20:45 fork   4711 parent          /bin/bash
21:20:45 fork   5571 child           /bin/bash
21:20:45 exec   5571                 sleep
21:20:46 fork   1944 parent          bash
21:20:46 fork   5572 child           bash
21:20:46 exec   5572                 /usr/sbin/tc
21:20:46 exit   5572      0    0.001 /usr/sbin/tc
21:20:46 clone     1 parent          /usr/lib/systemd/systemd
21:20:46 clone  5573 thread          /usr/lib/systemd/systemd
21:20:46 exit   5573      0    0.000 /usr/lib/systemd/systemd
21:20:46 fork      2 parent          [kthreadd]
21:20:46 fork   5574 child           [kworker/u16:7]
21:20:46 exit   5479      0  unknown /usr/lib64/firefox/firefox
21:20:47 fork   1944 parent          bash
Time     Event  PID  Info  Duration Process
21:20:47 fork   5575 child           bash
21:20:47 exec   5575                 /usr/sbin/tc
21:20:47 exit   5575      0    0.001 /usr/sbin/tc
21:20:47 clone     1 parent          /usr/lib/systemd/systemd
21:20:47 clone  5576 thread          /usr/lib/systemd/systemd
21:20:47 exit   5576      0    0.000 /usr/lib/systemd/systemd
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





eventstat

"eventstat periodically dumps out the current kernel event state. It keeps track of current events and outputs the change in events on each output update. The tool requires sudo to run since it needs to write to /proc/timer_stats to start and stop the event monitoring. "

eventstat usage
xtrnaw7@t540p /var/tmp/jwm/src/eventstat-0.04.04]$ ./eventstat -h
eventstat, version 0.04.04

Usage: eventstat [options] [duration] [count]
Options are:
  -c        report cumulative events rather than events per second.
  -C        report event count rather than event per second in CSV output.
  -d        remove pathname from long process name in CSV output.
  -h        print this help.
  -l        use long cmdline text from /proc/pid/cmdline for process name.
  -n events    specifies number of events to display.
  -q        run quietly, useful with option -r.
  -r filename    specifies a comma separated values (CSV) output file
        to dump samples into.
  -s        use short process name from /proc/pid/cmdline for process name.
  -S        calculate min, max, average and standard deviation in CSV
        output.
  -t threshold    samples less than the specified threshold are ignored.
  -T        enable 'top' mode rather than a scrolling output.
  -w        add time stamp (when events occurred) to output.
[xtrnaw7@t540p /var/tmp/jwm/src/eventstat-0.04.04]$
 


eventstat example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ sudo ../sbin/eventstat -c -C -l 1 5
  Events PID   Task                               Init Function                                                                      Callback                                                     
      99  1691 /opt/teamviewer/tv_bin/teamviewerd schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
      99 14663 /usr/lib64/firefox/plugin-containe schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
      61  3287 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
      60 14103 /usr/lib64/firefox/firefox         futex_wait_queue_me                                                                hrtimer_wakeup                                               
      50 24351 ./usr/sbin/netdata -P /tmp/netdata do_nanosleep                                                                       hrtimer_wakeup                                               
      34     7 [rcu_sched]                        rcu_gp_kthread                                                                     process_timeout                                              
      26 14078 /usr/lib64/firefox/firefox         futex_wait_queue_me                                                                hrtimer_wakeup                                               
      21  3279 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
      21  3233 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
      10  1678 /usr/libexec/Xorg -background none schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       7 18193 mate-terminal                      schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       4  1694 /opt/teamviewer/tv_bin/teamviewerd futex_wait_queue_me                                                                hrtimer_wakeup                                               
       4  1693 /opt/teamviewer/tv_bin/teamviewerd futex_wait_queue_me                                                                hrtimer_wakeup                                               
       3     0 [swapper/0]                        rpm_suspend                                                                        pm_suspend_timer_fn                                          
       2     0 [swapper/5]                        ehci_enable_event                                                                  ehci_hrtimer_func                                            
       2 13420 /usr/lib64/virtualbox/VirtualBox   futex_wait_queue_me                                                                hrtimer_wakeup                                               
       2  3284 /tools/jre1.8_0.101/bin/java -jar  schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       2  5866 /data/tools/seamonkey/seamonkey-bi futex_wait_queue_me                                                                hrtimer_wakeup                                               
       2  1309 /usr/libexec/accounts-daemon       schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       2     0 [swapper/6]                        clocksource_watchdog                                                               clocksource_watchdog                                         
       2 13409 /usr/lib64/virtualbox/VBoxSVC --au futex_wait_queue_me                                                                hrtimer_wakeup                                               
       2  3235 java -Xms16m -Xmx320m -Djava.libra schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       2     0 [swapper/0]                        ehci_enable_event                                                                  ehci_hrtimer_func                                            
       2 13415 /usr/lib64/virtualbox/VBoxSVC --au futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  2157 caja                               schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1 20249 [kworker/0:1]                      ehci_enable_event                                                                  ehci_hrtimer_func                                            
       1  3244 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  3224 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1     1 /usr/lib/systemd/systemd --switche do_timerfd_settime                                                                 timerfd_tmrproc                                              
       1 20249 [kworker/0:1]                      e1000_watchdog_task                                                                e1000_watchdog                                               
       1  3275 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 24367 /usr/bin/python /var/tmp/jwm/netda schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1 15886 /usr/libexec/goa-identity-service  schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1  3243 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  2457 syndaemon -i 0.5 -K -R             schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1     0 [swapper/2]                        rpm_suspend                                                                        pm_suspend_timer_fn                                          
       1  3248 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  3247 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 24497 /usr/bin/python /var/tmp/jwm/netda schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1  3245 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 13916 /usr/lib64/firefox/plugin-containe futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  3246 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 13419 /usr/lib64/virtualbox/VBoxSVC --au futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 20249 [kworker/0:1]                      queue_delayed_work_on                                                              delayed_work_timer_fn                                        
       1 16491 bash /var/tmp/jwm/netdata/usr/libe do_setitimer                                                                       it_real_fn                                                   
       1 13427 /usr/lib64/virtualbox/VBoxSVC --au futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  3277 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 24354 ./usr/sbin/netdata -P /tmp/netdata do_nanosleep                                                                       hrtimer_wakeup                                               
       1  1652 /usr/sbin/httpd -DFOREGROUND       schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1  3249 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1   810 /sbin/multipathd                   do_nanosleep                                                                       hrtimer_wakeup                                               
       1  1682 /opt/teamviewer/tv_bin/teamviewerd do_nanosleep                                                                       hrtimer_wakeup                                               
       1  3270 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 20249 [kworker/0:1]                      msleep                                                                             process_timeout                                              
       1 24356 ./usr/sbin/netdata -P /tmp/netdata do_nanosleep                                                                       hrtimer_wakeup                                               
       1 24498 /usr/bin/python /var/tmp/jwm/netda schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1  3042 gpg-agent --homedir /home/xtrnaw7/ schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1  3250 java -Xms16m -Xmx320m -Djava.libra futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1 19553 [kworker/5:1]                      ehci_enable_event                                                                  ehci_hrtimer_func                                            
       1  2775 /usr/lib64/thunderbird/thunderbird futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  2254 /usr/bin/cairo-dock                schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1 19174 adb -P 5037 fork-server server --r do_nanosleep                                                                       hrtimer_wakeup                                               
       1 14678 /usr/lib64/firefox/plugin-containe futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1    13 [watchdog/0]                       enqueue_task_rt                                                                    sched_rt_period_timer                                        
       1  5287 top                                schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1   392 systemd-udevd                      gen6_read32                                                                        intel_uncore_fw_release_timer                                
       1  3276 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1    64 [watchdog/7]                       watchdog_enable                                                                    watchdog_timer_fn                                            
       1 16611 [kworker/u16:1]                    queue_delayed_work_on                                                              delayed_work_timer_fn                                        
       1 19553 [kworker/5:1]                      msleep                                                                             process_timeout                                              
       1  3274 /tools/jre1.8_0.101/bin/java -jar  futex_wait_queue_me                                                                hrtimer_wakeup                                               
       1  1707 /opt/teamviewer/tv_bin/teamviewerd schedule_hrtimeout_range_clock                                                     hrtimer_wakeup                                               
       1    56 [watchdog/6]                       watchdog_enable                                                                    watchdog_timer_fn                                            
       1 24352 ./usr/sbin/netdata -P /tmp/netdata do_nanosleep                                                                       hrtimer_wakeup                                               
       1 12989 /var/tmp/jwm/netdata/usr/libexec/n do_nanosleep                                                                       hrtimer_wakeup                                               
570 Total events, 569.43 events/sec (kernel: 53.95, userspace: 515.48)


Using eventstat in top mode:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ sudo ../sbin/eventstat -T





faultstat

"Faultstat reports the page fault activity of processes running on a system. The tool supports a 'top' like mode to dynamically display the top page faulting processes."


faultstat usage
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/faultstat -h
faultstat, version 0.01.04

Usage: faultstat [options] [duration] [count]
Options are:
  -a        show page fault change with up/down arrows
  -c        get command name from processes comm field
  -d        strip directory basename off command information
  -h        show this help information
  -l        show long (full) command information
  -p proclist    specify comma separated list of processes to monitor
  -s        show short command information
  -t        top mode, show only changes in page faults
  -T        top mode, show top page faulters
[xtrnaw7@t540p /var/tmp/jwm/src]$



faultstat examples
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/faultstat
     PID  Major   Minor    Swap  User       Command
   11009  61939   21961k  32344  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet
   11184  41016   18315k  55412  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   10304  67780    6859k  41644  xtrnaw7    /usr/lib64/firefox/firefox
  262429  36340    5832k 124928  xtrnaw7    /usr/bin/seamonkey
    9396  12597    5719k  59804  xtrnaw7    /usr/bin/cairo-dock
   11158  12408    4680k  12976  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11467   3498    3347k  12596  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11483   2667    3343k   7472  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11486   3345    3314k   5060  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11485   2886    3306k   4128  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11633  10530    2657k 196012  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11197   6194    2175k   4576  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11076  19245    2024k  58332  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=gpu-process --field-trial-handle=400491755866208736,3501711437358555926,131072 --gpu-preferences=KAAAAAAAAAAgAAAgAAAAAAAAYAAAAAAAEAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAA --us    2679  17174    1952k  17092  root       /usr/libexec/Xorg
   12416  18955    1793k  14988  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12556  26010    1702k  24364  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11803  16761    1601k  72892  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12635  15271    1551k  23948  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  107700   5670    1406k  29444  xtrnaw7    /usr/lib64/virtualbox/VirtualBoxVM
   13996 202005    1136k 611944  xtrnaw7    /tools/jdk-14.0.2/bin/java
  106032   5539    1189k  11584  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9587    572    1167k    352  xtrnaw7    /bin/ksh
   11223  26162    1067k  72668  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12312  11466  931599    6780  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  107641   7080  809351   38472  xtrnaw7    /usr/lib64/virtualbox/VirtualBoxVM
   12568  18736  738609   27344  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11322   1536  754026    3544  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12624   9101  742392   10176  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11262   4101  743905    4760  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   10134  79884  610962   93404  xtrnaw7    /usr/lib64/thunderbird/thunderbird
   11081  10828  678921    7144  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=utility --field-trial-handle=400491755866208736,3501711437358555926,131072 --lang=en-US --service-sandbox-type=network --enable-audio-service-sandbox --shared-files=v   14051  86855  569830  235972  xtrnaw7    java
   11713  10549  645850   33244  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   98128  34952  591534   51728  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   10479   4133  535372    3676  xtrnaw7    /usr/lib64/firefox/firefox
   11648   6299  518823   28708  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12468  13494  482764   14636  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12235  19527  445611   14116  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12587  13505  415171   14268  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11145   5450  370902    8896  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11762   5249  328675   18000  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12035   6315  322564    9568  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11470    324  324175   12508  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12485   9642  301599   12240  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  138774    841  300862     676  xtrnaw7    bash
  366129    743  288486   15476  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9982   4836  274107  109064  xtrnaw7    /usr/lib64/virtualbox/VirtualBoxVM
  248547  16425  251168   24576  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12582   7277  258281    8316  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9427   3040  252901   12864  xtrnaw7    mate-screensaver
   11171    335  253397   25268  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12613   9205  238924    9704  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12877   1319  236196   52328  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  262070   6095  202782   16352  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9293  29510  177703   38080  xtrnaw7    /usr/bin/caja
   12177   5483  162896   20996  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12134   1233  152184   30052  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    1440   3401  149107    4720  root       /usr/libexec/udisks2/udisksd
   49220   1277  126468   95668  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11337   2645  113852    3396  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  365813    898  112385    9396  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  365987   1334  103135   13888  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur       1   4563   97144    1328  root       /usr/lib/systemd/systemd
   12915   1457   96533   84820  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11990    674   95346   24072  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  366017    205   90077   14780  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur     822   9677   68283     976  root       /usr/lib/systemd/systemd-journald
   49206   2869   74850    9648  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12088    981   76022   30332  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11983    857   66312   33672  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12141   1279   64718   38404  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  105632   9866   52898  129452  xtrnaw7    /data/tools/Telegram/Telegram
   12093    896   60251   20436  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9928   4233   54658   64816  xtrnaw7    /usr/lib64/virtualbox/VirtualBox
   11437    254   56713   13316  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12047    923   51404   18112  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11236    229   49625    6096  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12152   2218   47307   11256  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12072    879   48423   23412  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12029    741   46167   22520  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12105   2702   42164    9216  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    2489    991   40309    9840  root       /usr/sbin/httpd
   12005    863   39940   24352  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12010    886   39640   29848  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11249    567   39385    4976  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9262   2821   32238    7612  xtrnaw7    marco
  155485   8639   25904   15888  xtrnaw7    geany
   11436    261   31480    9532  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9255   2106   26653    7832  xtrnaw7    /usr/libexec/mate-settings-daemon
    1518   2244   26146    5920  polkitd    /usr/lib/polkit-1/polkitd
   11984    509   27424   18240  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11889    265   26060    6488  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12089    584   25409   19120  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12153    874   25021   21908  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12902    781   24889   23680  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   12942    826   24700   19040  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  365784    182   23862   18608  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11892    232   21892   11292  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9272   5084   16556   12568  xtrnaw7    mate-panel
    9668   8230   12513    5500  xtrnaw7    /usr/libexec/mate-applets/mateweather-applet
  107380   1866   18173    1084  xtrnaw7    mate-terminal
    1407    939   18742   22644  root       /usr/bin/python3
    9267   4294   15138    2812  xtrnaw7    /usr/bin/pulseaudio
   11906    136   19259    4044  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11822    175   18782    3892  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11588    274   18076    4292  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11896    236   17865    4548  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   11529    210   17747    3436  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  366498    135   17676    8892  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur   49593    782   16670   21508  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  366654    157   17094   13324  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9683   5336   11456    9524  xtrnaw7    /usr/libexec/mate-applets/stickynotes-applet
    9007   1630   15018    1668  xtrnaw7    /usr/lib/systemd/systemd
  365653    318   15307   19124  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  365654    252   13320   10960  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9021    546   13001    4624  xtrnaw7    mate-session
    9430    662   12793   31616  xtrnaw7    /usr/bin/python3
    9312   1803   10927   24704  xtrnaw7    /usr/bin/python3
  265876   1822   10420    9836  xtrnaw7    mate-screenshot
   11957    181   11275    2692  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9381    704   10041    4036  xtrnaw7    /usr/bin/mate-terminal
  368835    156   10462       0  xtrnaw7    mate-screenshot
  368891     12   10425       0  xtrnaw7    mate-screenshot
   11942    424    9157    1276  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9667   3343    6231    8188  xtrnaw7    /usr/libexec/mate-panel/clock-applet
    9377   1583    7985   11096  xtrnaw7    nm-applet
    3252    330    8844     816  root       /usr/lib/systemd/systemd-userdbd
    9318    446    8713   17208  xtrnaw7    blueberry-tray
   11058    118    8750     188  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=zygote
    9670   2203    5365    5044  xtrnaw7    /usr/libexec/mate-applets/mate-cpufreq-applet
    9726   1697    5672   10420  xtrnaw7    /usr/libexec/mate-volume-control-applet
    9954   1569    5686    5788  xtrnaw7    /usr/lib64/virtualbox/VBoxSVC
    9728   1846    5381    9512  xtrnaw7    /usr/libexec/mate-panel/notification-area-applet
    9682   2259    4929    5740  xtrnaw7    /usr/local/libexec/lockkeys_applet
     846    578    6542    4348  root       /usr/lib/systemd/systemd-udevd
    9278   2365    3810    1336  xtrnaw7    /usr/libexec/gvfs-udisks2-volume-monitor
   49329    663    5239    3768  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9857   1298    4313     324  xtrnaw7    /usr/libexec/gvfsd-metadata
    9249   1939    3548     344  xtrnaw7    /usr/libexec/dconf-service
  282362      3    5382    1980  xtrnaw7    bash
   49311    311    4981    1044  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9319    890    4281    6092  xtrnaw7    mate-power-manager
    9300    337    4739   10380  xtrnaw7    /usr/libexec/evolution-data-server/evolution-alarm-notify
    1399   2353    2708    2592  dbus       dbus-broker
    9723   1210    3608    7116  xtrnaw7    /usr/libexec/mate-brightness-applet
    1421   1409    3326     848  root       /usr/sbin/rsyslogd
    1717   1711    2975    1768  root       /usr/sbin/NetworkManager
   11054     56    4497     188  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=zygote
    9687    854    3674    7212  xtrnaw7    /usr/libexec/mate-applets/trashapplet
  155572    863    3136    6632  xtrnaw7    /usr/libexec/tracker-store
    9039   2024    1777     856  xtrnaw7    dbus-broker
    9836    173    3472    8052  xtrnaw7    /usr/bin/python
  107386     19    3571      80  xtrnaw7    bash
    9731   1289    2168     656  xtrnaw7    /usr/libexec/gvfsd-trash
    9508    717    2735    3112  xtrnaw7    /usr/libexec/xdg-desktop-portal-gtk
    2557    862    2528    1568  root       /usr/sbin/lightdm
  365836    152    3162    1172  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9627      0    3221    8100  xtrnaw7    /usr/bin/python3
    9438   1182    1960    1496  xtrnaw7    /usr/libexec/xdg-desktop-portal
    1345      6    3088       0  root       /sbin/multipathd
    9050    831    2253     608  xtrnaw7    /usr/libexec/gvfsd
    1915    884    2119    2148  root       /usr/bin/abrt-dump-journal-oops
    9289    161    2776    6448  xtrnaw7    /usr/libexec/goa-daemon
    9589    371    2539    4556  xtrnaw7    /usr/libexec/evolution-calendar-factory
    9547    851    2041     968  root       /usr/libexec/upowerd
    2497    122    2613     824  root       /usr/sbin/crond
    1401    752    1975    1132  root       /usr/libexec/accounts-daemon
    9549    911    1800    2080  root       /usr/sbin/abrt-dbus
  329615     87    2586   12420  apache     /usr/sbin/httpd
  329624     58    2605   12428  apache     /usr/sbin/httpd
  329614    117    2545   12420  apache     /usr/sbin/httpd
    9469    228    2249    4516  xtrnaw7    /usr/libexec/evolution-source-registry
  365758    170    2237    3508  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur  365714    123    2279    3396  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    1916    654    1745    2088  root       /usr/bin/abrt-dump-journal-xorg
    1914    703    1683    1968  root       /usr/bin/abrt-dump-journal-core
    2519   1218    1141    1560  root       /opt/teamviewer/tv_bin/teamviewerd
    1737     88    2251    3876  root       php-fpm: master process (/etc/php-fpm.conf)
    1400    592    1559    1848  root       /usr/sbin/ModemManager
    9872    570    1481    1812  xtrnaw7    /usr/libexec/gvfsd-computer
  155539    480    1555     540  xtrnaw7    /usr/libexec/gvfsd-network
  366698      7    2000    1536  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=renderer --field-trial-handle=400491755866208736,3501711437358555926,131072 --disable-gpu-compositing --lang=en-US --enable-auto-reload --origin-trial-disabled-featur    9679    130    1865    3716  xtrnaw7    /usr/libexec/evolution-addressbook-factory
   12374    285    1708     652  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=utility --field-trial-handle=400491755866208736,3501711437358555926,131072 --lang=en-US --service-sandbox-type=utility --enable-audio-service-sandbox --shared-files=v  155490      0    1990    1852  xtrnaw7    /bin/bash
    9366    166    1661    3532  xtrnaw7    abrt-applet
    9018    437    1322    1016  xtrnaw7    /usr/bin/gnome-keyring-daemon
    2039    606    1112     724  root       /usr/sbin/wpa_supplicant
    9948      4    1637    2064  xtrnaw7    /usr/lib64/virtualbox/VBoxXPCOMIPCD
    1439    323    1289     884  root       /usr/lib/systemd/systemd-logind
    1761    200    1217    1984  colord     /usr/libexec/colord
    9477    484     904     576  xtrnaw7    /usr/libexec/xdg-document-portal
    9507    338    1039     764  xtrnaw7    /usr/libexec/gvfs-afc-volume-monitor
    9475    402     970     640  xtrnaw7    /usr/libexec/gvfs-gphoto2-volume-monitor
    1437    226    1143    1024  root       /usr/lib/systemd/systemd-homed
    9298     60    1307    1300  xtrnaw7    /usr/libexec/polkit-mate-authentication-agent-1
    9557    220    1128    2352  xtrnaw7    /usr/bin/pipewire
    9492    394     910     492  xtrnaw7    /usr/libexec/gvfs-mtp-volume-monitor
    1738    259    1031     908  root       sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups
    9543      0    1252    3848  xtrnaw7    /usr/bin/python3
    9047     16    1219    1264  xtrnaw7    /usr/libexec/imsettings-daemon
    9284    355     812     356  xtrnaw7    /usr/libexec/gvfs-goa-volume-monitor
    1427    343     774    1360  root       /usr/sbin/smartd
    1486     20    1088    2412  root       /usr/sbin/abrtd
    9239    222     876     220  xtrnaw7    dbus-broker
    1398    120     953     936  dbus       /usr/bin/dbus-broker-launch
    9562    243     807    1860  xtrnaw7    /usr/bin/pipewire-media-session
    4131      4    1013    2056  root       lightdm
    9256    210     763     672  xtrnaw7    /usr/libexec/at-spi2-registryd
    1734      9     964    2376  root       /usr/sbin/cupsd
   50954     97     846    1664  xtrnaw7    /usr/libexec/gvfsd-http
    1405    148     782     316  root       /usr/libexec/bluetooth/bluetoothd
    1376    389     533     768  root       /sbin/auditd
    9055    152     702    1176  xtrnaw7    /usr/libexec/gvfsd-fuse
    9038    205     623     284  xtrnaw7    /usr/bin/dbus-broker-launch
  155557    177     636    1008  xtrnaw7    /usr/libexec/gvfsd-dnssd
    9462     45     687     996  xtrnaw7    /usr/libexec/goa-identity-service
    1404    197     527     240  avahi      avahi-daemon: running [t540p.local]
    9234     90     622     788  xtrnaw7    /usr/libexec/at-spi-bus-launcher
   10053      0     711     276  xtrnaw7    /usr/bin/ksh
    1429      2     613     632  root       /usr/libexec/switcheroo-control
    1418     30     569    1032  root       /sbin/rngd
    1378    145     397     324  root       /usr/sbin/sedispatch
    9599     48     474     320  xtrnaw7    /usr/bin/top
  369420     17     493      16  root       systemd-userwork
  369426      0     500       0  root       systemd-userwork
  369450      0     498       0  root       systemd-userwork
   14017      0     414     300  xtrnaw7    /bin/bash
    9490      2     385     568  xtrnaw7    /usr/libexec/xdg-permission-store
  329609      7     376    9940  apache     /usr/sbin/httpd
    1432    107     275     256  chrony     /usr/sbin/chronyd
    2546     17     330     588  root       /usr/libexec/nss_pcache
    9412      1     336     616  xtrnaw7    /usr/libexec/geoclue-2.0/demos/agent
  316766      5     302     556  xtrnaw7    /usr/bin/ssh-agent
    1423      2     288     284  rtkit      /usr/libexec/rtkit-daemon
  368859      0     273       0  xtrnaw7    mate-screenshot
  265887      0     272   12868  xtrnaw7    mate-screenshot
  368903      0     270       0  xtrnaw7    mate-screenshot
    1409     15     252     228  root       /usr/sbin/irqbalance
   11055     13     243      64  xtrnaw7    /data/tools/slimjet-26.0.12.0/nacl_helper
    9238      0     246     332  xtrnaw7    /usr/bin/dbus-broker-launch
    1470      5     238     260  root       /usr/sbin/alsactl
    2494     18     223     228  root       /usr/sbin/atd
    1775      0     238    3984  apache     php-fpm: pool www
    1777      0     234    3984  apache     php-fpm: pool www
    1776      0     219    3984  apache     php-fpm: pool www
    1774      0     217    3976  apache     php-fpm: pool www
    1773      0     214    3980  apache     php-fpm: pool www
    1746      1     207     680  root       /usr/sbin/gssproxy
   10096     32     167    1420  root       truecrypt
   13995      0     194     264  xtrnaw7    /bin/sh
  370078      0     185       0  xtrnaw7    ../bin/faultstat
    1413      1     173     104  root       /usr/sbin/mcelog
   11093      0     130     352  xtrnaw7    /data/tools/slimjet-26.0.12.0/slimjet --type=broker
    9500      1     118     108  xtrnaw7    fusermount
    9563      0     103     112  xtrnaw7    /usr/sbin/rfkill
   10094      0      85    1328  root       truecrypt
    9204     25      52     472  xtrnaw7    /usr/bin/ssh-agent
   10085      0      73     392  root       /usr/bin/dbus-daemon
    9835      0      64     256  xtrnaw7    sh
   10084      0      62     384  root       dbus-launch
    9008      0      51    3732  xtrnaw7    (sd-pam)
    2481      0      51     404  root       /usr/bin/rsync
    1454      0      46     320  avahi      avahi-daemon: chroot helper
   18661      0       0   20960  xtrnaw7    /usr/lib64/firefox/firefox
   10656      0       0   17100  xtrnaw7    /usr/lib64/firefox/firefox
   10630      0       0   10872  xtrnaw7    /usr/lib64/firefox/firefox
   10604      0       0    4284  xtrnaw7    /usr/lib64/firefox/firefox
   10578      0       0    5760  xtrnaw7    /usr/lib64/firefox/firefox
   10552      0       0   33484  xtrnaw7    /usr/lib64/firefox/firefox
   10524      0       0   21900  xtrnaw7    /usr/lib64/firefox/firefox
   10498      0       0   22988  xtrnaw7    /usr/lib64/firefox/firefox
   10409      0       0   10960  xtrnaw7    /usr/lib64/firefox/firefox
  Total:   1232k 115990k

[xtrnaw7@t540p /var/tmp/jwm/src]$




Using faultstat in top like mode:


[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/faultstat -t -d -a -s





fspy


fspy is a tool to monitor filesystem changes in realtime.

fspy usage
xtrnaw7@t61p Thu Oct 31 20:31:37 /var/tmp/jwm/bin $ ./fspy --help
Usage: fspy [options] [file/dir]

Options:
  -F, --filter STRING/REGEX    a string or regular expression which will be used to filter the output.
                               (the regex will be matched against the whole path e.g. [/etc/passwd])
  -I, --inverted STRING/REGEX    its the same like -F/--filter but inverted. you can combine both.
                               e.g. -F '.conf' -I 'wvdial.conf' will filter for files with ".conf"
                               in its name but without "wvdial.conf" in it.
  -R, --recursive NUMBER    enables the recursive engine to look at a depth of NUMBER.
  -A, --adaptive          (HIGHLY-EXPERIMENTAL) enables the adaptive mode. e.g. if new items will be added
                          within the path fspy will automatically add those items to the watch list.
  -D, --diff VALUE        (EXPERIMENTAL) enables the diffing feature.
                          VALUE may be a comma separated list of:
                          s - element size (byte)
                          A - last access time (e.g. Mon Jul 21 21:32:31 2008)
                          M - last modification time (e.g. Mon Jul 21 21:32:31 2008)
                          S - last status change time (e.g. Mon Jul 21 21:32:31 2008)
                          O - permissions (octal)
                          U - owner (uid)
                          G - group (gid)
                          I - inode number
                          D - device id
  -T, --type VALUE        specifies the type of objects to look for.
                          VALUE may be a comma separated list of:
                          f - regular file
                          d - directory
                          s - symlink
                          p - FIFO/pipe
                          c - character device
                          b - block device
                          o - socket
                          default is any.
  -O, --output VALUE        specifies output format.
                          VALUE may be a comma separated list of:
                          f - filename
                          p - path
                          d - access description
                          t - element type
                          s - element size (byte)
                          w - watch descriptor (inotify manpage)
                          c - cookie (inotify manpage)
                          m - access mask (inotify manpage | src/fsevents.h)
                          l - len (inotify manpage)
                          A - last access time (e.g. Mon Jul 21 21:32:31 2008)
                          M - last modification time (e.g. Mon Jul 21 21:32:31 2008)
                          S - last status change time (e.g. Mon Jul 21 21:32:31 2008)
                          O - permissions (octal)
                          U - owner (uid)
                          G - group (gid)
                          I - inode number
                          D - device id
                          T - date and time (for this event) (e.g. Tue Mar 25 09:23:16 CET 2008)
                          e.g.: '[,T,], ,d,:,p,f' would result in:
                          '[Mon Sep  1 12:31:25 2008] file was opened:/etc/passwd'
                          (take a look at the README).
  -h, --help            this short help.
      --version            version information.




health-check

"The health-check tool monitors processes in various ways to help identify areas where it is consuming too many resources. One can trace one or more processes (including all their threads and child processes too) for a full story of system activity.

Health-check can monitor:

    CPU usage
    Kernel wake-up events
    File I/O activity (open,read,write,close)
    System call activity
    Excessive polling of timeout wait blocked system calls (such as poll, select, etc)
    Memory usage (such as heap and stack growth)
    Network connections (to spot rogue internet activity)
    Network usage (send/receive) accounting
    Syncing data via fsync, fdatasync, syncfs and sync system calls
    Page fault accounting

..and can also dump the stats into a JSON formatted file for later analysis."

health-check usage
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../sbin/health-check -h
health-check, version 0.03.09

Usage: health-check [options] [command [options]]
Options are:
  -b        brief (terse) output
  -c            find all child processes on start-up
                (only useful with -p option)
  -d            specify the analysis duration in seconds
                (default is 60 seconds)
  -f        follow fork/vfork/clone system calls
  -h            show this help
  -p pid[,pid]  specify process id(s) or process name(s) to be traced
  -m max        specify maximum number of system calls to trace
        (default is 1000000)
  -o file       output results to a json data file
  -r            resolve IP addresses
  -u user       run command as a specified user
  -v            verbose output
  -w            monitor wakelock count
  -W            monitor wakelock usage (has overhead)
[xtrnaw7@t540p /var/tmp/jwm/src]$


 


health-check example
[[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo  /var/tmp/jwm/sbin/health-check  uname
Linux

CPU usage (in terms of 1 CPU):
   PID Process                USR%   SYS% TOTAL%   Duration
 14561 uname                  0.00   0.00   0.00       0.00  (idle)

Page Faults:
   PID Process                 Minor/sec    Major/sec    Total/sec
 14561 uname                    45189.50         0.00     45189.50

Context Switches:
   PID Process                Voluntary   Involuntary     Total
                             Ctxt Sw/Sec  Ctxt Sw/Sec  Ctxt Sw/Sec
 14561 uname                    48833.82         0.00     48833.82 (very high)

File I/O operations:
   PID Process               Count  Op  Filename
 14561 uname                     1    C /usr/lib/locale/locale-archive
 14561 uname                     1    C /usr/lib64/libc-2.26.so
 14561 uname                     1    C /usr/lib64/ld-2.26.so
 14561 uname                     1    C /usr/bin/uname
 14561 uname                     1    O /usr/lib/locale/locale-archive
 14561 uname                     1    C /etc/ld.so.cache
 14561 uname                     1    R /usr/lib64/libc-2.26.so
 14561 uname                     1    O /usr/lib64/libc-2.26.so
 14561 uname                     1    O /etc/ld.so.cache
 14561 uname                     1   OR /usr/lib64/ld-2.26.so
 14561 uname                     1   OR /usr/bin/uname
 Total                          11
 Op: O=Open, R=Read, W=Write, C=Close

File I/O Operations per second:
   PID Process                 Open   Close    Read   Write
 14561 uname                3644.31 3644.31 2186.59    0.00

System calls traced:
   PID Process              Syscall               Count    Rate/Sec    Total μSecs  % Call Time
 14561 uname                mmap                      6    4373.1778            50     11.6822
 14561 uname                close                     5    3644.3149            25      5.8411
 14561 uname                fstat                     4    2915.4519            19      4.4393
 14561 uname                brk                       4    2915.4519            25      5.8411
 14561 uname                mprotect                  4    2915.4519            25      5.8411
 14561 uname                openat                    2    1457.7259            15      3.5047
 14561 uname                access                    1     728.8630            12      2.8037
 14561 uname                open                      1     728.8630             9      2.1028
 14561 uname                read                      1     728.8630             6      1.4019
 14561 uname                write                     1     728.8630            30      7.0093
 14561 uname                munmap                    1     728.8630            10      2.3364
 14561 uname                uname                     1     728.8630             4      0.9346
 14561 uname                execve                    1     728.8630           194     45.3271
 14561 uname                arch_prctl                1     728.8630             4      0.9346
 14561 uname                exit_group                1     728.8630             0      0.0000
 Total                                               34   24781.3411           428

Filesystem Syncs:
 None.

Inotify watches added:
 None.

Memory:
Per Process Memory (K):
   PID Process              Type        Size       RSS       PSS
 14561 uname                Stack        132        12        12
 14561 uname                Heap         160        32        32
 14561 uname                Mapped    113328      2076        85

Change in memory (K/second):
   PID Process              Type        Size       RSS       PSS
 14561 uname                Stack       0.00  -2915.45  -2915.45 (shrinking very fast)
 14561 uname                Heap   -306122.45 -276967.93 -151603.50 (shrinking very fast)
 14561 uname                Mapped 76539358.60 1046647.23 -11661.81 (growing very fast)

Heap Change via brk():
   PID                       brk Count   Change (K)  Rate (K/Sec)
 14561 uname                         1            0          0.00 (no change)

Memory Change via mmap() and munmap():
   PID                         mmaps  munmaps  Change (K)  Rate (K/Sec)
 14561 uname                       6        1      113172      82486926.02 (growing very fast)

Open Network Connections:
 None.

Analysis ran for just 0.0014 seconds, so rate calculations may be misleading
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




hdperf


hdperf is a harddrive performance benchmark tool; the usage is

./hdperf [device] [secs]



horst

"horst is a small, lightweight IEEE802.11 WLAN analyzer with a text interface. Its basic function is similar to tcpdump, Wireshark or Kismet, but it's much smaller and shows different, aggregated information which is not easily available from other tools. It is made for debugging wireless LANs with a focus on getting a quick overview instead of deep packet inspection and has special features for Ad-hoc (IBSS) mode and mesh networks. It can be useful to get a quick overview of what's going on on all wireless LAN channels and to identify problems"

Usage

[[xtrnaw7@t540p /var/tmp/jwm/src/horst-5.1]$ ./horst -h

Usage: ./horst [options]

General Options: Description (default value)
  -v        show version
  -h        Help
  -q        Quiet, no output
  -D        Show lots of debug output, no UI
  -a        Always add virtual monitor interface
  -c <file>    Config file (/etc/horst.conf)
  -C <chan>    Set initial channel
  -i <intf>    Interface name (wlan0)
  -t <sec>    Node timeout in seconds (60)
  -d <ms>    Display update interval in ms (100)
  -V view    Display view: history|essid|statistics|spectrum
  -b <bytes>    Receive buffer size in bytes (not set)
  -M[filename]    MAC address to host name mapping (/tmp/dhcp.leases)

Feature Options:
  -s        (Poor mans) Spectrum analyzer mode
  -u        Upper channel limit

  -N        Allow network connection, server mode (off)
  -n <IP>    Connect to server with <IP>, client mode (off)
  -p <port>    Port number of server (4444)

  -o <filename>    Write packet info into 'filename'

  -X[filename]    Allow control socket on 'filename' (/tmp/horst)
  -x <command>    Send control command

Filter Options:
 Filters are generally 'positive' or 'inclusive' which means you define
 what you want to see, and everything else is getting filtered out.
 If a filter is not set it is inactive and nothing is filtered.
 Most filter options can be specified multiple times and will be combined
  -e <MAC>    Source MAC addresses (xx:xx:xx:xx:xx:xx), up to 9 times
  -f <PKT_NAME>    Filter packet types, multiple
  -m <MODE>    Operating mode: AP|STA|ADH|PRB|WDS|UNKNOWN, multiple
  -B <MAC>    BSSID (xx:xx:xx:xx:xx:xx), only one

[xtrnaw7@t540p /var/tmp/jwm/src/horst-5.1]$








hostscope

hostscope displays key system metrics of Linux hosts, such as detailed CPU load, speed and temperature, I/O rates of network interfaces, I/O rates of disks, and user process summary information. All metrics are multicast on the LAN, if wanted, and clients can switch between multiple hosts on the network."

hostscope contains the daemon hostscoped and the user interface hostscope. Starting hostscope will automatically also start the daemon hostscoped if it is not already running. To kill the daemon use hostscope -k.

If hostscope does not start the daemon and prints the error message

warning: executing /var/tmp/jwm/bin/../sbin/hostscoped returned 256

it's probably because hostscoped can not delete the existing PID file. In this case stop hostscope using CTRL-C; remove the PID file /var/tmp/hostscoped.pid manually, and restart hostscope. This might happen if you started hostscope before with a different userid.

To monitor multiple hosts hostscope uses multicast. Therefor to use this feature the port used by hostscope must be enabled in a running firewall. In the default configuration hostscope uses the multicast address  224.0.0.75 and the port 6375 for mulitcasts; to enable this port in the firewall in Fedora for example the command is:

sudo firewall-cmd --permanent--add-port=6375/udp

Use iperf to test if multicast is enabled for the port 6375
To test if Multicast is enabled for the port 6375 you can use iperf:

Test Multicasting on Port 6375:

Session 1:

[root@t540p ~]# iperf -s -u -B 224.0.0.75 -i 1 -p 6375
------------------------------------------------------------
Server listening on UDP port 6375
Binding to local address 224.0.0.75
Joining multicast group  224.0.0.75
Receiving 1470 byte datagrams
UDP buffer size:  208 KByte (default)
------------------------------------------------------------


Session 2:

[xtrnaw7@t540p test]$ iperf -c 224.0.0.75 -u -T 32 -t3 -i 1 -p 6375
------------------------------------------------------------
Client connecting to 224.0.0.75, UDP port 6375
Sending 1470 byte datagrams
Setting multicast TTL to 32
UDP buffer size:  208 KByte (default)
------------------------------------------------------------
[  3] local 192.168.1.164 port 57501 connected with 224.0.0.75 port 6375
[ ID] Interval       Transfer     Bandwidth
[  3]  0.0- 1.0 sec   129 KBytes  1.06 Mbits/sec
[  3]  1.0- 2.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  2.0- 3.0 sec   128 KBytes  1.05 Mbits/sec
[  3]  0.0- 3.0 sec   386 KBytes  1.05 Mbits/sec
[  3] Sent 269 datagrams
[xtrnaw7@t540p test]$

Now there should be Multicast packets listed also in session 1. If that works, stop iperf  in session 2 and start hostscope. Now you should see the mulitcast packets from hostscope in session 1.




Note:

Use the hostscope parameter -L to disable the multicast feature.

Use the parameter -p port or -m a:p to change the multicast address and or port used by hostscope.

hostscope usage
[JWM session] [root@t540p compile_scripts]# ../bin/hostscope -h
hostscope [option]
Options:
-h        : display this help screen and exit
-k        : kill hostscope's daemon
-L        : operate in local mode (no multicasts)
-l <log>  : write log to file <log>
-m <a:p>  : set multicast group address and port (optional) to <a:p>
-p <port> : set multicast group port to <port>
-v <lvl>  : set verbose mode to level <lvl>
-V        : display version number and exit
[JWM session] [root@t540p compile_scripts]#



hostscoped usage (if called manually)
[JWM session] [root@t540p compile_scripts]# ../sbin/hostscoped -h
hostscoped [options]
Options:
-h        : display this help screen and exit
-k        : kill hostscope's daemon
-l        : operate in pipe mode
-m <a:p>  : set multicast group address and port (optional) to <a:p>
-p <port> : set multicast group port to <port>
-f        : run in foreground mode - i.e. do not run as a daemon
-d        : disable disk stats gathering
-e        : enable effective uid determination
-u        : disable user process statistics gathering
-i        : disable user process I/O statistics gathering
-n        : omit network statistics
-v <num>  : set verbosity to num, where 0=silent and 5=debugging
-V        : display version number and exit
[JWM session] [root@t540p compile_scripts]#



You can use the script ${JWM_DIR}/scripts/hostscope.sh to use hostscope outside from JWM / Linux.






hping2


hping2 is a "command-line oriented TCP/IP packet assembler/analyzer".

hping2 usage
xtrnaw7@t61p Thu Oct 31 20:34:13 /var/tmp/jwm/bin $ ./hping2 --help
usage: hping host [options]
  -h  --help      show this help
  -v  --version   show version
  -c  --count     packet count
  -i  --interval  wait (uX for X microseconds, for example -i u1000)
      --fast      alias for -i u10000 (10 packets for second)
  -n  --numeric   numeric output
  -q  --quiet     quiet
  -I  --interface interface name (otherwise default routing interface)
  -V  --verbose   verbose mode
  -D  --debug     debugging info
  -z  --bind      bind ctrl+z to ttl           (default to dst port)
  -Z  --unbind    unbind ctrl+z
Mode
  default mode     TCP
  -0  --rawip      RAW IP mode
  -1  --icmp       ICMP mode
  -2  --udp        UDP mode
  -9  --listen     listen mode
IP
  -a  --spoof      spoof source address
  -t  --ttl        ttl (default 64)
  -N  --id         id (default random)
  -W  --winid      use win* id byte ordering
  -r  --rel        relativize id field          (to estimate host traffic)
  -f  --frag       split packets in more frag.  (may pass weak acl)
  -x  --morefrag   set more fragments flag
  -y  --dontfrag   set dont fragment flag
  -g  --fragoff    set the fragment offset
  -m  --mtu        set virtual mtu, implies --frag if packet size > mtu
  -o  --tos        type of service (default 0x00), try --tos help
  -G  --rroute     includes RECORD_ROUTE option and display the route buffer
  -H  --ipproto    set the IP protocol field, only in RAW IP mode
ICMP
  -C  --icmptype   icmp type (default echo request)
  -K  --icmpcode   icmp code (default 0)
      --icmp-ts    Alias for --icmp --icmptype 13 (ICMP timestamp)
      --icmp-addr  Alias for --icmp --icmptype 17 (ICMP address subnet mask)
      --icmp-help  display help for others icmp options
UDP/TCP
  -s  --baseport   base source port             (default random)
  -p  --destport   [+][+]<port> destination port(default 0) ctrl+z inc/dec
  -k  --keep       keep still source port
  -w  --win        winsize (default 64)
  -O  --tcpoff     set fake tcp data offset     (instead of tcphdrlen / 4)
  -Q  --seqnum     shows only tcp sequence number
  -b  --badcksum   (try to) send packets with a bad IP checksum
                   many systems will fix the IP checksum sending the packet
                   so you'll get bad UDP/TCP checksum instead.
  -M  --setseq     set TCP sequence number
  -L  --setack     set TCP ack
  -F  --fin        set FIN flag
  -S  --syn        set SYN flag
  -R  --rst        set RST flag
  -P  --push       set PUSH flag
  -A  --ack        set ACK flag
  -U  --urg        set URG flag
  -X  --xmas       set X unused flag (0x40)
  -Y  --ymas       set Y unused flag (0x80)
  --tcpexitcode    use last tcp->th_flags as exit code
  --tcp-timestamp  enable the TCP timestamp option to guess the HZ/uptime
Common
  -d  --data       data size                    (default is 0)
  -E  --file       data from file
  -e  --sign       add 'signature'
  -j  --dump       dump packets in hex
  -J  --print      dump printable characters
  -B  --safe       enable 'safe' protocol
  -u  --end        tell you when --file reached EOF and prevent rewind
  -T  --traceroute traceroute mode              (implies --bind and --ttl 1)
  --tr-stop        Exit when receive the first not ICMP in traceroute mode
  --tr-keep-ttl    Keep the source TTL fixed, useful to monitor just one hop
  --tr-no-rtt        Don't calculate/show RTT information in traceroute mode





htop


htop is a top replacement

htop usage
[xtrnaw7@t540p /var/tmp/jwm/src/htop-2.2.0]$ ./htop -h
htop 2.2.0 - (C) 2004-2018 Hisham Muhammad
Released under the GNU GPL.

-C --no-color               Use a monochrome color scheme
-d --delay=DELAY            Set the delay between updates, in tenths of seconds
-h --help                   Print this help screen
-s --sort-key=COLUMN        Sort by COLUMN (try --sort-key=help for a list)
-t --tree                   Show the tree view by default
-u --user=USERNAME          Show only processes of a given user
-p --pid=PID,[,PID,PID...]  Show only the given PIDs
-v --version                Print version info

Long options may be passed with a single dash.

Press F1 inside htop for online help.
See 'man htop' for more information.
[xtrnaw7@t540p /var/tmp/jwm/src/htop-2.2.0]$
 


htop screenshots:





use F1 while in htop for the online help:




Known columns in htop are (use F2 while in htop to access the setup):







View process I/O






httpry


"httpry is a tool designed for displaying and logging HTTP traffic. It is not intended to perform analysis itself, but instead to capture, parse and/or log the traffic for later analysis. It can be run in real-time displaying the live traffic on the wire, or as a daemon process that logs to an output file. It is written to be as lightweight and flexible as possible, so that it can be easily adaptable to different applications. It does not display the raw HTTP data transferred, but instead focuses on parsing and displaying the request/response line along with associated header fields."


httpry usage
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./httpry -h
httpry version 0.1.8 -- HTTP logging and information retrieval tool
Copyright (c) 2005-2014 Jason Bittel <jason.bittel@gmail.com>
Usage: httpry [ -dFhpqs ] [-b file ] [ -f format ] [ -i device ] [ -l threshold ]
              [ -m methods ] [ -n count ] [ -o file ] [ -P file ] [ -r file ]
              [ -t seconds] [ -u user ] [ 'expression' ]

   -b file      write HTTP packets to a binary dump file
   -d           run as daemon
   -f format    specify output format string
   -F           force output flush
   -h           print this help information
   -i device    listen on this interface
   -l threshold specify a rps threshold for rate statistics
   -m methods   specify request methods to parse
   -n count     set number of HTTP packets to parse
   -o file      write output to a file
   -p           disable promiscuous mode
   -P file      use custom PID filename when running in daemon mode
   -q           suppress non-critical output
   -r file      read packets from input file
   -s           run in HTTP requests per second mode
   -t seconds   specify the display interval for rate statistics
   -u user      set process owner
   expression   specify a bpf-style capture filter

Additional information can be found at:
   http://dumpsterventures.com/jason/httpry

[xtrnaw7@t540p /var/tmp/jwm/bin]$




httpry example
[xtrnaw7@t540p /var/tmp/jwm/src/httpry-master]$ sudo ./httpry
httpry version 0.1.8 -- HTTP logging and information retrieval tool
Copyright (c) 2005-2014 Jason Bittel <jason.bittel@gmail.com>
Starting capture on enp0s25 interface
2018-09-21 13:03:24.564    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /linuxperf.html    HTTP/1.1    -    -
2018-09-21 13:03:24.724    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    200    OK
2018-09-21 13:03:24.893    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /page.css    HTTP/1.1    -    -
2018-09-21 13:03:25.061    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    200    OK
2018-09-21 13:03:25.075    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/linux_perf_tools_full_1000.jpg    HTTP/1.1    -    -
2018-09-21 13:03:25.076    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/linux_observability_tools.png    HTTP/1.1    -    -
2018-09-21 13:03:25.077    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/linux_static_tools_333.png    HTTP/1.1    -    -
2018-09-21 13:03:25.077    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/linux_benchmarking_tools_333.png    HTTP/1.1    -    -
2018-09-21 13:03:25.078    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/linux_tuning_tools_333.png    HTTP/1.1    -    -
2018-09-21 13:03:25.078    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/linux_observability_sar_333.png    HTTP/1.1    -    -
2018-09-21 13:03:25.245    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.245    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/perf-tools_2016_333.png    HTTP/1.1    -    -
2018-09-21 13:03:25.246    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.246    192.168.1.164    184.168.188.1    >    GET    www.brendangregg.com    /Perf/bcc_tracing_tools_2016_333.png    HTTP/1.1    -    -
2018-09-21 13:03:25.249    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.251    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.252    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.253    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.402    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
2018-09-21 13:03:25.418    184.168.188.1    192.168.1.164    <    -    -    -    HTTP/1.1    304    Not Modified
^CCaught SIGINT, shutting down...
129 packets received, 0 packets dropped, 20 http packets parsed
368.6 packets/min, 57.1 http packets/min
[xtrnaw7@t540p /var/tmp/jwm/src/httpry-master]$




ibmonitor


"ibmonitor is an interactive linux console application which shows bandwidth consumed and total data transferred on all interfaces.

Its main features are:


ibmonitor usage
[xtrnaw7@t540p /data/download/ibmonitor]$ ./ibmonitor -h

ibmonitor version 1.4
usage: ibmonitor [--bits] [--bytes] [--max] [--avg]
        [--data] [--interval n] [--colors | --nocolors]
        [--dev regex] [--file proc] [--help] [--version]

The following command line options (and their explanation) are available:

--bits       -> Show output values in KBits/sec. This is the default.
--bytes      -> Show output values in KBytes/sec
--max        -> Show maximum values per interface
--avg        -> Show average values per interface
--interval n -> Set time interval as n seconds. The default is 2 seconds.   
--data       -> Show data transferred in KB/MB/GB
--colors     -> Show some fancy coloring! (This is the default)
--nocolors   -> No fancy coloring please!
--dev regex  -> Show output from device which matches regex
--file proc  -> Specify which file to use in the proc filesystem 
                for the interface byte counter
--help       -> Show help and exit
--version    -> Show version number and exit

While the program is running, the following keys
are recognized, which enables the user to change the output display
format of the program.

Note: ibmonitor responds directly to the single keystroke
      ie. the 'Enter' key need not be pressed

q    -> [q]uit
1-9  -> Set sleep time interval(in seconds) to the digit entered
m    -> Toggle display of [m]ax bandwidth
a    -> Toggle display of [a]verage bandwidth
i    -> Toggle display of values in KB[i]ts/sec (Kbps)
y    -> Toggle display of values in KB[y]tes/sec (KBps)
d    -> Toggle display of [d]ata transferred
s    -> Shift interface up/down.
        This should be followed by the interface number,
        and then the direction (u or d)
r    -> [r]eset all values
?/h  -> help screen for interactive commands




iftop


iftop is a top like tool to monitor the network bandwidth.

iftop usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ iftop -h
iftop: display bandwidth usage on an interface by host

Synopsis: iftop -h | [-npblNBP] [-i interface] [-f filter code]
                               [-F net/mask] [-G net6/mask6]

   -h                  display this message
   -n                  don't do hostname lookups
   -N                  don't convert port numbers to services
   -p                  run in promiscuous mode (show traffic between other
                       hosts on the same network segment)
   -b                  don't display a bar graph of traffic
   -B                  Display bandwidth in bytes
   -i interface        listen on named interface
   -f filter code      use filter code to select packets to count
                       (default: none, but only IP packets are counted)
   -F net/mask         show traffic flows in/out of IPv4 network
   -G net6/mask6       show traffic flows in/out of IPv6 network
   -l                  display and count link-local IPv6 traffic (default: off)
   -P                  show ports as well as hosts
   -m limit            sets the upper limit for the bandwidth scale
   -c config file      specifies an alternative configuration file
   -t                  use text interface without ncurses

   Sorting orders:
   -o 2s                Sort by first column (2s traffic average)
   -o 10s               Sort by second column (10s traffic average) [default]
   -o 40s               Sort by third column (40s traffic average)
   -o source            Sort by source address
   -o destination       Sort by destination address

   The following options are only available in combination with -t
   -s num              print one single text output afer num seconds, then quit
   -L num              number of lines to print

iftop, version 1.0pre4
copyright (c) 2002 Paul Warren <pdw@ex-parrot.com> and contributors
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$








inxi

inxi is a shell script to show the hardware and software configuration of a machine.


inxi Usage
[xtrnaw7@t540p /var/tmp/jwm/scripts]$ /var/tmp/jwm/scripts/inxi -h
inxi supports the following options. For more detailed information, see man inxi. If you start inxi with no arguments, it will
display a short system summary.

You can use these options alone or together, to show or add the item(s) you want to see: A, B, C, D, G, I, J, L, M, N, P, R, S,
W, d, f, i, j, l, m, n, o, p, r, s, t, u, w, --slots. If you use them with -v [level], -b or -F, inxi will add the requested
lines to the output.

Examples: inxi -v4 -c6 OR inxi -bDc 6 OR inxi -FzjJxy 80
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output Control Options:
 -a, --admin          Adds advanced sys admin data (only works with verbose or line output, not short form); check man page for
                      explanations!; also sets --extra=3:
                         -A  If available: list of alternate kernel modules/drivers for device(s).
                         -C  If available: CPU socket type, base/boost speeds (dmidecode+root/sudo required); CPU
                             vulnerabilities (bugs); family, model-id, stepping - format: hex (decimal) if greater than 9,
                             otherwise hex; microcode - format: hex.
                      -d,-D  If available: logical and physical block sizes; drive family; maj:min, USB drive specifics; SMART
                             report.
                         -G  If available: Xorg Display ID, Screens total, default Screen, current Screen; per X Screen:
                             resolution, dpi, size, diagonal; per Monitor: resolution; hz; dpi; size; diagonal; list of
                             alternate kernel modules/drivers for device(s).
                         -I  As well as per package manager counts, also adds total number of lib files found for each package
                             manager if not -r.
                   -j,-p,-P  For swap (if available): swappiness and vfs cache pressure, and if values are default or not.
                         -L  LV, Crypto, devices, components: add maj:min; show full device/components report (speed, mapped
                             names).
                      -n,-N  If available: list of alternate kernel modules/drivers for device(s).
                         -o  If available: maj:min of device.
                      -p,-P  If available: raw size of partitions, maj:min, percent available for user, block size of file
                             system (root required).
                         -r  Packages, see -Ia.
                         -R  mdraid: device maj:min; per component: size, maj:min, state.
                         -S  If available: kernel boot parameters.
 -A, --audio          Audio/sound card(s), driver, sound server.
 -b, --basic          Basic output, short form. Same as inxi -v 2.
 -B, --battery        System battery info, including charge and condition, plus extra info (if battery present).
 -c, --color          Set color scheme (0-42). For piped or redirected output, you must use an explicit color selector.
                      Example: inxi -c 11
                      Color selectors let you set the config file value for the selection (NOTE: IRC and global only show safe
                      color set)
                         94  Console, out of X
                         95  Terminal, running in X - like xTerm
                         96  Gui IRC, running in X - like Xchat, Quassel, Konversation etc.
                         97  Console IRC running in X - like irssi in xTerm
                         98  Console IRC not in X
                         99  Global - Overrides/removes all settings. Setting specific removes global.
 -C, --cpu            CPU output, including per CPU clock speed and max CPU speed (if available).
 -d, --disk-full, --optical
                      Optical drive data (and floppy disks, if present). Triggers -D.
 -D, --disk           Hard Disk info, including total storage and details for each disk. Disk total used percentage includes
                      swap partition size(s).
 -f, --flags          All CPU flags. Triggers -C. Not shown with -F to avoid spamming.
 -F, --full           Full output. Includes all Upper Case line letters except -W, plus --swap, -s and -n. Does not show extra
                      verbose options such as -d -f -i -l -m -o -p -r -t -u -x, unless specified.
 -G, --graphics       Graphics info (card(s), driver, display protocol (if available), display server/Wayland compositor,
                      resolution, renderer, OpenGL version).
 -i, --ip             WAN IP address and local interfaces (requires ifconfig or ip network tool). Triggers -n. Not shown with
                      -F for user security reasons. You shouldn't paste your local/WAN IP.
 -I, --info           General info, including processes, uptime, memory, IRC client or shell type, inxi version.
 -j, --swap           Swap in use. Includes partitions, zram, file.
 -J, --usb            Show USB data: Hubs and Devices.
 -l, --label          Partition labels. Triggers -P. For full -p output, use -pl.
 -L, --logical        Logical devices, LVM (VG, LV), LUKS, Crypto, bcache, etc. Shows compenents/devices, sizes, etc.
 -m, --memory         Memory (RAM) data. Requires root. Numbers of devices (slots) supported and individual memory devices
                      (sticks of memory etc). For devices, shows device locator, size, speed, type (e.g. DDR3). If neither -I
                      nor -tm are selected, also shows RAM used/total.
     --memory-modules Memory (RAM) data. Exclude empty module slots.
     --memory-short   Memory (RAM) data. Show only short Memory RAM report, number of arrays, slots, modules, and RAM type.
 -M, --machine        Machine data. Device type (desktop, server, laptop, VM etc.), motherboard, BIOS and, if present, system
                      builder (e.g. Lenovo). Shows UEFI/BIOS/UEFI [Legacy]. Older systems/kernels without the required /sys
                      data can use dmidecode instead, run as root. Dmidecode can be forced with --dmidecode
 -n, --network-advanced
                      Advanced Network card info. Triggers -N. Shows interface, speed, MAC id, state, etc.
 -N, --network        Network card(s), driver.
 -o, --unmounted      Unmounted partition info (includes UUID and Label if available). Shows file system type if you have lsblk
                      installed (Linux) or, for BSD/GNU Linux, if 'file' installed and you are root or if you have added to
                      /etc/sudoers (sudo v. 1.7 or newer).
                      Example:  <username> ALL = NOPASSWD: /usr/bin/file
 -p, --partitions-full
                      Full partition information (-P plus all other detected partitions).
 -P, --partitions     Basic partition info. Shows, if detected: / /boot /home /opt /tmp /usr /usr/home /var /var/log /var/tmp.
                      Swap partitions show if --swap is not used. Use -p to see all mounted partitions.
 -r, --repos          Distro repository data. Supported repo types: APK, APT, CARDS, EOPKG, PACMAN, PACMAN-G2, PISI, PORTAGE,
                      PORTS (BSDs), SLACKPKG, TCE, URPMQ, XBPS, YUM/ZYPP.
 -R, --raid           RAID data. Shows RAID devices, states, levels, array sizes, and components. md-raid: If device is
                      resyncing, also shows resync progress line.
 -s, --sensors        Sensors output (if sensors installed/configured): mobo/CPU/GPU temp; detected fan speeds. GPU temp only
                      for Fglrx/Nvidia drivers. Nvidia shows screen number for > 1 screen. IPMI sensors if present.
     --slots          PCI slots: type, speed, status. Requires root.
 -S, --system         System info: host name, kernel, desktop environment (if in X/Wayland), distro.
 -t, --processes      Processes. Requires extra options: c (CPU), m (memory), cm (CPU+memory). If followed by numbers 1-x,
                      shows that number of processes for each type (default: 5; if in IRC, max: 5).
                      Make sure that there is no space between letters and numbers (e.g. -t cm10).
 -u, --uuid           Partition UUIDs. Triggers -P. For full -p output, use -pu.
 -v, --verbosity      Set inxi verbosity level (0-8). Should not be used with -b or -F. Example: inxi -v 4
                          0  Same as: inxi
                          1  Basic verbose, -S + basic CPU + -G + basic Disk + -I.
                          2  Networking card (-N), Machine (-M), Battery (-B; if present), and, if present, basic RAID (devices
                             only; notes if inactive). Same as inxi -b
                          3  Advanced CPU (-C), battery (-B), network (-n); triggers -x.
                          4  Partition size/used data (-P) for (if present) /, /home, /var/, /boot. Shows full disk data (-D).
                          5  Audio card (-A), sensors (-s), memory/RAM (-m), partition label (-l), full swap (-j), UUID (-u),
                             short form of optical drives, standard RAID data (-R).
                          6  Full partition (-p), unmounted partition (-o), optical drive (-d), USB (-J), full RAID; triggers
                             -xx.
                          7  Network IP data (-i); triggers -xxx.
                          8  Everything available, including logical (-L), repos (-r), processes (-tcm), PCI slots (--slots).
 -w, --weather        Local weather data/time. To check an alternate location, see -W. NO AUTOMATED QUERIES ALLOWED!
 -W, --weather-location
                      [location] Supported options for [location]: postal code[,country/country code]; city, state
                      (USA)/country (country/two character country code); latitude, longitude. Only use if you want the weather
                      somewhere other than the machine running inxi. Use only ASCII characters, replace spaces in
                      city/state/country names with '+'. Example: inxi -W [new+york,ny london,gb madrid,es]
     --weather-source [1-9] Change weather data source. 1-4 generally active, 5-9 check. See man.
     --weather-unit   Set weather units to metric (m), imperial (i), metric/imperial (mi), or imperial/metric (im).
 -x, --extra          Adds the following extra data (only works with verbose or line output, not short form):
                         -A  Specific vendor/product information (if relevant); PCI Bus ID/USB ID number of card;
                             Version/port(s)/driver version (if available).
                         -B  Vendor/model, status (if available); attached devices (e.g. wireless mouse, keyboard, if present).
                         -C  CPU flags (short list, use -f to see full list); CPU boost (turbo) enabled/disabled, if present;
                             Bogomips on CPU; CPU microarchitecture + revision (if found, or unless --admin, then shows as
                             'stepping').
                         -d  Extra optical drive features data; adds rev version to optical drive.
                         -D  HDD temp with disk data if you have hddtemp installed, if you are root, or if you have added to
                             /etc/sudoers (sudo v. 1.7 or newer). Example: <username> ALL = NOPASSWD: /usr/sbin/hddtemp
                         -G  Specific vendor/product information (if relevant); PCI Bus ID/USB ID number of card; Direct
                             rendering status (in X); Screen number GPU is running on (Nvidia only).
                         -i  For IPv6, show additional scope addresses: Global, Site, Temporary, Unknown. See --limit for large
                             counts of IP addresses.
                         -I  Default system GCC. With -xx, also shows other installed GCC versions. If running in shell, not in
                             IRC client, shows shell version number, if detected. Init/RC type and runlevel (if available).
                             Total count of all packages discovered in system and not -r.
                         -j  Add mapped: name if partition mapped.
                         -J  For Device: driver.
                         -L  For VG > LV, and other Devices, dm:
        -m,--memory-modules  Max memory module size (if available), device type.
                         -N  Specific vendor/product information (if relevant); PCI Bus ID/USB ID number of card;
                             Version/port(s)/driver version (if available).
                   -o,-p,-P  Add mapped: name if partition mapped.
                         -r  Packages, see -Ix.
                         -R  md-raid: second RAID Info line with extra data: blocks, chunk size, bitmap (if present). Resync
                             line, shows blocks synced/total blocks. Hardware RAID driver version, bus ID.
                         -s  Basic voltages (ipmi, lm-sensors if present): 12v, 5v, 3.3v, vbat.
                         -S  Kernel gcc version; system base of distro (if relevant and detected)
                         -t  Adds memory use output to CPU (-xt c), and CPU use to memory (-xt m).
                      -w -W  Wind speed and direction, humidity, pressure, and time zone, if available.
-xx, --extra 2        Show extra, extra data (only works with verbose or line output, not short form):
                         -A  Chip vendor:product ID for each audio device.
                         -B  Serial number, voltage now/minimum (if available).
                         -C  L1/L3 cache (if root and dmidecode installed).
                         -D  Disk transfer speed; NVMe lanes; Disk serial number; LVM volume group free space (if available).
                         -G  Chip vendor:product ID for each video card; OpenGL compatibility version, if free drivers and
                             available; Xorg compositor; alternate Xorg drivers (if available). Alternate means driver is on
                             automatic driver check list of Xorg for the card vendor, but is not installed on system; Xorg dpi.
                         -I  Other detected installed gcc versions (if present). System default runlevel. Adds parent program
                             (or tty) for shell info if not in IRC. Adds Init version number, RC (if found). Adds per package
                             manager package counts if not -r.
                   -j,-p,-P  Swap priority.
                         -J  Vendor:chip ID.
                         -L  Show internal LVM volumes, like raid image/meta volumes; for LVM RAID, adds RAID report line (if
                             not -R); show all components > devices, number of 'c' or 'p' indicate depth of device.
        -m,--memory-modules  Manufacturer, part number; single/double bank (if found).
                         -M  Chassis info, BIOS ROM size (dmidecode only), if available.
                         -N  Chip vendor:product ID.
                         -r  Packages, see -Ixx.
                         -R  md-raid: Superblock (if present), algorithm. If resync, shows progress bar. Hardware RAID Chip
                             vendor:product ID.
                         -s  DIMM/SOC voltages (ipmi only).
                         -S  Display manager (dm) in desktop output (e.g. kdm, gdm3, lightdm); active window manager if
                             detected; desktop toolkit, if available (Xfce/KDE/Trinity only).
                    --slots  Slot length.
                      -w -W  Snow, rain, precipitation, (last observed hour), cloud cover, wind chill, dew point, heat index,
                             if available.
-xxx, --extra 3       Show extra, extra, extra data (only works with verbose or line output, not short form):
                         -A  Serial number.
                         -B  Chemistry, cycles, location (if available).
                         -C  CPU voltage, external clock speed (if root and dmidecode installed).
                         -D  Firmware rev. if available; partition scheme, in some cases; disk rotation speed (if detected).
                         -I  For 'Shell:' adds ([su|sudo|login]) to shell name if present; adds default shell+version if
                             different; for 'running in:' adds (SSH) if SSH session; adds wakeups: (from suspend) to Uptime.
                         -J  For Device: serial number (if present), interface count; USB speed.
        -m,--memory-modules  Width of memory bus, data and total (if present and greater than data); Detail for Type, if
                             present; module voltage, if available; serial number.
                         -N  Serial number.
                         -R  zfs-raid: portion allocated (used) by RAID devices/arrays. md-raid: system md-raid support types
                             (kernel support, read ahead, RAID events). Hardware RAID rev, ports, specific vendor/product
                             information.
                         -S  Panel/tray/bar/dock info in desktop output, if in X (like lxpanel, xfce4-panel, mate-panel); (if
                             available) dm version number, window manager version number.
                      -w -W  Location (uses -z/irc filter), weather observation time, altitude, sunrise/sunset, if available.
 -y, --width          Output line width max (integer >= 80). Overrides IRC/Terminal settings or actual widths. If no integer
                      give, defaults to 80. -1 removes line lengths. 1 switches output to 1 key/value pair per line.
                      Example: inxi -y 130
 -z, --filter         Adds security filters for IP/MAC addresses, serial numbers, location (-w), user home directory name, host
                      item. Default on for IRC clients.
     --filter-label   Filters out partition labels in -j, -o, -p, -P, -Sa.
 -Z, --filter-override
                      Override for output filters. Useful for debugging networking issues in IRC, for example.
     --filter-uuid    Filters out partition UUIDs in -j, -o, -p, -P, -Sa.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Additional Options:
 -h, --help           This help menu.
     --recommends     Checks inxi application dependencies + recommends, and directories, then shows what package(s) you need
                      to install to add support for that feature.
 -U, --update         Auto-update inxi. Will also install/update man page. Note: if you installed as root, you must be root to
                      update, otherwise user is fine. Man page installs require root. No arguments downloads from main inxi git
                      repo.
                      Use alternate sources for updating inxi
                          1  Get the git branch one version.
                          2  Get the git branch two version.
                          3  Get the dev server (smxi.org) version.
                     <http>  Get a version of inxi from your own server. Use the full download path,
                             e.g. inxi -U https://myserver.com/inxi
 -V, --version        Prints inxi version info then exits.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Advanced Options:
     --alt            Trigger for various advanced options:
                         40  Bypass Perl as a downloader option.
                         41  Bypass Curl as a downloader option.
                         42  Bypass Fetch as a downloader option.
                         43  Bypass Wget as a downloader option.
                         44  Bypass Curl, Fetch, and Wget as downloader options. Forces Perl if HTTP::Tiny present.
     --dig            Overrides configuration item NO_DIG (resets to default).
     --display        [:[0-9]] Try to get display data out of X (default: display 0).
     --dmidecode      Force use of dmidecode data instead of /sys where relevant (e.g. -M, -B).
     --downloader     Force inxi to use [curl|fetch|perl|wget] for downloads.
     --hddtemp        Force use of hddtemp for disk temps.
     --host           Turn on hostname for -S.
     --html-wan       Overrides configuration item NO_HTML_WAN (resets to default).
     --indent-min     Set point where inxi autowraps line starters.
     --limit          [-1; 1-x] Set max output limit of IP addresses for -i (default 10; -1 removes limit).
     --man            Install correct man version for dev branch (-U 3) or pinxi using -U.
     --no-dig         Skip dig for WAN IP checks, use downloader program.
     --no-host        Turn off hostname for -S. Useful if showing output from servers etc.
     --no-html-wan    Skip HTML IP sources for WAN IP checks, use dig only, or nothing if --no-dig.
     --no-man         Disable man install for all -U update actions.
     --no-ssl         Skip SSL certificate checks for all downloader actions (Wget/Fetch/Curl/Perl-HTTP::Tiny).
     --no-sudo        Skip internal program use of sudo features (not related to starting inxi with sudo).
     --output         [json|screen|xml] Change data output type. Requires --output-file if not screen.
     --output-file    [Full filepath|print] Output file to be used for --output.
     --partition-sort [dev-base|fs|id|label|percent-used|size|uuid|used] Change sort order of partition output. See man page
                      for specifics.
     --sensors-default
                      Removes configuration item SENSORS_USE and SENSORS_EXCLUDE. Same as default behavior.
     --sensors-exclude
                      [sensor[s] name, comma separated] Exclude supplied sensor array[s] for -s output (lm-sensors, Linux
                      only).
     --sensors-use    [sensor[s] name, comma separated] Use only supplied sensor array[s] for -s output (lm-sensors, Linux
                      only).
     --sleep          [0-x.x] Change CPU sleep time, in seconds, for -C (default: 0.35). Allows system to catch up and show a
                      more accurate CPU use. Example: inxi -Cxxx --sleep 0.15
     --tty            Forces irc flag to false. Generally useful if inxi is running inside of another tool like Chef or MOTD
                      and returns corrupted color codes. Please see man page or file an issue if you need to use this flag.
                      Must use -y [width] option if you want a specific output width. Always put this option first in an option
                      list.
     --usb-sys        Force USB data to use /sys as data source (Linux only).
     --usb-tool       Force USB data to use lsusb as data source (Linux only).
     --wan-ip-url     [URL] Skips dig, uses supplied URL for WAN IP (-i). URL output must end in the IP address. See man.
                      Example: inxi -i --wan-ip-url https://yoursite.com/ip.php
     --wm             Force wm: to use wmctrl as data source. Default uses ps.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Debugging Options:
     --dbg            Specific debuggers, change often. Only 1 is constant:
                          1  Show downloader output. Turns off quiet mode.
     --debug          Triggers debugging modes.
                        1-3  On screen debugger output.
                         10  Basic logging.
                         11  Full file/system info logging.
                      The following create a tar.gz file of system data, plus inxi output. To automatically upload debugger
                      data tar.gz file to ftp.smxi.org: inxi --debug 21
                         20  Full system data collection: /sys; xorg conf and log data, xrandr, xprop, xdpyinfo, glxinfo etc.;
                             data from dev, disks, partitions, etc.
                         21  Upload debugger dataset to inxi debugger server automatically, removes debugger data directory,
                             leaves tar.gz debugger file.
                         22  Upload debugger dataset to inxi debugger server automatically, removes debugger data directory and
                             debugger tar.gz file.
     --debug-proc     Force debugger parsing of /proc as sudo/root.
     --debug-proc-print
                      To locate file that /proc debugger hangs on.
     --debug-no-exit  Skip exit on error to allow completion.
     --debug-no-proc  Skip /proc debugging in case of a hang.
     --debug-no-sys   Skip /sys debugging in case of a hang.
     --debug-sys      Force PowerPC debugger parsing of /sys as sudo/root.
     --debug-sys-print
                      To locate file that /sys debugger hangs on.
     --ftp            Use with --debugger 21 to trigger an alternate FTP server for upload. Format: [ftp.xx.xx/yy]. Must
                      include a remote directory to upload to. Example: inxi --debug 21 --ftp ftp.myserver.com/incoming
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
[xtrnaw7@t540p /var/tmp/jwm/scripts]$





inxi example
[xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./inxi -Fx  -c0
System:    Host: t540p Kernel: 5.9.15-200.fc33.x86_64 x86_64 bits: 64 compiler: gcc v: 2.35-15.fc33) Desktop: MATE 1.24.1
           Distro: Fedora release 33 (Thirty Three)
Machine:   Type: Laptop System: LENOVO product: 20BECTO1WW v: ThinkPad T540p serial: <superuser required>
           Mobo: LENOVO model: 20BECTO1WW v: 0B98401 Pro serial: <superuser required> UEFI [Legacy]: LENOVO
           v: GMET90WW (2.38 ) date: 04/13/2020
Battery:   ID-1: BAT0 charge: 81.5 Wh condition: 83.0/99.5 Wh (83%) model: SANYO 45N1779 status: Unknown
CPU:       Info: Quad Core model: Intel Core i7-4900MQ bits: 64 type: MT MCP arch: Haswell rev: 3 L2 cache: 8 MiB
           flags: avx avx2 lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx bogomips: 44699
           Speed: 1891 MHz min/max: 800/3800 MHz Core speeds (MHz): 1: 1891 2: 3112 3: 2342 4: 1502 5: 2072 6: 2814 7: 2188
           8: 1826
Graphics:  Device-1: Intel 4th Gen Core Processor Integrated Graphics vendor: Lenovo driver: i915 v: kernel bus ID: 00:02.0
           Device-2: NVIDIA GK208M [GeForce GT 730M] vendor: Lenovo driver: nvidia v: 455.45.01 bus ID: 01:00.0
           Device-3: Acer Integrated Camera type: USB driver: uvcvideo bus ID: 3-12:7
           Display: x11 server: Fedora Project X.org 1.20.10 driver: modesetting,nvidia unloaded: fbdev,nouveau,vesa
           resolution: 2880x1620~60Hz
           OpenGL: renderer: Mesa DRI Intel HD Graphics 4600 (HSW GT2) v: 4.5 Mesa 20.2.6 direct render: Yes
Audio:     Device-1: Intel Xeon E3-1200 v3/4th Gen Core Processor HD Audio vendor: Lenovo driver: snd_hda_intel v: kernel
           bus ID: 00:03.0
           Device-2: Intel 8 Series/C220 Series High Definition Audio vendor: Lenovo driver: snd_hda_intel v: kernel
           bus ID: 00:1b.0
           Sound Server: ALSA v: k5.9.15-200.fc33.x86_64
Network:   Device-1: Intel Ethernet I217-LM vendor: Lenovo driver: e1000e v: kernel port: 5080 bus ID: 00:19.0
           IF: enp0s25 state: up speed: 1000 Mbps duplex: full mac: 54:ee:75:05:d4:4e
           Device-2: Intel Wireless 7260 driver: iwlwifi v: kernel port: 4000 bus ID: 04:00.0
           IF: wlp4s0 state: up mac: 7c:7a:91:85:93:32
Drives:    Local Storage: total: 4.56 TiB used: 1.52 TiB (33.3%)
           ID-1: /dev/sda vendor: Samsung model: SSD 870 QVO 4TB size: 3.64 TiB temp: 30 C
           ID-2: /dev/sdb vendor: SanDisk model: SSD U110 16GB size: 14.91 GiB
           ID-3: /dev/sdc vendor: Western Digital model: WD10JPVX-08JC3T5 size: 931.51 GiB
Partition: ID-1: / size: 3.55 TiB used: 847.26 GiB (23.3%) fs: btrfs dev: /dev/dm-0
           mapped: luks-cb1b260b-db85-4342-a7ab-84bd49f8f6bc
           ID-2: /boot size: 3.87 GiB used: 2.41 GiB (62.2%) fs: ext4 dev: /dev/sda2
           ID-3: /home size: 3.55 TiB used: 847.26 GiB (23.3%) fs: btrfs dev: /dev/dm-0
           mapped: luks-cb1b260b-db85-4342-a7ab-84bd49f8f6bc
           ID-4: /var size: 3.55 TiB used: 847.26 GiB (23.3%) fs: btrfs dev: /dev/dm-0
           mapped: luks-cb1b260b-db85-4342-a7ab-84bd49f8f6bc
Swap:      ID-1: swap-1 type: partition size: 32 GiB used: 7.51 GiB (23.5%) dev: /dev/sda4
Sensors:   System Temperatures: cpu: 52.0 C mobo: 0.0 C
           Fan Speeds (RPM): cpu: 2068
Info:      Processes: 476 Uptime: 3d 2h 09m Memory: 15.33 GiB used: 13.81 GiB (90.1%) Init: systemd runlevel: 5 Compilers:
           gcc: 10.2.1 clang: 11.0.0 Packages: 3642 Shell: Bash v: 5.0.17 inxi: 3.2.01
[xtrnaw7@t540p /var/tmp/jwm/scripts]$





ifstat


ifstat is another network bandwith monitoring tool

ifstat usage
xtrnaw7@t61p Thu Oct 31 20:35:41 /var/tmp/jwm/bin $ ./ifstat --help
ifstat: invalid option '--'.
usage: ifstat [-a] [-l] [-z] [-n] [-v] [-h] [-t] [-i if0,if1,...]
       [-d drv[:opt]] [-s [comm@][#]host[/nn]] [-T] [-A] [-w]
       [-W] [-S] [-b] [-q] [delay[/delay] [count]]



ifstat example

[JWM session] [root@t540p jwm]# ifstat 1
       em1                wlp4s0              virbr0             vboxnet0    
 KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out   KB/s in  KB/s out
    9.83      0.92      0.00      0.00      0.00      0.00      0.00      0.00
   13.86      0.92      0.00      0.00      0.00      0.00      0.00      0.00
   10.59      0.92      0.00      0.00      0.00      0.00      0.00      0.00
   15.97      1.05      0.00      0.00      0.00      0.00      0.00      0.06
    6.74      0.92      0.00      0.00      0.00      0.00      0.00      0.00
    9.26      0.92      0.00      0.00      0.00      0.00      0.00      0.00
    9.95      0.92      0.00      0.00      0.00      0.00      0.00      0.00
    9.36      0.98      0.00      0.00      0.00      0.00      0.00      0.00
   11.04      0.92      0.00      0.00      0.00      0.00      0.00      0.00
^C




inotifywait / inotifywatch


inotifywait and inotifywatch are programs that can be used to monitor and act upon filesystem events.

For more information see the website https://github.com/rvoicilas/inotify-tools/wiki.



Intel Performance Counter Monitor

Various tools from Intel to monitor the CPU performance counter.


*** pcm-core.x :
 Intel(r) Performance Counter Monitor: Core Monitoring Utility

 Copyright (c) 2009-2016 Intel Corporation

Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm-core.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                               => time interval to sample performance counters.
                                            If not specified, or 0, with external program given
                                            will read counters only after external program finishes
 Supported <options> are:
  -h    | --help      | /h               => print this help and exit
  -c    | /c                             => print CPU Model name and exit (used for pmu-query.py)
  -csv[=file.csv]     | /csv[=file.csv]  => output compact CSV format to screen or
                                            to a file, in case filename is provided
  [-e event1] [-e event2] [-e event3] .. => optional list of custom events to monitor (up to 4).
  -yc   | --yescores  | /yc              => enable specific cores to output
 Examples:
  ./pcm-core.x 1                   => print counters every second without core and socket output
  ./pcm-core.x 0.5 -csv=test.log   => twice a second save counter values to test.log in CSV format
  ./pcm-core.x /csv 5 2>/dev/null  => one sampe every 5 seconds, and discard all diagnostic output



*** pcm-memory.x :
 Intel(r) Performance Counter Monitor: Memory Bandwidth Monitoring Utility V2.11 (2016-04-20 12:01:09 +0200 ID=56de28a)

 Copyright (c) 2009-2016 Intel Corporation
 This utility measures memory bandwidth per channel or per DIMM rank in real-time

Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm-memory.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                           => time interval to sample performance counters.
                                        If not specified, or 0, with external program given
                                        will read counters only after external program finishes
 Supported <options> are:
  -h    | --help  | /h               => print this help and exit
  -rank=X | /rank=X                  => monitor DIMM rank X. At most 2 out of 8 total ranks can be monitored simultaneously.
  -csv[=file.csv] | /csv[=file.csv]  => output compact CSV format to screen or
                                        to a file, in case filename is provided
  -columns=X | /columns=X            => Number of columns to display the NUMA Nodes, defaults to 2.
 Examples:
  ./pcm-memory.x 1                  => print counters every second without core and socket output
  ./pcm-memory.x 0.5 -csv=test.log  => twice a second save counter values to test.log in CSV format
  ./pcm-memory.x /csv 5 2>/dev/null => one sampe every 5 seconds, and discard all diagnostic output



*** pcm-msr.x :
 Intel(r) Performance Counter Monitor V2.11 (2016-04-20 12:01:09 +0200 ID=56de28a)
 Copyright (c) 2009-2016 Intel Corporation

 MSR read/write utility

./pcm-msr.x: invalid option -- '-'
Usage ./pcm-msr.x [-w value] [-c core] [-d] msr

  Reads specified msr (model specific register)
   -w value : write the value before reading
   -c core  : perform msr read/write on specified core (default is 0)
   -d       : output all numbers in dec (default is hex)



*** pcm-numa.x :
 Intel(r) Performance Counter Monitor: NUMA monitoring utility
 Copyright (c) 2009-2016 Intel Corporation

Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm-numa.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                           => time interval to sample performance counters.
                                        If not specified, or 0, with external program given
                                        will read counters only after external program finishes
 Supported <options> are:
  -h    | --help  | /h               => print this help and exit
  -csv[=file.csv] | /csv[=file.csv]  => output compact CSV format to screen or
                                        to a file, in case filename is provided
 Examples:
  ./pcm-numa.x 1                  => print counters every second without core and socket output
  ./pcm-numa.x 0.5 -csv=test.log  => twice a second save counter values to test.log in CSV format
  ./pcm-numa.x /csv 5 2>/dev/null => one sample every 5 seconds, and discard all diagnostic output



*** pcm-pcie.x :
 Intel(r) Performance Counter Monitor: PCIe Bandwidth Monitoring Utility

 Copyright (c) 2009-2016 Intel Corporation
 This utility measures PCIe bandwidth in real-time

 PCIe event definitions (each event counts as a transfer):
   PCIe read events (PCI devices reading from memory - application writes to disk/network/PCIe device):
     PCIePRd   - PCIe UC read transfer (partial cache line)
     PCIeRdCur* - PCIe read current transfer (full cache line)
         On Haswell Server PCIeRdCur counts both full/partial cache lines
     RFO*      - Demand Data RFO
     CRd*      - Demand Code Read
     DRd       - Demand Data Read
     PCIeNSWr  - PCIe Non-snoop write transfer (partial cache line)
   PCIe write events (PCI devices writing to memory - application reads from disk/network/PCIe device):
     PCIeWiLF  - PCIe Write transfer (non-allocating) (full cache line)
     PCIeItoM  - PCIe Write transfer (allocating) (full cache line)
     PCIeNSWr  - PCIe Non-snoop write transfer (partial cache line)
     PCIeNSWrF - PCIe Non-snoop write transfer (full cache line)
     ItoM      - PCIe write full cache line
     RFO       - PCIe parial Write
   CPU MMIO events (CPU reading/writing to PCIe devices):
     PRd       - MMIO Read [Haswell Server only] (Partial Cache Line)
     WiL       - MMIO Write (Full/Partial)

 * - NOTE: Depending on the configuration of your BIOS, this tool may report '0' if the message
           has not been selected.

Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm-pcie.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                           => time interval to sample performance counters.
                                        If not specified, or 0, with external program given
                                        will read counters only after external program finishes
 Supported <options> are:
  -h    | --help  | /h               => print this help and exit
  -csv[=file.csv] | /csv[=file.csv]  => output compact CSV format to screen or
                                        to a file, in case filename is provided
  -B                                 => Estimate PCIe B/W (in Bytes/sec) by multiplying
                                        the number of transfers by the cache line size (=64 bytes).
 It overestimates the bandwidth under traffic with many partial cache line transfers.

 PCIe event definitions (each event counts as a transfer):
   PCIe read events (PCI devices reading from memory - application writes to disk/network/PCIe device):
     PCIePRd   - PCIe UC read transfer (partial cache line)
     PCIeRdCur* - PCIe read current transfer (full cache line)
         On Haswell Server PCIeRdCur counts both full/partial cache lines
     RFO*      - Demand Data RFO
     CRd*      - Demand Code Read
     DRd       - Demand Data Read
     PCIeNSWr  - PCIe Non-snoop write transfer (partial cache line)
   PCIe write events (PCI devices writing to memory - application reads from disk/network/PCIe device):
     PCIeWiLF  - PCIe Write transfer (non-allocating) (full cache line)
     PCIeItoM  - PCIe Write transfer (allocating) (full cache line)
     PCIeNSWr  - PCIe Non-snoop write transfer (partial cache line)
     PCIeNSWrF - PCIe Non-snoop write transfer (full cache line)
     ItoM      - PCIe write full cache line
     RFO       - PCIe parial Write
   CPU MMIO events (CPU reading/writing to PCIe devices):
     PRd       - MMIO Read [Haswell Server only] (Partial Cache Line)
     WiL       - MMIO Write (Full/Partial)

 * - NOTE: Depending on the configuration of your BIOS, this tool may report '0' if the message
           has not been selected.


 Examples:
  ./pcm-pcie.x 1                  => print counters every second without core and socket output
  ./pcm-pcie.x 0.5 -csv=test.log  => twice a second save counter values to test.log in CSV format
  ./pcm-pcie.x /csv 5 2>/dev/null => one sampe every 5 seconds, and discard all diagnostic output



*** pcm-power.x :
 Intel(r) Performance Counter Monitor V2.11 (2016-04-20 12:01:09 +0200 ID=56de28a)

 Power Monitoring Utility
 Copyright (c) 2009-2016 Intel Corporation
Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm-power.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                           => time interval to sample performance counters.
                                        If not specified, or 0, with external program given
                                        will read counters only after external program finishes
 Supported <options> are:
  -h    | --help  | /h               => print this help and exit
  [-m imc_profile] [-p pcu_profile] [-a freq_band0] [-b freq_band1] [-c freq_band2]

 Where: imc_profile, pcu_profile, freq_band0, freq_band1 and freq_band2 are the following:
  <imc_profile>      - profile (counter group) for IMC PMU. Possible values are: 0,1,2,3,4,-1
                       profile  0 - rank 0 and rank 1 residencies (default)
                       profile  1 - rank 2 and rank 3 residencies
                       profile  2 - rank 4 and rank 5 residencies
                       profile  3 - rank 6 and rank 7 residencies
                       profile  4 - self-refresh residencies
                       profile -1 - omit IMC PMU output
  <pcu_profile>      - profile (counter group) for PCU PMU. Possible values are: 0,1,2,3,4,5,-1
                       profile  0 - frequency residencies (default)
                       profile  1 - core C-state residencies. The unit is the number of physical cores on the socket who were in C0, C3 or C6 during the measurement interval (e.g. 'C0 residency is 3.5' means on average 3.5 physical cores were resident in C0 state)
                       profile  2 - Prochot (throttled) residencies and thermal frequency limit cycles
                       profile  3 - {Thermal,Power,Clipped} frequency limit cycles
                       profile  4 - {OS,Power,Clipped} frequency limit cycles
                       profile  5 - frequency transition statistics
                       profile  6 - package C-states residency and transition statistics
                       profile  7 - UFS transition statistics (1)
                       profile  8 - UFS transition statistics (2)
                       profile -1 - omit PCU PMU output
  <freq_band0>       - frequency minumum for band 0 for PCU frequency residency profile [in 100MHz units] (default is 12= 1200MHz)
  <freq_band1>       - frequency minumum for band 1 for PCU frequency residency profile [in 100MHz units] (default is 20= 2000MHz)
  <freq_band2>       - frequency minumum for band 2 for PCU frequency residency profile [in 100MHz units] (default is 40= 4000MHz)



*** pcm-sensor.x :
Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

Can not access CPU counters. Try to run pcm.x 1 to check the PMU access status
.


*** pcm-tsx.x :
 Intel(r) Performance Counter Monitor: Intel(r) Transactional Synchronization Extensions Monitoring Utility

 Copyright (c) 2009-2016 Intel Corporation

Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm-tsx.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                           => time interval to sample performance counters.
                                        If not specified, or 0, with external program given
                                        will read counters only after external program finishes
 Supported <options> are:
  -h    | --help  | /h               => print this help and exit
  -F    | -force                     => force running this program despite lack of HW RTM support (optional)
  -csv[=file.csv] | /csv[=file.csv]  => output compact CSV format to screen or
                                        to a file, in case filename is provided
  [-e event1] [-e event2] [-e event3]=> optional list of custom TSX events to monitor (up to 4).  The list of supported events:
RTM_RETIRED.START    Number of times an RTM execution started.
RTM_RETIRED.COMMIT    Number of times an RTM execution successfully committed
RTM_RETIRED.ABORTED    Number of times an RTM execution aborted due to any reasons (multiple categories may count as one)
RTM_RETIRED.ABO*** pcm-tsx.x : RTED_MISC1    Number of times an RTM execution aborted due to various memory events
RTM_RETIRED.ABORTED_MISC2    Number of times an RTM execution aborted due to uncommon conditions
RTM_RETIRED.ABORTED_MISC3    Number of times an RTM execution aborted due to Intel TSX-unfriendly instructions
RTM_RETIRED.ABORTED_MISC4    Number of times an RTM execution aborted due to incompatible memory type
RTM_RETIRED.ABORTED_MISC5    Number of times an RTM execution aborted due to none of the previous 4 categories (e.g. interrupt)
HLE_RETIRED.START    Number of times an HLE execution started.
HLE_RETIRED.COMMIT    Number of times an HLE execution successfully committed
HLE_RETIRED.ABORTED    Number of times an HLE execution aborted due to any reasons (multiple categories may count as one)
HLE_RETIRED.ABORTED_MISC1    Number of times an HLE execution aborted due to various memory events
HLE_RETIRED.ABORTED_MISC2    Number of times an HLE execution aborted due to uncommon conditions
HLE_RETIRED.ABORTED_MISC3    Number of times an HLE execution aborted due to Intel TSX-unfriendly instructions
HLE_RETIRED.ABORTED_MISC4    Number of times an HLE execution aborted due to incompatible memory type
HLE_RETIRED.ABORTED_MISC5    Number of times an HLE execution aborted due to none of the previous 4 categories (e.g. interrupt)
TX_MEM.ABORT_CONFLICT    Number of times a transactional abort was signaled due to a data conflict on a transactionally accessed address
TX_MEM.ABORT_CAPACITY_WRITE    Number of times a transactional abort was signaled due to limited resources for transactional stores
TX_MEM.ABORT_HLE_STORE_TO_ELIDED_LOCK    Number of times a HLE transactional region aborted due to a non XRELEASE prefixed instruction writing to an elided lock in the elision buffer
TX_MEM.ABORT_HLE_ELISION_BUFFER_NOT_EMPTY    Number of times an HLE transactional execution aborted due to NoAllocatedElisionBuffer being nonzero.
TX_MEM.ABORT_HLE_ELISION_BUFFER_MISMATCH    Number of times an HLE transactional execution aborted due to XRELEASE lock not satisfying the address and value requirements in the elision buffer.
TX_MEM.ABORT_HLE_ELISION_BUFFER_UNSUPPORTED_ALIGNMENT    Number of times an HLE transactional execution aborted due to an unsupported read alignment from the elision buffer.
TX_MEM.HLE_ELISION_BUFFER_FULL    Number of times HLE lock could not be elided due to ElisionBufferAvailable being zero.
TX_EXEC.MISC1    Counts the number of times a class of instructions that may cause a transactional abort was executed. Since this is the count of execution, it may not always cause a transactional abort.
TX_EXEC.MISC2    Counts the number of times a class of instructions that may cause a transactional abort was executed inside a transactional region
TX_EXEC.MISC3    Counts the number of times an instruction execution caused the nest count supported to be exceeded
TX_EXEC.MISC4    Counts the number of times an HLE XACQUIRE instruction was executed inside an RTM transactional region

 Examples:
  ./pcm-tsx.x 1                  => print counters every second without core and socket output
  ./pcm-tsx.x 0.5 -csv=test.log  => twice a second save counter values to test.log in CSV format
  ./pcm-tsx.x /csv 5 2>/dev/null => one sampe every 5 seconds, and discard all diagnostic output



*** pcm.x :
 Intel(r) Performance Counter Monitor V2.11 (2016-04-20 12:01:09 +0200 ID=56de28a)

 Copyright (c) 2009-2016 Intel Corporation

Number of physical cores: 4
Number of logical cores: 8
Number of online logical cores: 8
Threads (logical cores) per physical core: 2
Num sockets: 1
Physical cores per socket: 4
Core PMU (perfmon) version: 3
Number of core PMU generic (programmable) counters: 4
Width of generic (programmable) counters: 48 bits
Number of core PMU fixed counters: 3
Width of fixed counters: 48 bits
Can not access CPUs Model Specific Registers (MSRs).
Try to execute 'modprobe msr' as root user and then
you also must have read and write permissions for /dev/cpu/*/msr devices (/dev/msr* for Android). The 'chown' command can help.

 Usage:
 ./pcm.x --help | [delay] [options] [-- external_program [external_program_options]]
   <delay>                           => time interval to sample performance counters.
                                        If not specified, or 0, with external program given
                                        will read counters only after external program finishes
 Supported <options> are:
  -h    | --help      | /h           => print this help and exit
  -r    | --reset     | /reset       => reset PMU configuration (at your own risk)
  -nc   | --nocores   | /nc          => hide core related output
  -yc   | --yescores  | /yc          => enable specific cores to output
  -ns   | --nosockets | /ns          => hide socket related output
  -nsys | --nosystem  | /nsys        => hide system related output
  -m    | --multiple-instances | /m  => allow multiple PCM instances running in parallel
  -csv[=file.csv] | /csv[=file.csv]  => output compact CSV format to screen or
                                        to a file, in case filename is provided
  -i[=number] | /i[=number]          => allow to determine number of iterations
 Examples:
  ./pcm.x 1 -nc -ns          => print counters every second without core and socket output
  ./pcm.x 1 -i=10            => print counters every second 10 times and exit
  ./pcm.x 0.5 -csv=test.log  => twice a second save counter values to test.log in CSV format
  ./pcm.x /csv 5 2>/dev/null => one sampe every 5 seconds, and discard all diagnostic output






inq


inq is the harddisk inquiry program from EMC

inq usage
[[xtrnaw7@t540p /data/download]$ ./inq.LinuxAMD64 -h
Inquiry utility, Version V9.0-2504 (Rev 0.0)
(c) 2018 Copyright Dell Inc. All Rights Reserved.
For help type inq -h.

                                                                              
Usage: inquiry <options>                                                      
                                                                              
    display types:                                                            
       -h               : display this help screen                            
       -et              : display emulation and type info   (Symmetrix only)  
       -ckd             : display CKD device info           (Symmetrix only)  
       -parent          : display both PowerPath and OS device relationships  
       -celerra         : display Celerra lable devices                       
       -sid             : display Symmetrix Serial Number                     
       -sym_wwn         : display Symmetrix device wwn and Serial Number      
       -clariion        : display CLARiiON device information                 
       -clar_wwn        : display CLARiiON WWN and Serial Number              
       -showvol         : display Symmetrix Volume Number.                    
       -compat          : display old format                                  
       -btl             : display Bus Target and Lun                          
       -sw_wwn          : display StorageWorks WWN and Serial Id              
       -hds_wwn         : display HDS WWN and Serial Id                       
       -s80_wwn         : display S80 WWN and Serial Id                       
       -invista_wwn     : display Invista WWN and Serial Id                   
       -shark_wwn       : display IBM Shark WWN and Serial Id                 
       -compaq_wwn      : display Compaq WWN and Serial Id                    
       -netapp_wwn      : display Netapp WWN and Serial Id                    
       -hba             : display HBA info only. See options below            
       -vplex_wwn       : display VPLEX VirtualVolume WWN                     
       -xtremio_wwn     : display XtremIO WWN                                 
       -scaleio_wwn     : display ScaleIO WWN                                 
       -cloudarray_wwn  : display CloudArray WWN                              
       -datadomain_wwn  : display DataDomain WWN                              
       -identifier <device_name | nice_name | hp_id | vms_id>                 
                        : display device identifier info (EMC devices only)   
       -mapinfo         : display target mapping information                  
       -noreadonly      : do not open devices in read only mode               
       -native          : if spoofed device (in migration), display non-spoofed
                          array inquiry data                                  
       -wwn             : display devices WWN                                 
                                                                              
    filter options:                                                           
       -no_filters      : show every device even if no data available         
       -f_powerpath     : filter -  only powerpath devices                    
       -f_pseudo        : filter -  only pseudo devices                       
       -f_real          : filter -  only real devices                         
       -f_emc           : filter -  only EMC devices                          
       -f_ckd           : filter -  only ckd devices                          
       -f_celerra       : filter -  only Celerra devices                      
       -f_4k            : filter -  only Symmetrix device numbers < 4096      
       -f_clariion      : filter -  only CLARiiON devices                     
       -f_storwrks      : filter -  only Compaq StorageWorks devices          
       -f_hds           : filter -  only Hitachi HDS devices          
       -f_s80           : filter -  only Fujitsu Siemens S80 devices          
       -f_invista       : filter -  only EMC Invista devices                  
       -f_vplex         : filter -  only EMC VPLEX devices                    
       -f_shark         : filter -  only IBM SHARK devices                    
       -f_xtremio       : filter -  only XTREMIO devices                      
       -f_scaleio       : filter -  only ScaleIO devices                      
       -f_cloudarray    : filter -  only CloudArray devices                   
       -f_datadomain    : filter -  only DataDomain devices                   
       -f_size <size>   : filter -  only show devices with <= size in kbytes  
       -f_mobility      : filter -  only mobility devices                     
                                                                              
    query options:                                                            
       -skipread        : do not request Read Capacity                        
       -skipinq         : do not request Inquiry data                         
       -skipboth        : do not request Read Capacity or Inquiry data        
                                                                              
    device options:                                                           
       -dev  <device>   : do inquiry on specified device                      
    SCSI queries:                                                             
       -page0           : display detailed inquiry page        (requires -dev)
       -pagec0          : display detailed SCSI VPD page c0    (requires -dev)
       -page xx         : display SCSI VPD page xx (hex)       (requires -dev)
       -symmvol <vol#>  : show devices with Symm HEX volume #= <vol#>         
       -clar_file <file-name>: show clariion devices in file                  
                                                                              
    other options:                                                            
       -no_dots         : do not display status dots                          
       -sortoff         : do not perform ANY sorting                          
       -sortsymm        : sort by Symmetrix serial number   (Symmetrix only)  
                                                                              
    sym_wwn options:                                                          
       -sid_wwn <sid>   : the 12 digit SID of the symm for which you want wwn's
       -symdev  <dev>   : the device for which you want the wwn               
                                                                              
    HBA specific options:                                                     
       -hba               : display HBA info only                             
       -fibre             : display FC HBA info only                          
       -iscsi             : display ISCSI HBA info only                       
       -scsi              : display SCSI HBA info only                        
       -hba_file <file>   : external HBA file to use. -fibre only             
       -create            : create external HBA file specified by -hba_file   
      Usage :                                                                
       inquiry -hba [-fibre [-hba_file <file>] [-create]] [-scsi] [-iscsi]     
                                                                              
Debug options:                                                                
    Set these environment variables (preferred method)                        
        SDEBUG=ALL                                                            
        SDEBUG_FILE=path/filename                                             
    or as option (these do not reflect SIL initialization)                    
       -dbg          -   debug output to stdout                               
       -dbg_log      -   debug output to the file inquiry.log                 
                                                                              
Release notes:                                                                
     Only options listed above are supported, although other options          
     may continue to work, they are subject to change or removal.             
                                                                              
     the following parameter changes have occurred                            
       -lunz_wwn        : display VMAXLUNZ devices. Note: If PowerPath owns a 
                        : LUNZ device, then inq might not be able to open it. 

[xtrnaw7@t540p /data/download]$
     


   


inq example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo bin1/inq -dev /dev/sda -v
Inquiry utility, Version V8.1.1.0 (Edit Level: 2102) built with SYMAPI Version V8.1.1.0 (Edit Level 2102)
Copyright (c) [1997-2015] EMC Corporation. All Rights Reserved.
For help type inq -h.


STANDARD INQUIRY PAGE ----  RAW DATA FORMAT  ---- STANDARD INQUIRY PAGE
-----------------------------------------------------------------------
       00 01 02 03 04 05 06 07  08 09 0A 0B 0C 0D 0E 0F
       ------------------------------------------------
 0000: 00 00 05 02 5b 00 00 00  41 54 41 20 20 20 20 20   ....[...ATA    
 0010: 53 61 6d 73 75 6e 67 20  53 53 44 20 38 35 30 20   Samsung SSD 850
 0020: 31 42 36 51 00 00 00 00  00 00 00 00 00 00 00 00   1B6Q............
 0030: 00 00 00 00 00 00 00 00  00 00 00 60 03 20 02 60   ...........`. .`
 0040: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................
 0050: 00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00   ................

-----------------------------------------------------------------------
-----------------------------------------------------------------------------
BYTE 00:  Peripheral Qualifer = 0x00      Peripheral Device Type    = 0x00
BYTE 01:  Removeable Media    = 0x00      Device Type Modifier      = 0x00
BYTE 02:  ISO Ver  = 0x00   ECMA Ver      = 0x00       ANSI Vers    = 0x05
BYTE 03:  AENC   TmIO   NACA   Reserved  Response Data Format
           0      0       0       0             0x02
BYTE 04:  Additional Length               = 0x5b
BYTE 05:  Reserved                        = 0x00
BYTE 06:  Reserved   ENCSrv   vs   DualP   MChng   AckReqQ   Addr32  Addr16
             0         0       0     0       0        0        0       0
BYTE 07:  RelAdr  WBus32  WBus16   Sync   Linked     TransDis    CmdQue    StRe
            0       0       0       0       0           0          0        0
-----------------------------------------------------------------------------
BYTE 08 - 15:  Vendor ID                      = "ATA     "
BYTE 16 - 31:  Product ID                     = "Samsung SSD 850 "
BYTE 32 - 35:  Product Revision               = "1B6Q"
-----------------------------------------------------------------------------
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





ioping

ioping is a tool to monitor I/O latency in real time. It shows disk latency in the same way as ping shows network latency.


ioping usage
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ ./ioping  -h
 Usage: ioping [-ABCDRLWYykq] [-c count] [-i interval] [-s size] [-S wsize]
               [-o offset] [-w deadline] [-pP period] directory|file|device
        ioping -h | -v

      -c <count>      stop after <count> requests
      -i <interval>   interval between requests (1s)
      -l <speed>      speed limit in bytes per second
      -t <time>       minimal valid request time (0us)
      -T <time>       maximum valid request time
      -s <size>       request size (4k)
      -S <wsize>      working set size (1m)
      -o <offset>     working set offset (0)
      -w <deadline>   stop after <deadline> time passed
      -p <period>     print raw statistics for every <period> requests
      -P <period>     print raw statistics for every <period> in time
      -A              use asynchronous I/O
      -C              use cached I/O (no cache flush/drop)
      -B              print final statistics in raw format
      -D              use direct I/O (O_DIRECT)
      -R              seek rate test
      -L              use sequential operations
      -W              use write I/O (please read manpage)
      -G              read-write ping-pong mode
      -Y              use sync I/O (O_SYNC)
      -y              use data sync I/O (O_DSYNC)
      -k              keep and reuse temporary file (ioping.tmp)
      -q              suppress human-readable output
      -h              display this message and exit
      -v              display version and exit

[xtrnaw7@t540p /var/tmp/jwm/sbin]$




ioping examples
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 5 /dev/dm-0
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=1 time=2.90 ms (warmup)
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=2 time=2.96 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=3 time=4.61 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=4 time=2.89 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=5 time=2.89 ms

--- /dev/dm-0 (block device 46.6 GiB) ioping statistics ---
4 requests completed in 13.4 ms, 16 KiB read, 299 iops, 1.17 MiB/s
generated 5 requests in 4.00 s, 20 KiB, 1 iops, 5.00 KiB/s
min/avg/max/mdev = 2.89 ms / 3.34 ms / 4.61 ms / 736.1 us
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 5 -s 8k /dev/dm-0
8 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=1 time=4.63 ms (warmup)
8 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=2 time=4.79 ms
8 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=3 time=2.89 ms
8 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=4 time=4.75 ms
8 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=5 time=2.90 ms

--- /dev/dm-0 (block device 46.6 GiB) ioping statistics ---
4 requests completed in 15.3 ms, 32 KiB read, 260 iops, 2.04 MiB/s
generated 5 requests in 4.00 s, 40 KiB, 1 iops, 9.99 KiB/s
min/avg/max/mdev = 2.89 ms / 3.83 ms / 4.79 ms / 935.7 us
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 5 -s 16k /dev/dm-0
16 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=1 time=2.89 ms (warmup)
16 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=2 time=2.97 ms
16 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=3 time=4.74 ms
16 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=4 time=3.10 ms
16 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=5 time=4.72 ms

--- /dev/dm-0 (block device 46.6 GiB) ioping statistics ---
4 requests completed in 15.5 ms, 64 KiB read, 257 iops, 4.03 MiB/s
generated 5 requests in 4.01 s, 80 KiB, 1 iops, 20.0 KiB/s
min/avg/max/mdev = 2.97 ms / 3.88 ms / 4.74 ms / 846.8 us
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 5 -Y /dev/dm-0
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=1 time=4.60 ms (warmup)
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=2 time=4.62 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=3 time=2.89 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=4 time=4.55 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=5 time=2.95 ms
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 15 /dev/sda1
4 KiB <<< /dev/sda1 (block device 477 MiB): request=1 time=4.53 ms (warmup)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=2 time=4.65 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=3 time=2.85 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=4 time=4.66 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=5 time=2.95 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=6 time=4.66 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=7 time=2.89 ms (fast)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=8 time=4.63 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=9 time=2.96 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=10 time=4.67 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=11 time=2.83 ms (fast)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=12 time=4.68 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=13 time=2.91 ms (fast)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=14 time=4.62 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=15 time=2.95 ms

--- /dev/sda1 (block device 477 MiB) ioping statistics ---
14 requests completed in 52.9 ms, 56 KiB read, 264 iops, 1.03 MiB/s
generated 15 requests in 14.0 s, 60 KiB, 1 iops, 4.28 KiB/s
min/avg/max/mdev = 2.83 ms / 3.78 ms / 4.68 ms / 874.0 us
[xtrnaw7@t540p /var/tmp/jwm/sbin]$

--- /dev/dm-0 (block device 46.6 GiB) ioping statistics ---
4 requests completed in 15.0 ms, 16 KiB read, 266 iops, 1.04 MiB/s
generated 5 requests in 4.00 s, 20 KiB, 1 iops, 5.00 KiB/s
min/avg/max/mdev = 2.89 ms / 3.75 ms / 4.62 ms / 833.1 us
[xtrnaw7@t540p /var/tmp/jwm/sbin]$
[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 5 -C /dev/dm-0
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=1 time=2.89 ms (warmup)
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=2 time=2.99 ms
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=3 time=219.3 us
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=4 time=14.0 us
4 KiB <<< /dev/dm-0 (block device 46.6 GiB): request=5 time=3.00 ms

--- /dev/dm-0 (block device 46.6 GiB) ioping statistics ---
4 requests completed in 6.22 ms, 16 KiB read, 642 iops, 2.51 MiB/s
generated 5 requests in 4.00 s, 20 KiB, 1 iops, 5.00 KiB/s
min/avg/max/mdev = 14.0 us / 1.56 ms / 3.00 ms / 1.44 ms
[xtrnaw7@t540p /var/tmp/jwm/sbin]$

[xtrnaw7@t540p /var/tmp/jwm/sbin]$ sudo ./ioping -c 15 /dev/sda1
4 KiB <<< /dev/sda1 (block device 477 MiB): request=1 time=4.53 ms (warmup)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=2 time=4.65 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=3 time=2.85 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=4 time=4.66 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=5 time=2.95 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=6 time=4.66 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=7 time=2.89 ms (fast)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=8 time=4.63 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=9 time=2.96 ms
4 KiB <<< /dev/sda1 (block device 477 MiB): request=10 time=4.67 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=11 time=2.83 ms (fast)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=12 time=4.68 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=13 time=2.91 ms (fast)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=14 time=4.62 ms (slow)
4 KiB <<< /dev/sda1 (block device 477 MiB): request=15 time=2.95 ms

--- /dev/sda1 (block device 477 MiB) ioping statistics ---
14 requests completed in 52.9 ms, 56 KiB read, 264 iops, 1.03 MiB/s
generated 15 requests in 14.0 s, 60 KiB, 1 iops, 4.28 KiB/s
min/avg/max/mdev = 2.83 ms / 3.78 ms / 4.68 ms / 874.0 us
[xtrnaw7@t540p /var/tmp/jwm/sbin]$






iotop


iotop is a top like tool to monitor the I/O for processes.





iozone


"IOzone is a filesystem benchmark tool. The benchmark generates and measures a variety of file operations. Iozone has been ported to many machines and runs under many operating systems.

Iozone is useful for performing a broad filesystem analysis of a vendor’s computer platform."

iozone usage
[xtrnaw7@t540p /var/tmp/jwm/src/iozone3_482/src/current]$ ./iozone -h
iozone: help mode

    Usage: iozone [-s filesize_kB] [-r record_size_kB] [-f [path]filename] [-h]
                  [-i test] [-E] [-p] [-a] [-A] [-z] [-Z] [-m] [-M] [-t children]
                  [-l min_number_procs] [-u max_number_procs] [-v] [-R] [-x] [-o]
                  [-d microseconds] [-F path1 path2...] [-V pattern] [-j stride]
                  [-T] [-C] [-B] [-D] [-G] [-I] [-H depth] [-k depth] [-U mount_point]
                  [-S cache_size] [-O] [-L cacheline_size] [-K] [-g maxfilesize_kB]
                  [-n minfilesize_kB] [-N] [-Q] [-P start_cpu] [-e] [-c] [-b Excel.xls]
                  [-J milliseconds] [-X write_telemetry_filename] [-w] [-W]
                  [-Y read_telemetry_filename] [-y minrecsize_kB] [-q maxrecsize_kB]
                  [-+u] [-+m cluster_filename] [-+d] [-+x multiplier] [-+p # ]
                  [-+r] [-+t] [-+X] [-+Z] [-+w percent dedupable] [-+y percent_interior_dedup]
                  [-+C percent_dedup_within] [-+a zero_pct]  [-+Q dedup granule size]
                  [-+M dedup+compress flag ]
 
           -a  Auto mode
           -A  Auto2 mode
           -b Filename  Create Excel worksheet file
           -B  Use mmap() files
           -c  Include close in the timing calculations
           -C  Show bytes transferred by each child in throughput testing
           -d #  Microsecond delay out of barrier
           -D  Use msync(MS_ASYNC) on mmap files
           -e  Include flush (fsync,fflush) in the timing calculations
           -E  Run extension tests
           -f filename  to use
           -F filenames  for each process/thread in throughput test
           -g #  Set maximum file size (in kBytes) for auto mode (or #m or #g)
           -G  Use msync(MS_SYNC) on mmap files
           -h  help
           -H #  Use POSIX async I/O with # async operations
           -i #  Test to run (0=write/rewrite, 1=read/re-read, 2=random-read/write
                 3=Read-backwards, 4=Re-write-record, 5=stride-read, 6=fwrite/re-fwrite
                 7=fread/Re-fread, 8=random_mix, 9=pwrite/Re-pwrite, 10=pread/Re-pread
                 11=pwritev/Re-pwritev, 12=preadv/Re-preadv)
           -I  Use VxFS VX_DIRECT, O_DIRECT,or O_DIRECTIO for all file operations
           -j #  Set stride of file accesses to (# * record size)
           -J #  milliseconds of compute cycle before each I/O operation
           -k #  Use POSIX async I/O (no bcopy) with # async operations
           -K  Create jitter in the access pattern for readers
           -l #  Lower limit on number of processes to run
           -L #  Set processor cache line size to value (in bytes)
           -m  Use multiple buffers
           -M  Report uname -a output
           -n #  Set minimum file size (in kBytes) for auto mode (or #m or #g)
           -N  Report results in microseconds per operation
           -o  Writes are synch (O_SYNC)
           -O  Give results in ops/sec.
           -p  Purge on
           -P #  Bind processes/threads to processors, starting with this cpu
           -q #  Set maximum record size (in kBytes) for auto mode (or #m or #g)
           -Q  Create offset/latency files
           -r #  record size in Kb
              or -r #k .. size in kB
              or -r #m .. size in MB
              or -r #g .. size in GB
           -R  Generate Excel report
           -s #  file size in Kb
              or -s #k .. size in kB
              or -s #m .. size in MB
              or -s #g .. size in GB
           -S #  Set processor cache size to value (in kBytes)
           -t #  Number of threads or processes to use in throughput test
           -T  Use POSIX pthreads for throughput tests
           -u #  Upper limit on number of processes to run
           -U  Mount point to remount between tests
           -v  version information
           -V #  Verify data pattern write/read
           -w  Do not unlink temporary file
           -W  Lock file when reading or writing
           -x  Turn off stone-walling
           -X filename  Write telemetry file. Contains lines with (offset reclen compute_time) in ascii
           -y #  Set minimum record size (in kBytes) for auto mode (or #m or #g)
           -Y filename  Read  telemetry file. Contains lines with (offset reclen compute_time) in ascii
           -z  Used in conjunction with -a to test all possible record sizes
           -Z  Enable mixing of mmap I/O and file I/O
           -+b #,#  burst size (KB),sleep between burst (mili-second)
           -+E Use existing non-Iozone file for read-only testing
           -+F Truncate file before write in thread_mix_test
           -+J Include think time (-j #) in throughput calculation
           -+K Sony special. Manual control of test 8.
           -+m  Cluster_filename   Enable Cluster testing
           -+d  File I/O diagnostic mode. (To troubleshoot a broken file I/O subsystem)
           -+u  Enable CPU utilization output (Experimental)
           -+x # Multiplier to use for incrementing file and record sizes
           -+p # Percentage of mix to be reads
           -+r Enable O_RSYNC|O_SYNC for all testing.
           -+t Enable network performance test. Requires -+m
           -+n No retests selected.
           -+k Use constant aggregate data set size.
           -+q Delay in seconds between tests.
           -+l Enable record locking mode.
           -+L Enable record locking mode, with shared file.
           -+B Sequential mixed workload.
           -+D Enable O_DSYNC mode.
           -+A #  Enable madvise. 0 = normal, 1=random, 2=sequential
                                  3=dontneed, 4=willneed
           -+N Do not truncate existing files on sequential writes.
           -+S # Dedup-able data is limited to sharing within each numerically
                 identified file set.
           -+W # Add this value to the child thread ID, so that additional files
                 can be added while maintaining the proper dedupability with previously
                 existing files that are within the same seed group (-+S).
           -+V Enable shared file. No locking.
           -+X Enable short circuit mode for filesystem testing ONLY
               ALL Results are NOT valid in this mode.
           -+Z Enable old data set compatibility mode. WARNING.. Published
               hacks may invalidate these results and generate bogus, high
               values for results.
           -+w ## Percent of dedup-able data in buffers.
           -+y ## Percent of dedup-able within & across files in buffers.
           -+C ## Percent of dedup-able within & not across files in buffers.
           -+a ## Percent of data that is compressible.
           -+Q ## Dedup granule size.
           -+H Hostname    Hostname of the PIT server.
           -+P Service     Service  of the PIT server.
           -+z Enable latency histogram logging.
           -+M Enable Dedup+compress option. (Experimental).
           -+R enable iozone to take filenames from a file.
[xtrnaw7@t540p /var/tmp/jwm/src/iozone3_482/src/current]$





ipaudit


"IPAudit monitors network activity on a network by host, protocol and port."


ipaudit usage
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../sbin/ipaudit
Usage: ipaudit [OPTIONS] [interface[:interface[:interface..]]]
  Read and record info on ip connections and optionally
  dump packets to file.

  -b            -  Write output in binary format (experimental).
  -c npacket    -  Only read in specific number of ip packets.
  -d            -  Turn on debugging output.
  -e            -  Write out ethernet addresses.
  -f filterstr  -  Use pcap filters (see tcpdump).
  -g config     -  Read config file (instead of default).
  -i pidfile    -  Write process id to file.
  -l ip-range   -  Order output ip address pairs by ip range.
  -m            -  Do not turn on promiscuous mode.
  -o outfile    -  Place output in 'outfile'. Default is stdout.
  -p string     -  Dump only selected ip protocols and ports.
     string format -p n:n:n,p,p:n where n is protocol number
     and p is port number (only for protocols 6 (tcp) and 17 (udp).
  -q            -  Output in SQL format for direct database input.
  -r readfile   -  Read packets from pcap format file,
                   you don't need interface with this option.
  -s nlen       -  Dump first <nlen> bytes of each packet (default 96, min 68).
  -t             - Write out connection start and stop times.
  -u             - Write out times using GMT instead of local time.
  -v            -  Print version and exit..
  -w writefile  -  Dump selected packets to pcap format file "writefile".
  -x program    -  Run program when done.
  -z conf-opt   -  Read config file option from command line.
  -A all[,lim]  -  Dump all packets to pcap format file "all".
                   Limit number of packets to "lim" (optional).
  -C            -  Preserve ICMP type/code in source port field.
  -D period     -  Daemon mode.
  -E nsec       -  Stop after nsec seconds.
  -G            -  Do not read config file.
  -H            -  Store hosts only (protocol, ports set to zero).
  -I ipaddr     -  Dump all packets with 'ipaddr'.
  -L hostportlimit,hostlimit
                -  Max number of hostport,host packets recorded.
  -M            -  Allow double logging of packets which pass between
                   multiple interfaces.
  -N nhashslot  -  Number of hash slots.
  -O loc,rem    -  Local/remote host overflow ip.
  -P            -  Display name of host running ipaudit as part of output.
  -R n          -  If using -w, save every n'th unselected packet.
  -S            -  Print ip addresses in short format (no leading 0s).
  -T             - Write out connection start and stop dates and times.
  -V vlanid     -  Limit to packets belonging to a specific VLAN (802.1q tagging).
  -W dumplimit  -  Limit to number of packets written with -w command.
Example:
  ipaudit -w dump.fil -p1:2:6,21,23  eth0
Write only packets with protocols 1 (icmp), 2 (?), and 6 (tcp)
and tcp ports 21 and 23 (ftp,telnet).

[xtrnaw7@t540p /var/tmp/jwm/src]$




ipband


"ipband is a pcap based IP traffic monitor. It tallies per-subnet traffic and bandwidth usage and starts detailed logging if specified threshold for the specific subnet is exceeded. If traffic has been high for a certain period of time, the report for that subnet is generated which can be appended to a file or e-mailed. When bandwidth usage drops below the threshold, detailed logging for the subnet is stopped and memory is freed.

This utility could be handy in a limited bandwidth WAN environment (frame relay, ISDN etc. circuits) to pinpoint offending traffic source if certain links become saturated to the point where legitimate packets start getting dropped.

It also can be used to monitor internet connection when specifying the range of local ip addresses (to avoid firing reports about non-local networks)."


ipband usage

[xtrnaw7@t540p /var/tmp/jwm]$ sbin/ipband -h

Usage: ipband [OPTIONS] interface
  -a            -  Averaging period in seconds. Default is 60.
  -A            -  Include accumulated threshold exceeded time
                   since ipband start in the report.
  -b kBps       -  Default bandwidth threshold in kBytes.
                   per sec. Default is 7 kBps i.e 56 kbps.
  -c filename   -  Read configuration file. Default is /etc/ipaband.conf.
  -C            -  Ignore configuration file
  -d level      -  Debug level: 0 - no debuging; 1 - summary;
                   2 - subnet stats; 3 - all packets captured.
  -f filterstr  -  Use pcap filters (see tcpdump).
  -F            -  Fork and run in background.
  -h            -  Print this help.
  -J number     -  Packet length adjustment in bytes.
  -l filename   -  E-mail report footer file.
  -L ip-range   -  Range of local ip addresses.
  -m maskbuts   -  Set number of network mask bits (1-32)
                   for subnet traffic aggregation.
                   Default is 24 (255.255.255.0).
  -M email addr -  Mail report to given addresses.
  -o filename   -  Subnet report output file. Default is
                   ipband.txt in current directory.
  -w filename   -  HTML report output file. Default is
                   ipband.html in current directory.
  -P            -  Don't use promiscuous mode on network interface.
  -r            -  Reporting period - number of seconds
                   banwidth threshold may be exceeded before
                   it should be reported. Default is 300.
  -t number     -  Limit report to a given number of connections
                   with highest byte count. Default is no limit.
  -T string     -  MTA command string for mailing reports. Default is
                   "/usr/sbin/sendmail -t -oi".
  -v            -  Print version and exit.

Example:
  ipband eth0 -f "net 10.10.0.0/16" -m 24 -a 300 -r 900
    Will capture packets from/to ip addresses matching
    10.10.0.0/255.255.0.0, tally traffic by the third octet,
    calculate bandwidth utilization every 5 minutes and report
    per host traffic every 15 minutes.

[xtrnaw7@t540p /var/tmp/jwm]$




iperf

iperf  is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the bandwidth, loss, and other parameters.

There is only a precompiled version of the old iperf  in the archive that should work on most of the Linux distributions (iperf does not compile out of the box now on most Linux distributions).
In addition there are now also binaries for iperf for Solaris (x86 and SPARC) and AIX in the archive (see here).

see also iperf3.

iperf usage
[JWM session] [xtrnaw7@centos69 jwm]$ bin1/iperf -h
Usage: iperf [-s|-c host] [options]
       iperf [-h|--help] [-v|--version]

Client/Server:
  -f, --format    [kmKM]   format to report: Kbits, Mbits, KBytes, MBytes
  -i, --interval  #        seconds between periodic bandwidth reports
  -l, --len       #[KM]    length of buffer to read or write (default 8 KB)
  -m, --print_mss          print TCP maximum segment size (MTU - TCP/IP header)
  -o, --output    <filename> output the report or error message to this specified file
  -p, --port      #        server port to listen on/connect to
  -u, --udp                use UDP rather than TCP
  -w, --window    #[KM]    TCP window size (socket buffer size)
  -B, --bind      <host>   bind to <host>, an interface or multicast address
  -C, --compatibility      for use with older versions does not sent extra msgs
  -M, --mss       #        set TCP maximum segment size (MTU - 40 bytes)
  -N, --nodelay            set TCP no delay, disabling Nagle's Algorithm
  -V, --IPv6Version        Set the domain to IPv6

Server specific:
  -s, --server             run in server mode
  -U, --single_udp         run in single threaded UDP mode
  -D, --daemon             run the server as a daemon

Client specific:
  -b, --bandwidth #[KM]    for UDP, bandwidth to send at in bits/sec
                           (default 1 Mbit/sec, implies -u)
  -c, --client    <host>   run in client mode, connecting to <host>
  -d, --dualtest           Do a bidirectional test simultaneously
  -n, --num       #[KM]    number of bytes to transmit (instead of -t)
  -r, --tradeoff           Do a bidirectional test individually
  -t, --time      #        time in seconds to transmit for (default 10 secs)
  -F, --fileinput <name>   input the data to be transmitted from a file
  -I, --stdin              input the data to be transmitted from stdin
  -L, --listenport #       port to receive bidirectional tests back on
  -P, --parallel  #        number of parallel client threads to run
  -T, --ttl       #        time-to-live, for multicast (default 1)
  -Z, --linux-congestion <algo>  set TCP congestion control algorithm (Linux only)

Miscellaneous:
  -x, --reportexclude [CDMSV]   exclude C(connection) D(data) M(multicast) S(settings) V(server) reports
  -y, --reportstyle C      report as a Comma-Separated Values
  -h, --help               print this message and quit
  -v, --version            print version information and quit

[KM] Indicates options that support a K or M suffix for kilo- or mega-

The TCP window size option can be set by the environment variable
TCP_WINDOW_SIZE. Most other options can be set by an environment variable
IPERF_<long option name>, such as IPERF_BANDWIDTH.

Report bugs to <iperf-users@lists.sourceforge.net>
[JWM session] [xtrnaw7@centos69 jwm]$




iperf3

iperf3 is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the bandwidth, loss, and other parameters.

iperf3 usage
[xtrnaw7@t540p /var/tmp/jwm/src/iperf-master]$ ./src/iperf3 -h
Usage: iperf3 [-s|-c host] [options]
       iperf3 [-h|--help] [-v|--version]

Server or Client:
  -p, --port      #         server port to listen on/connect to
  -f, --format   [kmgtKMGT] format to report: Kbits, Mbits, Gbits, Tbits
  -i, --interval  #         seconds between periodic throughput reports
  -F, --file name           xmit/recv the specified file
  -A, --affinity n/n,m      set CPU affinity
  -B, --bind      <host>    bind to the interface associated with the address <host>
  -V, --verbose             more detailed output
  -J, --json                output in JSON format
  --logfile f               send output to a log file
  --forceflush              force flushing output at every interval
  -d, --debug               emit debugging output
  -v, --version             show version information and quit
  -h, --help                show this message and quit
Server specific:
  -s, --server              run in server mode
  -D, --daemon              run the server as a daemon
  -I, --pidfile file        write PID file
  -1, --one-off             handle one client connection then exit
  --rsa-private-key-path    path to the RSA private key used to decrypt
                            authentication credentials
  --authorized-users-path   path to the configuration file containing user
                            credentials
Client specific:
  -c, --client    <host>    run in client mode, connecting to <host>
  --sctp                    use SCTP rather than TCP
  -X, --xbind <name>        bind SCTP association to links
  --nstreams      #         number of SCTP streams
  -u, --udp                 use UDP rather than TCP
  --connect-timeout #       timeout for control connection setup (ms)
  -b, --bitrate #[KMG][/#]  target bitrate in bits/sec (0 for unlimited)
                            (default 1 Mbit/sec for UDP, unlimited for TCP)
                            (optional slash and packet count for burst mode)
  --pacing-timer #[KMG]     set the timing for pacing, in microseconds (default 1000)
  --fq-rate #[KMG]          enable fair-queuing based socket pacing in
                            bits/sec (Linux only)
  -t, --time      #         time in seconds to transmit for (default 10 secs)
  -n, --bytes     #[KMG]    number of bytes to transmit (instead of -t)
  -k, --blockcount #[KMG]   number of blocks (packets) to transmit (instead of -t or -n)
  -l, --length    #[KMG]    length of buffer to read or write
                            (default 128 KB for TCP, dynamic or 1460 for UDP)
  --cport         <port>    bind to a specific client port (TCP and UDP, default: ephemeral port)
  -P, --parallel  #         number of parallel client streams to run
  -R, --reverse             run in reverse mode (server sends, client receives)
  -w, --window    #[KMG]    set window size / socket buffer size
  -C, --congestion <algo>   set TCP congestion control algorithm (Linux and FreeBSD only)
  -M, --set-mss   #         set TCP/SCTP maximum segment size (MTU - 40 bytes)
  -N, --no-delay            set TCP/SCTP no delay, disabling Nagle's Algorithm
  -4, --version4            only use IPv4
  -6, --version6            only use IPv6
  -S, --tos N               set the IP type of service, 0-255.
                            The usual prefixes for octal and hex can be used,
                            i.e. 52, 064 and 0x34 all specify the same value.
  --dscp N or --dscp val    set the IP dscp value, either 0-63 or symbolic.
                            Numeric values can be specified in decimal,
                            octal and hex (see --tos above).
  -L, --flowlabel N         set the IPv6 flow label (only supported on Linux)
  -Z, --zerocopy            use a 'zero copy' method of sending data
  -O, --omit N              omit the first n seconds
  -T, --title str           prefix every output line with this string
  --extra-data str          data string to include in client and server JSON
  --get-server-output       get results from server
  --udp-counters-64bit      use 64-bit counters in UDP test packets
  --repeating-payload       use repeating pattern in payload, instead of
                            randomized payload (like in iperf2)
  --username                username for authentication
  --rsa-public-key-path     path to the RSA public key used to encrypt
                            authentication credentials

[KMG] indicates options that support a K/M/G suffix for kilo-, mega-, or giga-

iperf3 homepage at: https://software.es.net/iperf/
Report bugs to:     https://github.com/esnet/iperf
[xtrnaw7@t540p /var/tmp/jwm/src/iperf-master]$





ipscan


"ipscan - the Angry IP scanner is fast and friendly network scanner for Windows, Linux, and Mac. It is very extensible, allowing it to be used for very wide range of purposes, with the primary goal of being useful to network administrators."

ipscan usage
xtrnaw7@t540p /var/tmp/jwm]$ bin1/ipscan -h
Unknown option: h

Pass the following arguments:
[options] <feeder> <exporter>

Where <feeder> is one of:
-f:range <Start IP> <End IP>
-f:random <Base IP> <IP Mask> <Count>
-f:file <File>

<exporter> is one of:
-o filename.txt        Text file (txt)
-o filename.csv        Comma-separated file (csv)
-o filename.xml        XML file (xml)
-o filename.lst        IP:Port list (lst)

And possible [options] are (grouping allowed):
-s    start scanning automatically
-q    quit after exporting the results
-a    append to the file, do not overwrite








iptraf


iptraf is another network bandwith monitoring tool.

iptraf usage
[xtrnaw7@t540p /var/tmp/jwm]$ sudo ./sbin/iptraf -h

Syntax:
    iptraf [ -f ] [ { -i iface | -g | -d iface | -s iface | -z iface |
           -l iface } [ -t timeout ] [ -B ] [ -L logfile ] [-I interval] ]

Issue the iptraf command with no parameters for menu-driven operation.
These options can also be supplied to the command:

-i iface    - start the IP traffic monitor (use "-i all" for all interfaces)
-g          - start the general interface statistics
-d iface    - start the detailed statistics facility on an interface
-s iface    - start the TCP and UDP monitor on an interface
-z iface    - shows the packet size counts on an interface
-l iface    - start the LAN station monitor ("-l all" for all LAN interfaces)
-B          - run in background (use only with one of the above parameters)
-t timeout  - when used with one of the above parameters, tells
              the facility to run only for the specified number of
              minutes (timeout)
-L logfile  - specifies an alternate log file for any direct invocation
              of a facility from the command line.  The log is placed in
              /var/log/iptraf if path is not specified.
-I interval - specifies the log interval for all facilities except the IP
              traffic monitor.  Value is in minutes.
-f          - clear all locks and counters.  Use with great caution.
              Normally used to recover from an abnormal termination.

IPTraf 3.0.0 Copyright (c) Gerard Paul Java 1997-2004
[xtrnaw7@t540p /var/tmp/jwm]$


 









iptraf-ng


iptraf-ng is another network bandwith monitoring tool.

"IPTraf-ng is a console-based network monitoring program for Linux that
displays information about IP traffic.  It returns such information as:

	Current TCP connections
	UDP, ICMP, OSPF, and other types of IP packets
	Packet and byte counts on TCP connections
	IP, TCP, UDP, ICMP, non-IP, and other packet and byte counts
	TCP/UDP counts by ports
	Packet counts by packet sizes
	Packet and byte counts by IP address
	Interface activity
	Flag statuses on TCP packets
	LAN station statistics

iptraf-ng usage
[xtrnaw7@t540p /var/tmp/jwm]$ sudo ./sbin/iptraf-ng -h
usage: iptraf-ng [options]
   or: iptraf-ng [options] -B [-i <iface> | -d <iface> | -s <iface> | -z <iface> | -l <iface> | -g]

    -h, --help            show this help message

    -i <iface>            start the IP traffic monitor (use '-i all' for all interfaces)
    -d <iface>            start the detailed statistics facility on an interface
    -s <iface>            start the TCP and UDP monitor on an interface
    -z <iface>            shows the packet size counts on an interface
    -l <iface>            start the LAN station monitor (use '-l all' for all LAN interfaces)
    -g                    start the general interface statistics

    -B                    run in background (use only with one of the above parameters
    -f                    clear all locks and counters
    -t <n>                run only for the specified <n> number of minutes
    -L <logfile>          specifies an alternate log file

[xtrnaw7@t540p /var/tmp/jwm]$



















iptstate


"IPTState is a top-like interface to your netfilter connection-tracking table.
Using iptstate you interactively watch where traffic crossing your netfilter/iptables firewall is going, sort by various criteria, limit the view by various criteria. But it doesn't stop there: as of version 2.2.0 you can even delete states from the table!"

iptstate usage

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ sudo ../sbin/iptstate -h
loop: 104
IPTables State Top Version 2.2.6
Usage: iptstate [<options>]

  -c, --no-color
    Toggle color-code by protocol

  -C, --counters
    Toggle display of bytes/packets counters

  -d, --dst-filter <IP>
    Only show states with a destination of <IP>
    Note, that this must be an IP, hostname matching is not yet supported.

  -D --dstpt-filter <port>
    Only show states with a destination port of <port>

  -h, --help
    This help message

  -l, --lookup
    Show hostnames instead of IP addresses. Enabling this will also enable
    -L to prevent an ever-growing number of DNS requests.

  -m, --mark-truncated
    Mark truncated hostnames with a '+'

  -o, --no-dynamic
    Toggle dynamic formatting

  -L, --no-dns
    Skip outgoing DNS lookup states

  -f, --no-loopback
    Filter states on loopback

  -p, --no-scroll
    No scrolling (don't use a "pad")

  -r, --reverse
    Reverse sort order

  -R, --rate <seconds>
    Refresh rate, followed by rate in seconds
    Note: For statetop, not applicable for -s

  -1, --single
    Single run (no curses)

  -b, --sort <column>
    This determines what column to sort by. Options:
      d: Destination IP (or Name)
      p: Protocol
      s: State
      t: TTL
      b: Bytes
      P: Packets
    To sort by Source IP (or Name), don't use -b.
    Note that bytes/packets are only available when supported in the kernel,
    and enabled with -C

  -s, --src-filter <IP>
    Only show states with a source of <IP>
    Note, that this must be an IP, hostname matching is not yet supported.

  -S, --srcpt-filter <port>
    Only show states with a source port of <port>

  -t, --totals
    Toggle display of totals

See man iptstate(8) or the interactive help for more information.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$







itop


itop can be used to monitor the interrupts of a system in realtime.

Sample itop output

                                                               IRQs/Second
              Device (IRQ)             CPU0            CPU1           TOTAL
  IO-APIC-edge timer (  0):            2472               0            2472
  IO-APIC-edge i8042 (  1):               0               0               0
   IO-APIC-edge rtc0 (  8):               0               0               0
IO-APIC-fasteoi acpi (  9):               0               0               0
  IO-APIC-edge i8042 ( 12):               0               0               0
IO-APIC-edge ata_pii ( 14):               0               0               0
IO-APIC-edge ata_pii ( 15):               0               0               0
IO-APIC-fasteoi uhci ( 16):              90               0              90
IO-APIC-fasteoi uhci ( 17):               0               0               0
IO-APIC-fasteoi uhci ( 18):               0               0               0
IO-APIC-fasteoi ehci ( 19):               0               0               0
IO-APIC-fasteoi uhci ( 20):               0               0               0
IO-APIC-fasteoi uhci ( 21):               0               0               0
IO-APIC-fasteoi ehci ( 22):               0               0               0
PCI-MSI-edge PCIe PM ( 40):               0               0               0
PCI-MSI-edge PCIe PM ( 41):               0               0               0
PCI-MSI-edge PCIe PM ( 42):               0               0               0
PCI-MSI-edge PCIe PM ( 43):               0               0               0
PCI-MSI-edge PCIe PM ( 44):               0               0               0
PCI-MSI-edge PCIe PM ( 45):               0               0               0
   PCI-MSI-edge eth0 ( 46):               1               2               3
   PCI-MSI-edge ahci ( 47):               0               0               0
PCI-MSI-edge iwl4965 ( 48):              12               0              12
PCI-MSI-edge snd_hda ( 49):               0               0               0
Function call interr (CAL):               7               2               9
                     (ERR):               0               0               0
 IRQ work interrupts (IWI):               0               0               0
Local timer interrup (LOC):            1273            6318            7591
Machine check except (MCE):               0               0               0
 Machine check polls (MCP):               0               0               0
                     (MIS):               0               0               0
Non-maskable interru (NMI):               0               0               0
Performance monitori (PMI):               0               0               0
Rescheduling interru (RES):              63              38             101
APIC ICR read retrie (RTR):               0               0               0
 Spurious interrupts (SPU):               0               0               0
Threshold APIC inter (THR):               0               0               0
      TLB shootdowns (TLB):               1               4               5
Thermal event interr (TRM):               0               0               0





JDiskReport


Usage:

[xtrnaw7@t540p /var/tmp/jwm]$ scripts/jdiskreport.sh -v
[03.01.2017 08:18 ] ### jdiskreport.sh started at Tue Jan  3 08:18:47 CET 2017
[03.01.2017 08:18 ] ### The logfile used is /var/tmp/jdiskreport.sh.log
[03.01.2017 08:18 ] INFO: SCRIPTNAME is "jdiskreport.sh"
[03.01.2017 08:18 ] INFO: SCRIPTDIR is "scripts"
[03.01.2017 08:18 ] INFO: REAL_SCRIPTNAME is "/var/tmp/jwm/scripts/jdiskreport.sh"
[03.01.2017 08:18 ] INFO: REAL_SCRIPTDIR is "/var/tmp/jwm/scripts"
[03.01.2017 08:18 ] INFO: WORKING_DIR is "/var/tmp/jwm"
[03.01.2017 08:18 ] INFO: RUNNING_IN_TERMINAL_SESSION is "0" (0 = yes, 1 = no)
[03.01.2017 08:18 ] INFO: CUR_USER_ID is "1000"
[03.01.2017 08:18 ] INFO: CUR_USER_NAME is "xtrnaw7"
[03.01.2017 08:18 ] INFO: CUR_GROUP_ID is "1000"
[03.01.2017 08:18 ] INFO: CUR_GROUP_NAME is "xtrnaw7"
[03.01.2017 08:18 ] INFO: ACTION is "status"
[03.01.2017 08:18 ] INFO: Searching the jar file jdiskreport*.jar in /var/tmp/jwm ....
[03.01.2017 08:18 ] jar file found is /var/tmp/jwm/jdiskreport/jdiskreport-1.4.1.jar








jnettop


jnettop is a traffic visualiser, which captures traffic going through the host it is running from and displays streams sorted by bandwidth they use.


jnettop usage
[xtrnaw7@t540p /var/tmp/jwm/src/jnettop-0.13.0]$  ./jnettop -h
Usage: jnettop [-hv] [-i interface] [-d filename]

    -h, --help             display this help message
    -v, --version          display version information

    -b, --bit-units        show BPS in bits per second, not bytes per second
    -c, --content-filter   disable content filtering
    -d, --debug filename   write debug information into file (or syslog)
    --display type         type of display (curses, text, uia)
    -f, --config-file name reads configuration from file. defaults to ~/.jnettop
    --format format        list of fields to list in text output
    -i, --interface name   capture packets on specified interface
    --local-aggr arg       set local aggregation to none/host/port
    -n, --no-resolver      disable resolving of addresses
    -p, --promiscuous      enable promisc mode on the devices
    --remote-aggr arg      set remote aggregation to none/host/port
    -s, --select-rule rule selects one of the rules defined in config file
                           by it's name
    -t, --timeout sec      timeout in seconds after which jnettop ends (text display)
    -x, --filter rule      allows for specification of custom filtering rule
                           this follows tcpdump(1) syntax. don't forget to
                           enclose the filter into quotes when running from shell

Report bugs to <j@kubs.cz>

    Format variable can be CSV (comma separated values), TSV (tab separated values)
    or completelly custom format string, where the following identifiers are subst-
    ituted when surrounded by '$':
       src, srcname, srcport, srcbytes, srcpackets, srcbps, srcpps,
       dst, dstname, dstport, dstbytes, dstpackets, dstbps, dstpps,
       proto, totalbytes, totalpackets, totalbps, totalpps, filterdata

    example:
       jnettop --display text -t 5 --format CSV
       jnettop --display text -t 5 --format '$srcname$,$srcport$,$dstname$,$dstport$,$totalbps$'

[xtrnaw7@t540p /var/tmp/jwm/src/jnettop-0.13.0]$








justniffer

"Justniffer is a network protocol analyzer that captures network traffic and produces logs in a customized way, can emulate Apache web server log files, track response times and extract all "intercepted" files from the HTTP traffic.

It lets you interactively trace tcp traffic from a live network or from a previously saved capture file. Justniffer's native capture file format is libpcap format, which is also the format used by tcpdump and various other tools. "

justniffer usage

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/bin]$ ./justniffer --help
justniffer 0.5.14
Written by Oreste Notelli <oreste.notelli@plecno.com>
Copyright (c) 2007- 2016 Plecno s.r.l.

Usage:
  --help                                command line description
  -V [ --version ]                      version
  -f [ --filecap ] arg                  input file in 'tcpdump capture file
                                        format' (e.g. produced by tshark or
                                        tcpdump)
  -i [ --interface ] arg                network interface to listen on (e.g.
                                        eth0, en1, etc.)
  -l [ --log-format ] arg               log format (see FORMAT KEYWORDS). If
                                        missing the CommonLog (apache access
                                        log) format will ne used. See man page
                                        for further infos
                                        It is equivalent to
                                        %source.ip - - [%request.timestamp(%d/%
                                        b/%Y:%T %z)] "%request.line"
                                        %response.code %response.header.content
                                        -length(0) "%request.header.referer()"
                                        "%request.header.user-agent()"
  -a [ --append-log-format ] arg        append log format (see FORMAT KEYWORDS)
                                        to the default apache log format.
  -c [ --config ] arg                   configuration file
  -U [ --user ] arg                     user to impersonate when executing the
                                        command specified by the "execute"
                                        option
  -e [ --execute ] arg                  execute the specified command every
                                        request/response phase
  -p [ --packet-filter ] arg            packet filter (tcpdump filter syntax)
  -u [ --unprintable ]                  encode as dots (.) unprintable
                                        characters
  -t [ --truncated ]                    handle truncated streams (not correctly
                                        closed)
  -x [ --hex-encode ]                   encode unprintable characters as [<char
                                        hexadecimal code>]
  -r [ --raw ]                          show raw stream. it is a shortcat for 
                                        -l %request%response
  -n [ --not-found ] arg (=-)           default "not found" value, default is -
  -s [ --max-tcp-streams ] arg (=1024)  Max concurrent tcp streams
  -d [ --max-fragmented-ip ] arg (=1024)
                                        Max concurrent fragmented ip host
  -F [ --force-read-pcap ]              force the reading of the pcap file
                                        ignoring the snaplen value. WARNING:
                                        could give unexpected results

FORMAT KEYWORDS:
    %%
    %-
    %close.originator
    %close.time
    %close.timestamp
    %close.timestamp2
    %connection
    %connection.time
    %connection.timestamp
    %connection.timestamp2
    %dest.ip
    %dest.port
    %idle.time.0
    %idle.time.1
    %newline
    %request
    %request.grep
    %request.header
    %request.header.accept
    %request.header.accept-charset
    %request.header.accept-encoding
    %request.header.accept-language
    %request.header.authorization
    %request.header.connection
    %request.header.content-encoding
    %request.header.content-language
    %request.header.content-length
    %request.header.content-md5
    %request.header.cookie
    %request.header.grep
    %request.header.host
    %request.header.keep-alive
    %request.header.range
    %request.header.referer
    %request.header.transfer-encoding
    %request.header.user-agent
    %request.header.value
    %request.header.via
    %request.line
    %request.method
    %request.protocol
    %request.size
    %request.time
    %request.timestamp
    %request.timestamp2
    %request.url
    %response
    %response.code
    %response.grep
    %response.header
    %response.header.accept-ranges
    %response.header.age
    %response.header.allow
    %response.header.cache-control
    %response.header.connection
    %response.header.content-encoding
    %response.header.content-language
    %response.header.content-length
    %response.header.content-md5
    %response.header.content-range
    %response.header.content-type
    %response.header.date
    %response.header.etag
    %response.header.expires
    %response.header.grep
    %response.header.keep-alive
    %response.header.last-modified
    %response.header.pragma
    %response.header.server
    %response.header.set-cookie
    %response.header.transfer-encoding
    %response.header.value
    %response.header.vary
    %response.header.via
    %response.header.www-authenticate
    %response.line
    %response.message
    %response.protocol
    %response.size
    %response.time
    %response.time.begin
    %response.time.end
    %response.timestamp
    %response.timestamp2
    %session.requests
    %session.time
    %source.ip
    %source.port
    %streams
    %tab
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/bin]$




justniffer example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo bin/justniffer -i enp0s25 -a " %response.time"
192.168.1.164 - - [-] "" - 0 "" "" -
192.168.1.164 - - [-] "" - 0 "" "" -
192.168.1.164 - - [17/Nov/2016:20:34:48 +0100] "GET / HTTP/1.1" 200 0 "" "Wget/1.18 (linux-gnu)" 0.120227





latencytop


latencytop-gui (GUI) and latencytop-tui (CLI) are top like tools to monitor the latency of processes.

Please note that latencytop only works on modern Linux releases.

latencytop-tui screenshot:



latencytop-gui screenshot:






lxtx


lxtx was developed to streamline an integrated monitoring of Linux servers.

lxtx replaces vmstat, sar, iostat, nmon, ps, lsof and other Linux monitoring programs

lxtx usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ lxtx -h
Copyright (c) 2016 Teemstone LLC.
Version : 1.1.12
Usage : lxtx [ -e : System environment ] [ -c Number of updates(count) ] [ -s Interval of updates(seconds) ] [ -i Interval of updates(milliseconds) ] [ -a : Turn on all monitoring items with default value except -S, -m, and -t ] [ -Z : Log saving mode ] [ -b : Basic performance items On ] [ -r : Each core performance On ] [ -C Threshold of process CPU%(unit is 0.001%) ] [ -T Threshold of thread CPU%(unit is 0.001%) ] [ -R Threshold of process RSS(unit is KB) ] [ -g Length of process command column ] [ -p Number of process entries ] [ -k : Process creation/termination log On ] [ -f : Delta of file position On ] [ -F : List all files ] [ -S : List all sockets ] [ -o Number of port queue entries ] [ -n Number of network interface entries ] [ -d Number of disk entries ] [ -m : Delta of filesystem On ] [ -t : Delta of protocol statistics On ]

  [ -e | -v ] System environment. LVM information is included if -v is used.

  [ -H ] Time header Off

  [ -c Number of updates(count) ] [ -s Interval(seconds) | -i Interval(milliseconds) ]
       Default value - Count : Unlimited / Interval : 2 Seconds

  [ -b | -B ] Basic performance items On
       Show CPU, Memory, Swap and Virtual memory activities
       -B doesn't show data of steal and scan while -b shows all basic performance data.

  [ -r ] List each CPU core performance

  [ -C Threshold of process CPU%(unit is 0.001%) ] [ -T Threshold of Thread CPU%(unit is 0.001%) ] [ -R RSS Threshold(KB) ]
       CPU Threshold, CPU Threshold of Thread and RSS Threshold are used as a threshold for selection to display.
       Default value - Prcoess CPU% Threshold : 1 -> 0.001%(List all if -1) / Thread CPU% Threshold : 1 -> 0.001%(Disabled if 0) / RSS Threshold : 262144 -> 256MB.
       -p option is applied with default value 24 if -C, -T or -R is used

  [ -p Number of process entries ]
       Define how many process entries is displayed. No process collection when 0 is used. Default value is 24.
       * All processes are displayed if -R is 0 and -p is big enough.

  [ -P Format of Process entry, consisting of io, time, mem, none and ps ]
       Define how to show each process entry. Default includes io, time and mem like "-P io,time,mem". Space is not allowed like "-P mem, io".
       It shows only basic information such as PID, PPID, User and CPU usage if none is used like "-P none".
       Each entry shows start time in case of "-P time", and shows memory & IO in case of "-P mem,io".
       Process list is displayed if ps is used like "-P ps". time and mem options are available with ps like "-P ps,time,mem".

  [ -k ] Process creation/termination log On
       -p must be greater than 0. Default is 24 if not specified
       * It won't be displayed if creation and termination of a process happen within the interval, even if -k is used

  [ -f ] Delta of file position On or [ -F ] List all files
       Delta of file position monitoring On if -f used
       List all files opened by processes if -F used (fd is listed when position change detected if -F is not used)

  [ -S ] List all sockets
       List all sockets opened by processes if -S used
       -f(or F) is required for this option if -p is used(monitoring mode).

  [ -g Command column length of processes ]
       Arguments are displayed together if they exist, otherwise only command is displayed
       Default value is 64.(Command only if 0)

  [ -o Number of port queue entries ]
       Define how many tcp/udp port queue entries is displayed. No port collection when 0 is used. Default value is 4.

  [ -G Owner process name length ]
       Define length of owner process name of each port to display. Default and maximum is 64.

  [ -n Number of network interface entries ]
       Define how many network interface entries is displayed. No network interface collection when 0 is used. Default value is 4.

  [ -d Number of disk entries ]
       Define how many disk entries is displayed. No disk collection when 0 is used. Default value is 8.

  [ -m ] Delta of filesystem On
       Delta of filesystem monitoring On if -m used

  [ -t ] Delta of protocol statistics On
       Delta of protocol statistics monitoring On if -t used

  [ -a ] Apply -p 24(24 Process entries) -k(Process creation/termination) -f(Delta of file position) -o 4(Port queue) -n 4(Network I/F) -d 8(Disk)
       Exclude -S(sockets), -m(delta of protocol statistics), and -t(delta of filesystem)

  [ -Z ] log saving mode.

  Example) In order to list every process entry with process start time and memory allocated : lxtx -P ps,time,mem
  Example) In order to list every process entry with socket and file opened : lxtx -P ps -FS (or lxtx -FSP ps)
  Example) In order to monitor only top 10 processes and top 4 disks every single second : lxtx -p 10 -T 0 -d 4 -i 1000
        -p 10      : 10 entry count to display top 10 processes
        -T 0       : Thread performance is not included
        -d 4       : 4 entry count to display top 4 disks
        -i 1000    : Interval is 1000ms in order to display every single second
  Example) In order to monitor processes consuming 10% CPU or more : lxtx -C 10000
        -C 10000   : Since unit is 0.001%, 10000 means 10%
                     Monitoring interval is set to 2 seconds by default because -s or -i is not specified

  Ex) lxtx -d 10 -v    : Top 10 disks by default interval(2 seconds). In addition, VG and LV entries are displayed by option -v.
  Ex) lxtx -o 10 -n 4  : Top 10 port queues and top 4 network interfaces by default interval(2 seconds).
  Ex) lxtx -p 10 -f -k -s 1 : Top 10 processes with file position delta and creation/termination log by 1 second interval.
  Ex) lxtx -b -d 5     : Basic performance and top 5 disk.

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





lynis

"lynis is a security auditing tool for UNIX derivatives like Linux, macOS, BSD, Solaris, AIX, and others. It performs an in-depth security scan."

Note:

It's recommended to run lynis as root. To do that you must change the owner of the directory lynis and all files and sub directories to root, e.g.

cd ${JWM_DIR}
chown -R root:root lynis-*



lynis usage

[xtrnaw7@t540p /var/tmp/jwm/lynis-2.6.7]$ ./lynis

[ Lynis 2.6.7 ]

################################################################################
  Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
  welcome to redistribute it under the terms of the GNU General Public License.
  See the LICENSE file for details about using this software.

  2007-2018, CISOfy - https://cisofy.com/lynis/
  Enterprise support available (compliance, plugins, interface and tools)
################################################################################


[+] Initializing program
------------------------------------


  Usage: lynis command [options]


  Command:

    audit
        audit system                  : Perform local security scan
        audit system remote <host>    : Remote security scan
        audit dockerfile <file>       : Analyze Dockerfile

    show
        show                          : Show all commands
        show version                  : Show Lynis version
        show help                     : Show help

    update
        update info                   : Show update details


  Options:

    --no-log                          : Don't create a log file
    --pentest                         : Non-privileged scan (useful for pentest)
    --profile <profile>               : Scan the system with the given profile file
    --quick (-Q)                      : Quick mode, don't wait for user input

    Layout options
    --no-colors                       : Don't use colors in output
    --quiet (-q)                      : No output
    --reverse-colors                  : Optimize color display for light backgrounds

    Misc options
    --debug                           : Debug logging to screen
    --view-manpage (--man)            : View man page
    --verbose                         : Show more details on screen
    --version (-V)                    : Display version number and quit

    Enterprise options
    --plugindir <path>                : Define path of available plugins
    --upload                          : Upload data to central node

    More options available. Run './lynis show options', or use the man page.

  No command provided. Exiting..

 


example usage of lynis

[xtrnaw7@t540p /var/tmp/jwm/lynis]$ sudo ./lynis audit system
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/lynis]$ sudo ./lynis  audit system

[ Lynis 2.4.0 ]

################################################################################
  Lynis comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
  welcome to redistribute it under the terms of the GNU General Public License.
  See the LICENSE file for details about using this software.

  2007-2016, CISOfy - https://cisofy.com/lynis/
  Enterprise support available (compliance, plugins, interface and tools)
################################################################################


[+] Initializing program
------------------------------------
  - Detecting OS...                                           [ DONE ]
  - Checking profiles...                                      [ DONE ]

  ---------------------------------------------------
  Program version:           2.4.0
  Operating system:          Linux
  Operating system name:     Fedora
  Operating system version:  Fedora release 23 (Twenty Three)
  Kernel version:            4.7.7
  Hardware platform:         x86_64
  Hostname:                  t540p
  ---------------------------------------------------
  Profiles:                  /var/tmp/jwm/lynis-2.4.0/default.prf
  Log file:                  /var/log/lynis.log
  Report file:               /var/log/lynis-report.dat
  Report version:            1.0
  Plugin directory:          ./plugins
  ---------------------------------------------------
  Auditor:                   [Not Specified]
  Test category:             all
  Test group:                all
  ---------------------------------------------------
  - Program update status...                                  [ NO UPDATE ]

[+] System Tools
------------------------------------
  - Scanning available tools...
  - Checking system binaries...

[+] Plugins (phase 1)
------------------------------------
 Note: plugins have more extensive tests and may take several minutes to complete
 
  - Plugins enabled                                           [ NONE ]

[+] Boot and services
------------------------------------
  - Service Manager                                           [ systemd ]
  - Checking UEFI boot                                        [ DISABLED ]
  - Checking presence GRUB2                                   [ FOUND ]
    - Checking for password protection                        [ OK ]
  - Check running services (systemctl)                        [ DONE ]
        Result: found 41 running services
  - Check enabled services at boot (systemctl)                [ DONE ]
        Result: found 51 enabled services
  - Check startup files (permissions)                         [ OK ]

[+] Kernel
------------------------------------
  - Checking default runlevel                                 [ runlevel 5 ]
  - Checking CPU support (NX/PAE)
    CPU support: PAE and/or NoeXecute supported               [ FOUND ]
  - Checking kernel version and release                       [ DONE ]
  - Checking kernel type                                      [ DONE ]
  - Checking loaded kernel modules                            [ DONE ]
      Found 134 active modules
  - Checking Linux kernel configuration file                  [ FOUND ]
  - Checking default I/O kernel scheduler                     [ FOUND ]
  - Checking core dumps configuration                         [ DISABLED ]
    - Checking setuid core dumps configuration                [ DEFAULT ]
  - Check if reboot is needed                                 [ NO ]

[+] Memory and Processes
------------------------------------
  - Checking /proc/meminfo                                    [ FOUND ]
  - Searching for dead/zombie processes                       [ OK ]
  - Searching for IO waiting processes                        [ OK ]

[+] Users, Groups and Authentication
------------------------------------
  - Administrator accounts                                    [ OK ]
  - Unique UIDs                                               [ OK ]
  - Consistency of group files (grpck)                        [ OK ]
  - Unique group IDs                                          [ OK ]
  - Unique group names                                        [ OK ]
  - Password file consistency                                 [ OK ]
  - Query system users (non daemons)                          [ DONE ]
  - NIS+ authentication support                               [ NOT ENABLED ]
  - NIS authentication support                                [ NOT ENABLED ]
  - sudoers file                                              [ FOUND ]
    - Check sudoers file permissions                          [ OK ]
  - PAM password strength too20062006ls                               [ OK ]
  - PAM configuration file (pam.conf)                         [ NOT FOUND ]
  - PAM configuration files (pam.d)                           [ FOUND ]
  - PAM modules                                               [ FOUND ]
  - Checking user password aging (minimum)                    [ DISABLED ]
  - User password aging (maximum)                             [ DISABLED ]
  - Checking expired passwords                                [ OK ]
  - Checking Linux single user mode authentication            [ OK ]
  - Determining default umask
    - umask (/etc/profile and /etc/profile.d)                 [ SUGGESTION ]
    - umask (/etc/login.defs)                                 [ OK ]
    - umask (/etc/init.d/functions)                           [ SUGGESTION ]
  - LDAP authentication support                               [ NOT ENABLED ]
  - Logging failed login attempts                             [ DISABLED ]

[+] Shells
------------------------------------
  - Checking shells from /etc/shells
    Result: found 11 shells (valid shells: 11).
    - Session timeout settings/tools                          [ NONE ]
  - Checking default umask values
    - Checking default umask in /etc/bashrc                   [ WEAK ]
    - Checking default umask in /etc/csh.cshrc                [ WEAK ]
    - Checking default umask in /etc/profile                  [ WEAK ]

[+] File systems
------------------------------------
  - Checking mount points
    - Checking /home mount point                              [ SUGGESTION ]
    - Checking /tmp mount point                               [ OK ]
    - Checking /var mount point                               [ OK ]
  - Query swap partitions (fstab)                             [ NONE ]
  - Testing swap partitions                                   [ OK ]
  - Testing /proc mount (hidepid)                             [ SUGGESTION ]
  - Checking for old files in /tmp                            [ OK ]
  - Checking /tmp sticky bit                                  [ OK ]
  - ACL support root file system                              [ ENABLED ]
  - Mount options of /                                        [ NON DEFAULT ]
  - Mount options of /boot                                    [ NON DEFAULT ]
  - Checking Locate database                                  [ FOUND ]
  - Disable kernel support of some filesystems
    - Discovered kernel modules: cramfs hfs hfsplus squashfs udf

[+] Storage
------------------------------------
  - Checking usb-storage driver (modprobe config)             [ NOT DISABLED ]
  - Checking USB devices authorization                        [ ENABLED ]
  - Checking firewire ohci driver (modprobe config)           [ NOT DISABLED ]

[+] NFS
------------------------------------
  - Query rpc registered programs                             [ DONE ]
  - Query NFS versions                                        [ DONE ]
  - Query NFS protocols                                       [ DONE ]
  - Check running NFS daemon                                  [ NOT FOUND ]

[+] Name services
------------------------------------
  - Searching DNS domain name                                 [ UNKNOWN ]
  - Checking /etc/hosts
    - Checking /etc/hosts (duplicates)                        [ OK ]
    - Checking /etc/hosts (hostname)                          [ OK ]
    - Checking /etc/hosts (localhost)                         [ OK ]

[+] Ports and packages
------------------------------------
  - Searching package managers
    - Searching DNF package manager                           [ FOUND ]
      - Querying DNF package manager
  - Using DNF to find vulnerable packages                     [ WARNING ]
  - Checking package audit tool                               [ INSTALLED ]
    Found: dnf

[+] Networking
------------------------------------
  - Checking IPv6 configuration                               [ ENABLED ]
      Configuration method                                    [ AUTO ]
      IPv6 only                                               [ NO ]
  - Checking configured nameservers
    - Testing nameservers
        Nameserver: 192.168.1.1                               [ OK ]
    - Minimal of 2 responsive nameservers                     [ WARNING ]
  - Checking default gateway                                  [ DONE ]
  - Getting listening ports (TCP/UDP)                         [ DONE ]
      * Found 23 ports
  - Checking promiscuous interfaces                           [ OK ]
  - Checking waiting connections                              [ OK ]
  - Checking status DHCP client                               [ RUNNING ]
  - Checking for ARP monitoring software                      [ NOT FOUND ]

[+] Printers and Spools
------------------------------------
  - Checking cups daemon                                      [ RUNNING ]
  - Checking CUPS configuration file                          [ OK ]
    - File permissions                                        [ OK ]
  - Checking CUPS addresses/sockets                           [ FOUND ]
  - Checking lp daemon                                        [ NOT RUNNING ]

[+] Software: e-mail and messaging
------------------------------------
  - Checking Exim status                                      [ NOT FOUND ]
  - Checking Postfix status                                   [ NOT FOUND ]
  - Checking Dovecot status                                   [ NOT FOUND ]
  - Checking Qmail status                                     [ NOT FOUND ]
  - Checking Sendmail status                                  [ NOT FOUND ]

[+] Software: firewalls
------------------------------------
  - Checking iptables kernel module                           [ NOT FOUND ]
  - Checking iptables in config file                          [ FOUND ]
    - Checking iptables policies of chains                    [ FOUND ]
      - Checking chain INPUT (table: nfilter) policy          [ ACCEPT ]
    - Checking for empty ruleset                              [ OK ]
    - Checking for unused rules                               [ FOUND ]
  - Checking host based firewall                              [ ACTIVE ]

[+] Software: webserver
------------------------------------
  - Checking Apache (binary /usr/sbin/httpd)                  [ FOUND ]
      Info: Configuration file found (/etc/httpd/conf/httpd.conf)
      Info: Found 1 virtual hosts
    * Loadable modules                                        [ FOUND ]
        - Found 103 loadable modules
          mod_evasive: anti-DoS/brute force                   [ NOT FOUND ]
          mod_qos: anti-Slowloris                             [ NOT FOUND ]
          ModSecurity: web application firewall               [ NOT FOUND ]
  - Checking nginx                                            [ NOT FOUND ]

[+] SSH Support
------------------------------------
  - Checking running SSH daemon                               [ FOUND ]
    - Searching SSH configuration                             [ FOUND ]
    - SSH option: AllowTcpForwarding                          [ SUGGESTION ]
    - SSH option: ClientAliveCountMax                         [ SUGGESTION ]
    - SSH option: ClientAliveInterval                         [ OK ]
    - SSH option: Compression                                 [ SUGGESTION ]
    - SSH option: FingerprintHash                             [ OK ]
    - SSH option: GatewayPorts                                [ OK ]
    - SSH option: IgnoreRhosts                                [ OK ]
    - SSH option: LoginGraceTime                              [ OK ]
    - SSH option: LogLevel                                    [ SUGGESTION ]
    - SSH option: MaxAuthTries                                [ SUGGESTION ]
    - SSH option: MaxSessions                                 [ SUGGESTION ]
    - SSH option: PermitRootLogin                             [ SUGGESTION ]
    - SSH option: PermitUserEnvironment                       [ OK ]
    - SSH option: PermitTunnel                                [ OK ]
    - SSH option: Port                                        [ SUGGESTION ]
    - SSH option: PrintLastLog                                [ OK ]
    - SSH option: Protocol                                    [ OK ]
    - SSH option: StrictModes                                 [ OK ]
    - SSH option: TCPKeepAlive                                [ SUGGESTION ]
    - SSH option: UseDNS                                      [ OK ]
    - SSH option: UsePrivilegeSeparation                      [ OK ]
    - SSH option: VerifyReverseMapping                        [ NOT FOUND ]
    - SSH option: X11Forwarding                               [ SUGGESTION ]
    - SSH option: AllowAgentForwarding                        [ SUGGESTION ]
    - SSH option: AllowUsers                                  [ NOT FOUND ]
    - SSH option: AllowGroups                                 [ NOT FOUND ]

[+] SNMP Support
------------------------------------
  - Checking running SNMP daemon                              [ NOT FOUND ]

[+] Databases
------------------------------------
    No database engines found

[+] LDAP Services
------------------------------------
  - Checking OpenLDAP instance                                [ NOT FOUND ]

[+] PHP
------------------------------------
  - Checking PHP                                              [ FOUND ]
    - Checking PHP disabled functions                         [ FOUND ]
    - Checking expose_php option                              [ ON ]
    - Checking enable_dl option                               [ OFF ]
    - Checking allow_url_fopen option                         [ ON ]
    - Checking allow_url_include option                       [ OFF ]

[+] Squid Support
------------------------------------
  - Checking running Squid daemon                             [ NOT FOUND ]

[+] Logging and files
------------------------------------
  - Checking for a running log daemon                         [ OK ]
    - Checking Syslog-NG status                               [ NOT FOUND ]
    - Checking systemd journal status                         [ FOUND ]
    - Checking Metalog status                                 [ NOT FOUND ]
    - Checking RSyslog status                                 [ FOUND ]
    - Checking RFC 3195 daemon status                         [ NOT FOUND ]
    - Checking minilogd instances                             [ NOT FOUND ]
  - Checking logrotate presence                               [ OK ]
  - Checking log directories (static list)                    [ DONE ]
  - Checking open log files                                   [ DONE ]
  - Checking deleted files in use                             [ FILES FOUND ]

[+] Insecure services
------------------------------------
  - Checking inetd status                                     [ NOT ACTIVE ]

[+] Banners and identification
------------------------------------
  - /etc/issue                                                [ SYMLINK ]
    - /etc/issue contents                                     [ WEAK ]
  - /etc/issue.net                                            [ SYMLINK ]
    - /etc/issue.net contents                                 [ WEAK ]

[+] Scheduled tasks
------------------------------------
  - Checking crontab/cronjob                                  [ DONE ]
  - Checking atd status                                       [ RUNNING ]
    - Checking at users                                       [ DONE ]
    - Checking at jobs                                        [ NONE ]

[+] Accounting
------------------------------------
  - Checking accounting information                           [ OK ]
  - Checking sysstat accounting data                          [ NOT FOUND ]
  - Checking auditd                                           [ ENABLED ]
    - Checking audit rules                                    [ OK ]
    - Checking audit configuration file                       [ OK ]
    - Checking auditd log file                                [ FOUND ]

[+] Time and Synchronization
------------------------------------
  - NTP daemon found: chronyd                                 [ FOUND ]
  - NTP daemon found: systemd (timesyncd)                     [ FOUND ]
  - Checking for a running NTP daemon or client               [ OK ]

[+] Cryptography
------------------------------------
  - Checking for expired SSL certificates                     [ NONE ]

[+] Virtualization
------------------------------------

[+] Containers
------------------------------------

[+] Security frameworks
------------------------------------
  - Checking presence AppArmor                                [ NOT FOUND ]
  - Checking presence SELinux                                 [ FOUND ]
    - Checking SELinux status                                 [ DISABLED ]
  - Checking presence grsecurity                              [ NOT FOUND ]
  - Checking for implemented MAC framework                    [ NONE ]

[+] Software: file integrity
------------------------------------
  - Checking file integrity tools
  - Checking presence integrity tool                          [ NOT FOUND ]

[+] Software: System tooling
------------------------------------
  - Checking automation tooling
  - Automation tooling                                        [ NOT FOUND ]
  - Checking for IDS/IPS tooling                              [ NONE ]

[+] Software: Malware
------------------------------------

[+] File Permissions
------------------------------------
  - Starting file permissions check
    /etc/lilo.conf                                            [ NOT FOUND ]
    /root/.ssh                                                [ NOT FOUND ]

[+] Home directories
------------------------------------
  - Checking shell history files                              [ OK ]

[+] Kernel Hardening
------------------------------------
  - Comparing sysctl key pairs with scan profile
    - kernel.core_uses_pid (exp: 1)                           [ OK ]
    - kernel.ctrl-alt-del (exp: 0)                            [ OK ]
    - kernel.kptr_restrict (exp: 2)                           [ DIFFERENT ]
    - kernel.randomize_va_space (exp: 2)                      [ OK ]
    - kernel.sysrq (exp: 0)                                   [ DIFFERENT ]
    - net.ipv4.conf.all.accept_redirects (exp: 0)             [ OK ]
    - net.ipv4.conf.all.accept_source_route (exp: 0)          [ OK ]
    - net.ipv4.conf.all.bootp_relay (exp: 0)                  [ OK ]
    - net.ipv4.conf.all.forwarding (exp: 0)                   [ OK ]
    - net.ipv4.conf.all.log_martians (exp: 1)                 [ DIFFERENT ]
    - net.ipv4.conf.all.mc_forwarding (exp: 0)                [ OK ]
    - net.ipv4.conf.all.proxy_arp (exp: 0)                    [ OK ]
    - net.ipv4.conf.all.rp_filter (exp: 1)                    [ OK ]
    - net.ipv4.conf.all.send_redirects (exp: 0)               [ OK ]
    - net.ipv4.conf.default.accept_redirects (exp: 0)         [ OK ]
    - net.ipv4.conf.default.accept_source_route (exp: 0)      [ OK ]
    - net.ipv4.conf.default.log_martians (exp: 1)             [ DIFFERENT ]
    - net.ipv4.icmp_echo_ignore_broadcasts (exp: 1)           [ OK ]
    - net.ipv4.icmp_ignore_bogus_error_responses (exp: 1)     [ OK ]
    - net.ipv4.tcp_syncookies (exp: 1)                        [ OK ]
    - net.ipv4.tcp_timestamps (exp: 0)                        [ DIFFERENT ]
    - net.ipv6.conf.all.accept_redirects (exp: 0)             [ OK ]
    - net.ipv6.conf.all.accept_source_route (exp: 0)          [ OK ]
    - net.ipv6.conf.default.accept_redirects (exp: 0)         [ OK ]
    - net.ipv6.conf.default.accept_source_route (exp: 0)      [ OK ]

[+] Hardening
------------------------------------
    - Installed compiler(s)                                   [ FOUND ]
    - Installed malware scanner                               [ NOT FOUND ]
    - Installed malware scanner                               [ NOT FOUND ]

[+] Custom Tests
------------------------------------
  - Running custom tests...                                   [ NONE ]

[+] Plugins (phase 2)
------------------------------------

================================================================================

  -[ Lynis 2.4.0 Results ]-

  Warnings (3):
  ----------------------------
  ! Found one or more vulnerable packages. Run: dnf upgrade [PKGS-7352]
      https://cisofy.com/controls/PKGS-7352/

  ! Couldn't find 2 responsive nameservers [NETW-2705]
      https://cisofy.com/controls/NETW-2705/

  ! PHP option expose_php is possibly turned on, which can reveal useful information for attackers. [PHP-2372]
      https://cisofy.com/controls/PHP-2372/

  Suggestions (36):
  ----------------------------
  * Configure minimum password age in /etc/login.defs [AUTH-9286]
      https://cisofy.com/controls/AUTH-9286/

  * Configure maximum password age in /etc/login.defs [AUTH-9286]
      https://cisofy.com/controls/AUTH-9286/

  * Default umask in /etc/profile or /etc/profile.d/custom.sh could be more strict (e.g. 027) [AUTH-9328]
      https://cisofy.com/controls/AUTH-9328/

  * To decrease the impact of a full /home file system, place /home on a separated partition [FILE-6310]
      https://cisofy.com/controls/FILE-6310/

  * Disable drivers like USB storage when not used, to prevent unauthorized storage or data theft [STRG-1840]
      https://cisofy.com/controls/STRG-1840/

  * Disable drivers like firewire storage when not used, to prevent unauthorized storage or data theft [STRG-1846]
      https://cisofy.com/controls/STRG-1846/

  * Check DNS configuration for the dns domain name [NAME-4028]
      https://cisofy.com/controls/NAME-4028/

  * Check output of: dnf repoquery --unsatisfied [PKGS-7354]
      https://cisofy.com/controls/PKGS-7354/

  * Check your resolv.conf file and fill in a backup nameserver if possible [NETW-2705]
      https://cisofy.com/controls/NETW-2705/

  * Consider running ARP monitoring software (arpwatch,arpon) [NETW-3032]
      https://cisofy.com/controls/NETW-3032/

  * Check iptables rules to see which rules are currently not used [FIRE-4513]
      https://cisofy.com/controls/FIRE-4513/

  * Install Apache mod_evasive to guard webserver against DoS/brute force attempts [HTTP-6640]
      https://cisofy.com/controls/HTTP-6640/

  * Install Apache mod_qos to guard webserver against Slowloris attacks [HTTP-6641]
      https://cisofy.com/controls/HTTP-6641/

  * Install Apache modsecurity to guard webserver against web application attacks [HTTP-6643]
      https://cisofy.com/controls/HTTP-6643/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : AllowTcpForwarding (YES --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : ClientAliveCountMax (3 --> 2)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : Compression (DELAYED --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : LogLevel (INFO --> VERBOSE)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : MaxAuthTries (6 --> 1)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : MaxSessions (10 --> 2)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : PermitRootLogin (YES --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : Port (22 --> )
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : TCPKeepAlive (YES --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : X11Forwarding (YES --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Consider hardening SSH configuration [SSH-7408]
    - Details  : AllowAgentForwarding (YES --> NO)
      https://cisofy.com/controls/SSH-7408/

  * Change the expose_php line to: expose_php = Off [PHP-2372]
      https://cisofy.com/controls/PHP-2372/

  * Change the allow_url_fopen line to: allow_url_fopen = Off, to disable downloads via PHP [PHP-2376]
      https://cisofy.com/controls/PHP-2376/

  * Check what deleted files are still in use and why. [LOGG-2190]
      https://cisofy.com/controls/LOGG-2190/

  * Add a legal banner to /etc/issue, to warn unauthorized users [BANN-7126]
      https://cisofy.com/controls/BANN-7126/

  * Add legal banner to /etc/issue.net, to warn unauthorized users [BANN-7130]
      https://cisofy.com/controls/BANN-7130/

  * Enable sysstat to collect accounting (no results) [ACCT-9626]
      https://cisofy.com/controls/ACCT-9626/

  * Install a file integrity tool to monitor changes to critical and sensitive files [FINT-4350]
      https://cisofy.com/controls/FINT-4350/

  * Determine if automation tools are present for system management [TOOL-5002]
      https://cisofy.com/controls/TOOL-5002/

  * One or more sysctl values differ from the scan profile and could be tweaked [KRNL-6000]
      https://cisofy.com/controls/KRNL-6000/

  * Harden compilers like restricting access to root user only [HRDN-7222]
      https://cisofy.com/controls/HRDN-7222/

  * Harden the system by installing at least one malware scanner, to perform periodic file system scans [HRDN-7230]
    - Solution : Install a tool like rkhunter, chkrootkit, OSSEC
      https://cisofy.com/controls/HRDN-7230/

  Follow-up:
  ----------------------------
  - Show details of a test (lynis show details TEST-ID)
  - Check the logfile for all details (less /var/log/lynis.log)
  - Read security controls texts (https://cisofy.com)
  - Use --upload to upload data to central system (Lynis Enterprise users)

================================================================================

  Lynis security scan details:

  Hardening index : 67 [#############       ]
  Tests performed : 213
  Plugins enabled : 0

  Components:
  - Firewall               [V]
  - Malware scanner        [X]

  Lynis Modules:
  - Compliance Status      [?]
  - Security Audit         [V]
  - Vulnerability Scan     [V]

  Files:
  - Test and debug information      : /var/log/lynis.log
  - Report data                     : /var/log/lynis-report.dat

================================================================================

  Lynis 2.4.0

  Auditing, system hardening, and compliance for UNIX-based systems
  (Linux, macOS, BSD, and others)

  2007-2016, CISOfy - https://cisofy.com/lynis/
  Enterprise support available (compliance, plugins, interface and tools)

================================================================================

  [TIP]: Enhance Lynis audits by adding your settings to custom.prf (see /var/tmp/jwm/lynis-2.4.0/default.prf for all settings)

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/lynis]$




manServer


"manServer is a troff (or nroff) to HTML interpreter written in Perl. It is designed specifically to convert manual pages written using the man(7) troff macros into HTML for display and navigation with a web browser. To this end it includes direct support for man macros (also limited support for tbl, eqn and the doc macros) as well as the most common troff directives.

It differs from programs like man2html which merely take rather ugly nroff output and put a thin HTML wrapper around it.

The following macros and directives are supported by manServer, with varying degrees of correspondence to their troff counterparts. Where there are significant differences these are usually due to the fact that troff tends to be layout-oriented while HTML is more content-oriented and does not provide the same kind of detailed layout control."


Use the script ./start_stop_manserver.sh to start or stop the manServer (see here)



memconf


"memconf reports the size of each SIMM/DIMM memory module installed in a system. It also reports the system type and any empty memory sockets. In verbose mode, it also reports the following information if available:
- banner name, model and CPU/system frequencies
- address range and bank numbers for each module"

memconf works on Solaris, Linux, FreeBSD and HP-UX workstation or server.


memconf example

[xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./memconf
memconf:  V3.12 07-Oct-2016 http://sourceforge.net/projects/memconf/
hostname: t540p
 (2 X Quad-Core Intel(R) Core(TM) i7-4900MQ @ 2.80GHz)
ERROR: /dev/mem: Permission denied
    This user does not have permission to run dmidecode.
    Try running memconf as a privileged user like root.
[xtrnaw7@t540p /var/tmp/jwm/scripts]$ sudo ./memconf
memconf:  V3.12 07-Oct-2016 http://sourceforge.net/projects/memconf/
hostname: t540p
LENOVO 20BECTO1WW (Quad-Core Hyper-Threaded Intel(R) Corporation Intel(R) Core(TM) i7-4900MQ @ 2.80GHz)
Memory Error Correction: None
Maximum Memory: 16384MB (16GB)
ChannelA-DIMM0 BANK 0: 8192MB 1600MHz Synchronous DDR3 SODIMM, Samsung M471B1G73QH0-YK0
ChannelB-DIMM0 BANK 2: 8192MB 1600MHz Synchronous DDR3 SODIMM, Samsung M471B1G73QH0-YK0
empty memory sockets: None
total memory = 16384MB (16GB)
[xtrnaw7@t540p /var/tmp/jwm/scripts]$





memstat


memstat is a small proc-based utility designed to help the system administrator figure out what's consuming memory.  Like ps, it lists all the processes, and how much private memory each is us
ing.  Unlike ps, it also lists all the shared objects (shared libraries and executables) that are in memory, and which processes are using those shared objects.

memstat usage:

./memstat [-n] [-v] [-w] [-p pid]


memstat example
[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ ./memstat -p 18236
1830380k: PID 18236 (/data/tools/bluegriffon-3.0.1/bluegriffon)
   8904k(   8904k): /SYSV00000000 18236
   8904k(   8904k): /SYSV00000000 18236
    548k(    548k): /SYSV00000000 18236
    548k(    548k): /SYSV00000000 18236
    884k(    884k): /SYSV00000000 18236
    884k(    884k): /SYSV00000000 18236
    808k(    808k): /SYSV00000000 18236
    808k(    808k): /SYSV00000000 18236
    156k(    156k): /SYSV00000000 18236
    156k(    156k): /SYSV00000000 18236
    732k(    732k): /SYSV00000000 18236
    732k(    732k): /SYSV00000000 18236
      4k(      4k): /dev/shm/org.chromium.Pd9x10 18236
      4k(      4k): /dev/shm/org.chromium.Y0ivMC 18236
      4k(      4k): /dev/shm/org.chromium.o7gJZL 18236
      4k(      4k): /dev/shm/org.chromium.0ODNoC 18236
      4k(      4k): /dev/shm/org.chromium.YvcYNs 18236
      4k(      4k): /dev/shm/org.chromium.KiPPoj 18236
      4k(      4k): /dev/shm/org.chromium.LRPIZ9 18236
      4k(      4k): /dev/shm/org.chromium.v2FDA0 18236
      4k(      4k): /dev/shm/org.chromium.UGKpbh 18236
      4k(      4k): /dev/shm/org.chromium.8mqlBV 18236
      4k(      4k): /dev/shm/org.chromium.jFfShp 18236
      4k(      4k): /dev/shm/org.chromium.fb4GMX 18236
      4k(      4k): /dev/shm/org.chromium.6Fw0AF 18236
      4k(      4k):[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ /dev/shm/org.chromium.M7TY3B 18236
      4k(      4k): /dev/shm/org.chromium.7ZMzVr 18236
      4k(      4k): /dev/shm/org.chromium.kmd51B 18236
      4k(      4k): /dev/shm/org.chromium.pBr71B 18236
      4k(      4k): /dev/shm/org.chromium.GVvcQh 18236
      4k(      4k): /run/user/1000/dconf/user 18236
   2128k(     80k): /usr/lib64/liblz4.so.1.8.0 18236
    552k(    536k): /usr/lib64/libsystemd.so.0.16.0 18236
   2320k(    248k): /usr/lib64/libfontconfig.so.1.9.2 18236
   3652k(   1576k): /usr/lib64/libgio-2.0.so.0.5000.3 18236
   2072k(     20k): /usr/lib64/libXfixes.so.3.1.0 18236
   2728k(    656k): /usr/lib64/libfreetype.so.6.12.5 18236
   2052k(      4k): /usr/lib64/libwayland-egl.so.1.0.0 18236
    160k(    152k): /usr/lib64/ld-2.24.so 18236
   3848k(   1780k): /usr/lib64/libc-2.24.so 18236
   2064k(     12k): /usr/lib64/libdl-2.24.so 18236
   2140k(     88k): /usr/lib64/libnsl-2.24.so 18236
 109328k(      0k): /usr/lib/locale/locale-archive 18236
   3132k(   1052k): /usr/lib64/libgcrypt.so.20.1.9 18236
   2604k(    452k): /usr/lib64/libGL.so.1.0.0 18236
     84k(     68k): /usr/lib64/libnss_myhostname.so.2 18236
   2088k(     36[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ k): /usr/lib64/libltdl.so.7.3.1 18236
   2088k(     36k): /usr/lib64/libXrender.so.1.3.0 18236
   2204k(    152k): /usr/lib64/libgdk_pixbuf-2.0.so.0.3609.0 18236
   3108k(   1056k): /usr/lib64/libm-2.24.so 18236
   2356k(    296k): /usr/lib64/libpango-1.0.so.0.4000.9 18236
   2076k(     20k): /usr/lib64/libnss_dns-2.24.so 18236
   2096k(     40k): /usr/lib64/libnss_files-2.24.so 18236
   2244k(    180k): /usr/lib64/libatspi.so.0.0.1 18236
   2152k(     96k): /usr/lib64/libpthread-2.24.so 18236
   2148k(     92k): /usr/lib64/libresolv-2.24.so 18236
   2060k(      8k): /usr/lib64/libfreebl3.so 18236
   2080k(     28k): /usr/lib64/librt-2.24.so 18236
   2060k(      8k): /usr/lib64/libutil-2.24.so 18236
   2140k(     88k): /usr/lib64/libgcc_s-6.4.1-20170727.so.1 18236
   2100k(     48k): /usr/lib64/libpangocairo-1.0.so.0.4000.9 18236
   2228k(    168k): /usr/lib64/libdbus-glib-1.so.2.3.3 18236
   2128k(     80k): /usr/lib64/libpangoft2-1.0.so.0.4000.9 18236
   2976k(    896k): /usr/lib64/libepoxy.so.0.0.0 18236
   3028k(    940k): /usr/lib64/libgdk-3.so.0.2200.17 18236
   9200k(   7084k): /usr/lib64/libgtk-3.so.0.2200.17 18236
   2184k(    128k): /usr/lib64/libnssdbm3.so 18236
   2112k(     60k): /usr/lib64/libXi.so.6.1.0 18236
   2248k(    196k): /usr/lib64/libpng16.so.16.27.0 18236
   2072k(     20k): /usr/lib64/libXtst.so.6.1.0 18236
   2092k(     40k): /usr/lib64/libXrandr.so.2.2.0 18236
   2412k(    35[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ 6k): /usr/lib64/libFLAC.so.8.3.0 18236
   2080k(     28k): /usr/lib64/libSM.so.6.0.1 18236
   2060k(      8k): /usr/lib64/libXau.so.6.0.0 18236
   2056k(      8k): /usr/lib64/libXcomposite.so.1.0.0 18236
   2088k(     36k): /usr/lib64/libXcursor.so.1.0.2 18236
   2056k(      8k): /usr/lib64/libXdamage.so.1.1.0 18236
   2120k(     68k): /usr/lib64/libXext.so.6.4.0 18236
   3600k(   1504k): /usr/lib64/libstdc++.so.6.0.22 18236
   2060k(      8k): /usr/lib64/libXinerama.so.1.0.0 18236
   2064k(      8k): /usr/lib64/libXss.so.1.0.0 18236
   2460k(    388k): /usr/lib64/libXt.so.6.0.0 18236
   2068k(     20k): /usr/lib64/libasyncns.so.0.3.1 18236
   2200k(    136k): /usr/lib64/libatk-1.0.so.0.22209.1 18236
   2232k(    176k): /usr/lib64/libatk-bridge-2.0.so.0.0.0 18236
   2080k(     28k): /usr/lib64/libcairo-gobject.so.2.11400.8 18236
   3228k(   1160k): /usr/lib64/libcairo.so.2.11400.8 18236
   2120k(     68k): /usr/lib64/libcanberra.so.0.2.5 18236
   2068k(     16k): /usr/lib64/libcap.so.2.25 18236
   2076k(     24k): /usr/lib64/libdatrie.so.1.3.2 18236
   2080k(     28k): /usr/lib64/libffi.so.6.0.2 18236
   2504k(    452k): /usr/lib64/libpcre.so.1.2.9 18236
   2648k(    440k): /usr/lib64/libGLdispatch.so.0.0.0 18236
   2196k(    148k): /usr/lib64/liblzma.so.5.2.2 18236
   2072k(     24k): /usr/lib64/libogg.so.0.8.2 18236
   2372k(    312k): /usr/lib64/libpulse.so.0.20.1 18236
   2088k(     32k): /usr/lib64/libthai.so.0.3.0 18236
   2220k(    172k): /usr/lib64/libvorbis.so.0.4.8 18236
   2724k(    56[[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ 4k): /usr/lib64/libvorbisenc.so.2.0.11 18236
   2080k(     28k): /usr/lib64/libvorbisfile.so.3.3.7 18236
   2108k(     48k): /usr/lib64/libwayland-client.so.0.3.0 18236
   2080k(     16k): /usr/lib64/libwayland-cursor.so.0.0.0 18236
   2088k(     36k): /usr/lib64/libwrap.so.0.7.6 18236
   2136k(     84k): /usr/lib64/libz.so.1.2.8 18236
   3324k(   1248k): /usr/lib64/libX11.so.6.3.0 18236
   2196k(    140k): /usr/lib64/libselinux.so.1 18236
   2220k(    168k): /usr/lib64/libgraphite2.so.3.0.1 18236
   2112k(     60k): /usr/lib64/libbz2.so.1.0.6 18236
   2064k(     16k): /usr/lib64/libuuid.so.1.3.0 18236
   2096k(     44k): /usr/lib64/libgsm.so.1.0.17 18236
   2216k(    160k): /usr/lib64/libexpat.so.1.6.5 18236
   2120k(     64k): /usr/lib64/libGLX.so.0.0.0 18236
   2056k(      8k): /usr/lib64/libnss_mdns4_minimal.so.2 18236
   2724k(    644k): /usr/lib64/libpixman-1.so.0.34.0 18236
   2128k(     72k): /usr/lib64/libgpg-error.so.0.19.1 18236
   2300k(    248k): /usr/lib64/libxkbcommon.so.0.0.0 18236
   2104k(     48k): /usr/lib64/libxcb-render.so.0.0.0 18236
   2208k(    156k): /usr/lib64/libxcb.so.1.1.0 18236
   2052k(      4k): /usr/lib64/libX11-xcb.so.1.0.0 18236
   2064k(      8k): /usr/lib64/libxcb-shm.so.0.0.0 18236
   2136k(     84k): /usr/lib64/libtdb.so.1.3.13 18236
   2372k(    316k): /usr/lib64/libdbus-1.so.3.19.0 18236
   2128k(     72k): /usr/lib64/libEGL.so.1.0.0 18236
   2448k(    388k): /usr/lib64/libharfbuzz.so.0.10302.0 18236
   2080k(     28k): /usr/lib64/libcrypt-nss-2.24.so 18236
   2148k(     92k): /usr/lib64/libICE.so.6.3.0 18236
   2312k(    244k): /usr/lib64/libblkid.so.1.1.0 18236
   2340k(    284k): /usr/lib64/libmount.so.1.1.0 18236
   3144k(   1088k): /usr/lib64/libglib-2.0.so.0.5000.3 18236
   2064k(     12k): /usr/lib64/libgmodule-2.0.so.0.5000.3 18236
   2376k(    320k): /usr/lib64/libgobject-2.0.so.0.5000.3 18236
   2052k(      4k): /usr/lib64/libgthread-2.0.so.0.5000.3 18236
   2484k(    420k): /usr/lib64/libsndfile.so.1.0.28 18236
      4k(      4k): /var/cache/fontconfig/ac68f755438cc3dc5a526084839fc7ca-l...
     28k(     28k): /var/cache/fontconfig/a116919b8bdb14ffaacd61d02e607fb8-l...
      8k(      8k): /var/cache/fontconfig/3640555adad8a8f6978400293cfce7ab-l...
     76k(     76k): /var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-l...
      8k(      8k): /var/cache/fontconfig/f9d379b867d7c69c85310a4f24e5228f-l...
      8k(      8k): /var/cache/fontconfig/d3379abda271c4acd2ad0c01f565d0b0-l...
      4k(      4k): /var/cache/fontconfig/3c3fb04d32a5211b073874b125d29701-l...
      4k(      4k): /var/cache/fontconfig/2881ed3fd21ca306ddad6f9b0dd3189f-l...
      4k(      4k): /var/cache/fontconfig/47f48679023f44a4d1e44699a69464f6-l...
      4k(      4k): /var/cache/fontconfig/900402270e15d763a6e008bb2d4c7686-l...
      4k(      4k): /var/cache/fontconfig/1e1e03b57ed9f0c723c5aeafda46c3fb-l...
      4k(      4k): /var/cache/fontconfig/df893b4576ad6107f9397134092c4059-l...
      4k(      4k): /var/cache/fontconfig/5d33f04e74a97395cf88bbd83847f1f1-l...
      4k(      4k): /var/cache/fontconfig/860639f272b8b4b3094f9e399e41bccd-l...
      4k(      4k): /var/cache/fontconfig/b887eea8f1b96e1d899b44ed6681fc27-l...
     36k(     36k): /var/cache/fontconfig/58b941d9fae7b4c9a612a39a011865c1-l...
     12k(     12k): /var/cache/fontconfig/e26bf336397aae6fcef4d3803472adec-l...
      4k(      4k): /var/cache/fontconfig/12513961c6e7090f8648812f9eaf65d6-l...
      4k(      4k): /var/cache/fontconfig/8cab66d8f642305e525ba3e322d0979c-l...
      4k(      4k): /var/cache/fontconfig/f951a6bc01c50d58ac4af16a0108457e-l...
      4k(      4k): /var/cache/fontconfig/81a173283b451552b599cfaafd6236bd-l...
      4k(      4k): /var/cache/fontconfig/4e602040080c966cb821813a3e584564-l...
      8k(      8k): /var/cache/fontconfig/3f821257dd33660ba7bbb45c32deb84c-l...
     16k(     16k): /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-l...
     20k(     20k): /var/cache/fontconfig/a289f7e03715303a9a1b010d74c00c6a-l...
     44k(     44k): /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-l...
      8k(      8k): /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-l...
     44k(     44k): /var/cache/fontconfig/12b26b760a24f8b4feb03ad48a333a72-l...
      8k(      8k): /var/cache/fontconfig/99a1ce9f8b6a0434aadb01d3779b0780-l...
     16k(     16k): /var/cache/fontconfig/7ee6df7a8311986241317a58487e0145-l...
      4k(      4k): /var/cache/fontconfig/b4d0b56f766d89640448751fcd18ec1e-l...
     28k(     28k): /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-l...
      4k(      4k): /var/cache/fontconfig/e61abf8156cc476151baa07d67337cae-l...
    156k(    156k): /var/cache/fontconfig/7a7f22e4c6b2236c525eb458794c6fd2-l...
     16k(     16k): /var/cache/fontconfig/8aa05f52519ebacbdf5713e01a6153b0-l...
      4k(      4k): /var/cache/fontconfig/f132fa2327207a6ac3298c0518879731-l...
     12k(     12k): /var/cache/fontconfig/830f035fa84a65ce80e050178dbb630d-l...
      8k(      8k): /var/cache/fontconfig/2e1514a9fdd499050989183bb65136db-l...
      8k(      8k): /var/cache/fontconfig/b3043b29744cf0a429678d296f5e4026-l...
      4k(      4k): /var/cache/fontconfig/0f80fa86029ae75a63f21d682b864529-l...
      8k(      8k): /var/cache/fontconfig/b14e78aa9400ae7a28193faee1d62280-l...
      4k(      4k): /var/cache/fontconfig/6fcb01a03a016cc71057b587cdea6709-l...
   2288k(    216k): /usr/lib64/gvfs/libgvfscommon.so 18236
      4k(      0k): /usr/local/share/glib-2.0/schemas/gschemas.compiled 18236
   2064k(     12k): /usr/lib64/gconv/UTF-16.so 18236
     28k(     28k): /usr/lib64/gconv/gconv-modules.cache 18236
   2572k(    512k): /usr/lib64/pulseaudio/libpulsecommon-10.0.so 18236
   2248k(    188k): /usr/lib64/gio/modules/libgvfsdbus.so 18236
   2096k(     44k): /usr/lib64/gio/modules/libdconfsettings.so 18236
    132k(    132k): /usr/share/mime/mime.cache 18236
    104k(      0k): /usr/share/icons/Adwaita/icon-theme.cache 18236
   1376k(      0k): /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf 18236
   1240k(      0k): /usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf 18236
   2220k(
[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ ./memstat -p 18236
1830380k: PID 18236 (/data/tools/bluegriffon-3.0.1/bluegriffon)
   8904k(   8904k): /SYSV00000000 18236
   8904k(   8904k): /SYSV00000000 18236
    548k(    548k): /SYSV00000000 18236
    548k(    548k): /SYSV00000000 18236
    884k(    884k): /SYSV00000000 18236
    884k(    884k): /SYSV00000000 18236
    808k(    808k): /SYSV00000000 18236
    808k(    808k): /SYSV00000000 18236
    156k(    156k): /SYSV00000000 18236
    156k(    156k): /SYSV00000000 18236
    732k(    732k): /SYSV00000000 18236
    732k(    732k): /SYSV00000000 18236
      4k(      4k): /dev/shm/org.chromium.Pd9x10 18236
      4k(      4k): /dev/shm/org.chromium.Y0ivMC 18236
      4k(      4k): /dev/shm/org.chromium.o7gJZL 18236
      4k(      4k): /dev/shm/org.chromium.0ODNoC 18236
      4k(      4k): /dev/shm/org.chromium.YvcYNs 18236
      4k(      4k): /dev/shm/org.chromium.KiPPoj 18236
      4k(      4k): /dev/shm/org.chromium.LRPIZ9 18236
      4k(      4k): /dev/shm/org.chromium.v2FDA0 18236
      4k(      4k): /dev/shm/org.chromium.UGKpbh 18236
      4k(      4k): /dev/shm/org.chromium.8mqlBV 18236
      4k(      4k): /dev/shm/org.chromium.jFfShp 18236
      4k(      4k): /dev/shm/org.chromium.fb4GMX 18236
      4k(      4k): /dev/shm/org.chromium.6Fw0AF 18236
      4k(      4k):[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$
/dev/shm/org.chromium.M7TY3B 18236
      4k(      4k): /dev/shm/org.chromium.7ZMzVr 18236
      4k(      4k): /dev/shm/org.chromium.kmd51B 18236
      4k(      4k): /dev/shm/org.chromium.pBr71B 18236
      4k(      4k): /dev/shm/org.chromium.GVvcQh 18236
      4k(      4k): /run/user/1000/dconf/user 18236
   2128k(     80k): /usr/lib64/liblz4.so.1.8.0 18236
    552k(    536k): /usr/lib64/libsystemd.so.0.16.0 18236
   2320k(    248k): /usr/lib64/libfontconfig.so.1.9.2 18236
   3652k(   1576k): /usr/lib64/libgio-2.0.so.0.5000.3 18236
   2072k(     20k): /usr/lib64/libXfixes.so.3.1.0 18236
   2728k(    656k): /usr/lib64/libfreetype.so.6.12.5 18236
   2052k(      4k): /usr/lib64/libwayland-egl.so.1.0.0 18236
    160k(    152k): /usr/lib64/ld-2.24.so 18236
   3848k(   1780k): /usr/lib64/libc-2.24.so 18236
   2064k(     12k): /usr/lib64/libdl-2.24.so 18236
   2140k(     88k): /usr/lib64/libnsl-2.24.so 18236
 109328k(      0k): /usr/lib/locale/locale-archive 18236
   3132k(   1052k): /usr/lib64/libgcrypt.so.20.1.9 18236
   2604k(    452k): /usr/lib64/libGL.so.1.0.0 18236
     84k(     68k): /usr/lib64/libnss_myhostname.so.2 18236
   2088k(     36[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ k): /usr/lib64/libltdl.so.7.3.1 18236
   2088k(     36k): /usr/lib64/libXrender.so.1.3.0 18236
   2204k(    152k): /usr/lib64/libgdk_pixbuf-2.0.so.0.3609.0 18236
   3108k(   1056k): /usr/lib64/libm-2.24.so 18236
   2356k(    296k): /usr/lib64/libpango-1.0.so.0.4000.9 18236
   2076k(     20k): /usr/lib64/libnss_dns-2.24.so 18236
   2096k(     40k): /usr/lib64/libnss_files-2.24.so 18236
   2244k(    180k): /usr/lib64/libatspi.so.0.0.1 18236
   2152k(     96k): /usr/lib64/libpthread-2.24.so 18236
   2148k(     92k): /usr/lib64/libresolv-2.24.so 18236
   2060k(      8k): /usr/lib64/libfreebl3.so 18236
   2080k(     28k): /usr/lib64/librt-2.24.so 18236
   2060k(      8k): /usr/lib64/libutil-2.24.so 18236
   2140k(     88k): /usr/lib64/libgcc_s-6.4.1-20170727.so.1 18236
   2100k(     48k): /usr/lib64/libpangocairo-1.0.so.0.4000.9 18236
   2228k(    168k): /usr/lib64/libdbus-glib-1.so.2.3.3 18236
   2128k(     80k): /usr/lib64/libpangoft2-1.0.so.0.4000.9 18236
   2976k(    896k): /usr/lib64/libepoxy.so.0.0.0 18236
   3028k(    940k): /usr/lib64/libgdk-3.so.0.2200.17 18236
   9200k(   7084k): /usr/lib64/libgtk-3.so.0.2200.17 18236
   2184k(    128k): /usr/lib64/libnssdbm3.so 18236
   2112k(     60k): /usr/lib64/libXi.so.6.1.0 18236
   2248k(    196k): /usr/lib64/libpng16.so.16.27.0 18236
   2072k(     20k): /usr/lib64/libXtst.so.6.1.0 18236
   2092k(     40k): /usr/lib64/libXrandr.so.2.2.0 18236
   2412k(    35[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ 6k): /usr/lib64/libFLAC.so.8.3.0 18236
   2080k(     28k): /usr/lib64/libSM.so.6.0.1 18236
   2060k(      8k): /usr/lib64/libXau.so.6.0.0 18236
   2056k(      8k): /usr/lib64/libXcomposite.so.1.0.0 18236
   2088k(     36k): /usr/lib64/libXcursor.so.1.0.2 18236
   2056k(      8k): /usr/lib64/libXdamage.so.1.1.0 18236
   2120k(     68k): /usr/lib64/libXext.so.6.4.0 18236
   3600k(   1504k): /usr/lib64/libstdc++.so.6.0.22 18236
   2060k(      8k): /usr/lib64/libXinerama.so.1.0.0 18236
   2064k(      8k): /usr/lib64/libXss.so.1.0.0 18236
   2460k(    388k): /usr/lib64/libXt.so.6.0.0 18236
   2068k(     20k): /usr/lib64/libasyncns.so.0.3.1 18236
   2200k(    136k): /usr/lib64/libatk-1.0.so.0.22209.1 18236
   2232k(    176k): /usr/lib64/libatk-bridge-2.0.so.0.0.0 18236
   2080k(     28k): /usr/lib64/libcairo-gobject.so.2.11400.8 18236
   3228k(   1160k): /usr/lib64/libcairo.so.2.11400.8 18236
   2120k(     68k): /usr/lib64/libcanberra.so.0.2.5 18236
   2068k(     16k): /usr/lib64/libcap.so.2.25 18236
   2076k(     24k): /usr/lib64/libdatrie.so.1.3.2 18236
   2080k(     28k): /usr/lib64/libffi.so.6.0.2 18236
   2504k(    452k): /usr/lib64/libpcre.so.1.2.9 18236
   2648k(    440k): /usr/lib64/libGLdispatch.so.0.0.0 18236
   2196k(    148k): /usr/lib64/liblzma.so.5.2.2 18236
   2072k(     24k): /usr/lib64/libogg.so.0.8.2 18236
   2372k(    312k): /usr/lib64/libpulse.so.0.20.1 18236
   2088k(     32k): /usr/lib64/libthai.so.0.3.0 18236
   2220k(    172k): /usr/lib64/libvorbis.so.0.4.8 18236
   2724k(    56[[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$ 4k): /usr/lib64/libvorbisenc.so.2.0.11 18236
   2080k(     28k): /usr/lib64/libvorbisfile.so.3.3.7 18236
   2108k(     48k): /usr/lib64/libwayland-client.so.0.3.0 18236
   2080k(     16k): /usr/lib64/libwayland-cursor.so.0.0.0 18236
   2088k(     36k): /usr/lib64/libwrap.so.0.7.6 18236
   2136k(     84k): /usr/lib64/libz.so.1.2.8 18236
   3324k(   1248k): /usr/lib64/libX11.so.6.3.0 18236
   2196k(    140k): /usr/lib64/libselinux.so.1 18236
   2220k(    168k): /usr/lib64/libgraphite2.so.3.0.1 18236
   2112k(     60k): /usr/lib64/libbz2.so.1.0.6 18236
   2064k(     16k): /usr/lib64/libuuid.so.1.3.0 18236
   2096k(     44k): /usr/lib64/libgsm.so.1.0.17 18236
   2216k(    160k): /usr/lib64/libexpat.so.1.6.5 18236
   2120k(     64k): /usr/lib64/libGLX.so.0.0.0 18236
   2056k(      8k): /usr/lib64/libnss_mdns4_minimal.so.2 18236
   2724k(    644k): /usr/lib64/libpixman-1.so.0.34.0 18236
   2128k(     72k): /usr/lib64/libgpg-error.so.0.19.1 18236
   2300k(    248k): /usr/lib64/libxkbcommon.so.0.0.0 18236
   2104k(     48k): /usr/lib64/libxcb-render.so.0.0.0 18236
   2208k(    156k): /usr/lib64/libxcb.so.1.1.0 18236
   2052k(      4k): /usr/lib64/libX11-xcb.so.1.0.0 18236
   2064k(      8k): /usr/lib64/libxcb-shm.so.0.0.0 18236
   2136k(     84k): /usr/lib64/libtdb.so.1.3.13 18236
   2372k(    316k): /usr/lib64/libdbus-1.so.3.19.0 18236
   2128k(     72k): /usr/lib64/libEGL.so.1.0.0 18236
   2448k(    388k): /usr/lib64/libharfbuzz.so.0.10302.0 18236
   2080k(     28k): /usr/lib64/libcrypt-nss-2.24.so 18236
   2148k(     92k): /usr/lib64/libICE.so.6.3.0 18236
   2312k(    244k): /usr/lib64/libblkid.so.1.1.0 18236
   2340k(    284k): /usr/lib64/libmount.so.1.1.0 18236
   3144k(   1088k): /usr/lib64/libglib-2.0.so.0.5000.3 18236
   2064k(     12k): /usr/lib64/libgmodule-2.0.so.0.5000.3 18236
   2376k(    320k): /usr/lib64/libgobject-2.0.so.0.5000.3 18236
   2052k(      4k): /usr/lib64/libgthread-2.0.so.0.5000.3 18236
   2484k(    420k): /usr/lib64/libsndfile.so.1.0.28 18236
      4k(      4k): /var/cache/fontconfig/ac68f755438cc3dc5a526084839fc7ca-l...
     28k(     28k): /var/cache/fontconfig/a116919b8bdb14ffaacd61d02e607fb8-l...
      8k(      8k): /var/cache/fontconfig/3640555adad8a8f6978400293cfce7ab-l...
     76k(     76k): /var/cache/fontconfig/614d1caaa4d7914789410f6367de37ca-l...
      8k(      8k): /var/cache/fontconfig/f9d379b867d7c69c85310a4f24e5228f-l...
      8k(      8k): /var/cache/fontconfig/d3379abda271c4acd2ad0c01f565d0b0-l...
      4k(      4k): /var/cache/fontconfig/3c3fb04d32a5211b073874b125d29701-l...
      4k(      4k): /var/cache/fontconfig/2881ed3fd21ca306ddad6f9b0dd3189f-l...
      4k(      4k): /var/cache/fontconfig/47f48679023f44a4d1e44699a69464f6-l...
      4k(      4k): /var/cache/fontconfig/900402270e15d763a6e008bb2d4c7686-l...
      4k(      4k): /var/cache/fontconfig/1e1e03b57ed9f0c723c5aeafda46c3fb-l...
      4k(      4k): /var/cache/fontconfig/df893b4576ad6107f9397134092c4059-l...
      4k(      4k): /var/cache/fontconfig/5d33f04e74a97395cf88bbd83847f1f1-l...
      4k(      4k): /var/cache/fontconfig/860639f272b8b4b3094f9e399e41bccd-l...
      4k(      4k): /var/cache/fontconfig/b887eea8f1b96e1d899b44ed6681fc27-l...
     36k(     36k): /var/cache/fontconfig/58b941d9fae7b4c9a612a39a011865c1-l...
     12k(     12k): /var/cache/fontconfig/e26bf336397aae6fcef4d3803472adec-l...
      4k(      4k): /var/cache/fontconfig/12513961c6e7090f8648812f9eaf65d6-l...
      4k(      4k): /var/cache/fontconfig/8cab66d8f642305e525ba3e322d0979c-l...
      4k(      4k): /var/cache/fontconfig/f951a6bc01c50d58ac4af16a0108457e-l...
      4k(      4k): /var/cache/fontconfig/81a173283b451552b599cfaafd6236bd-l...
      4k(      4k): /var/cache/fontconfig/4e602040080c966cb821813a3e584564-l...
      8k(      8k): /var/cache/fontconfig/3f821257dd33660ba7bbb45c32deb84c-l...
     16k(     16k): /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-l...
     20k(     20k): /var/cache/fontconfig/a289f7e03715303a9a1b010d74c00c6a-l...
     44k(     44k): /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-l...
      8k(      8k): /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-l...
     44k(     44k): /var/cache/fontconfig/12b26b760a24f8b4feb03ad48a333a72-l...
      8k(      8k): /var/cache/fontconfig/99a1ce9f8b6a0434aadb01d3779b0780-l...
     16k(     16k): /var/cache/fontconfig/7ee6df7a8311986241317a58487e0145-l...
      4k(      4k): /var/cache/fontconfig/b4d0b56f766d89640448751fcd18ec1e-l...
     28k(     28k): /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-l...
      4k(      4k): /var/cache/fontconfig/e61abf8156cc476151baa07d67337cae-l...
    156k(    156k): /var/cache/fontconfig/7a7f22e4c6b2236c525eb458794c6fd2-l...
     16k(     16k): /var/cache/fontconfig/8aa05f52519ebacbdf5713e01a6153b0-l...
      4k(      4k): /var/cache/fontconfig/f132fa2327207a6ac3298c0518879731-l...
     12k(     12k): /var/cache/fontconfig/830f035fa84a65ce80e050178dbb630d-l...
      8k(      8k): /var/cache/fontconfig/2e1514a9fdd499050989183bb65136db-l...
      8k(      8k): /var/cache/fontconfig/b3043b29744cf0a429678d296f5e4026-l...
      4k(      4k): /var/cache/fontconfig/0f80fa86029ae75a63f21d682b864529-l...
      8k(      8k): /var/cache/fontconfig/b14e78aa9400ae7a28193faee1d62280-l...
      4k(      4k): /var/cache/fontconfig/6fcb01a03a016cc71057b587cdea6709-l...
   2288k(    216k): /usr/lib64/gvfs/libgvfscommon.so 18236
      4k(      0k): /usr/local/share/glib-2.0/schemas/gschemas.compiled 18236
   2064k(     12k): /usr/lib64/gconv/UTF-16.so 18236
     28k(     28k): /usr/lib64/gconv/gconv-modules.cache 18236
   2572k(    512k): /usr/lib64/pulseaudio/libpulsecommon-10.0.so 18236
   2248k(    188k): /usr/lib64/gio/modules/libgvfsdbus.so 18236
   2096k(     44k): /usr/lib64/gio/modules/libdconfsettings.so 18236
    132k(    132k): /usr/share/mime/mime.cache 18236
    104k(      0k): /usr/share/icons/Adwaita/icon-theme.cache 18236
   1376k(      0k): /usr/share/fonts/dejavu/DejaVuSans-Bold.ttf 18236
   1240k(      0k): /usr/share/fonts/dejavu/DejaVuSans-Oblique.ttf 18236
   2220k(      0k): /usr/share/fonts/dejavu/DejaVuSans.ttf 18236
    648k(      0k): /usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf 18236
    672k(      0k): /usr/share/fonts/dejavu/DejaVuSansMono.ttf 18236
    680k(      0k): /usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf 18236
    680k(      0k): /usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf 18236
    744k(      0k): /usr/share/fonts/dejavu/DejaVuSerif.ttf 18236
    696k(      0k): /usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf 18236
    108k(      0k): /usr/share/icons/gnome/icon-theme.cache 18236
     36k(      0k): /usr/share/icons/hicolor/icon-theme.cache 18236
    752k(      0k): /home/xtrnaw7/.disruptive 18236
     32k(     32k): /home/xtrnaw7/.disruptive 18236
     32k(     32k): /home/xtrnaw7/.disruptive 18236
      4k(      0k): /usr/local/share/icons/icon-theme.cache 18236
    340k(      0k): /usr/share/glib-2.0/schemas/gschemas.compiled 18236
      4k(      4k): /home/xtrnaw7/.local/share/mime/mime.cache 18236
     80k(      0k): /home/xtrnaw7/.config/dconf/user 18236
      4k(      0k): /usr/share/locale/en/LC_MESSAGES/gtk30-properties.mo 18236
      4k(      0k): /usr/share/locale/en/LC_MESSAGES/gtk30.mo 18236
    132k(      0k): /usr/share/icons/mate/icon-theme.cache 18236
   1028k(      0k): /home/xtrnaw7/.cache/disruptive 18236
     20k(     12k): /data/tools/bluegriffon-3.0.1/libplds4.so 18236
    660k(    636k): /data/tools/bluegriffon-3.0.1/libmozsqlite3.so 18236
    568k(    540k): /data/tools/bluegriffon-3.0.1/libnss3.so 18236
    136k(    128k): /data/tools/bluegriffon-3.0.1/bluegriffon 18236
    472k(    460k): /data/tools/bluegriffon-3.0.1/libfreeblpriv3.so 18236
    120k(    108k): /data/tools/bluegriffon-3.0.1/liblgpllibs.so 18236
    164k(    144k): /data/tools/bluegriffon-3.0.1/libsmime3.so 18236
    216k(    200k): /data/tools/bluegriffon-3.0.1/libnspr4.so 18236
    772k(      0k): /data/tools/bluegriffon-3.0.1/chrome/svg-edit.jar 18236
     12k(      0k): /data/tools/bluegriffon-3.0.1/chrome/gfd.jar 18236
     20k(      0k): /data/tools/bluegriffon-3.0.1/chrome/op1.jar 18236
      8k(      0k): /data/tools/bluegriffon-3.0.1/chrome/fs.jar 18236
    308k(      0k): /data/tools/bluegriffon-3.0.1/chrome/en-US.jar 18236
     60k(      0k): /data/tools/bluegriffon-3.0.1/chrome/its20.jar 18236
    216k(      0k): /data/tools/bluegriffon-3.0.1/chrome/cssproperties.jar 1...
     64k(      0k): /data/tools/bluegriffon-3.0.1/chrome/bluegriffon-en-US.j...
     20k(      0k): /data/tools/bluegriffon-3.0.1/chrome/scripteditor.jar 18236
      4k(      0k): /data/tools/bluegriffon-3.0.1/chrome/op1-en-US.jar 18236
      4k(      0k): /data/tools/bluegriffon-3.0.1/chrome/markdown-en-US.jar ...
   1220k(      0k): /data/tools/bluegriffon-3.0.1/chrome/toolkit.jar 18236
     16k(      0k): /data/tools/bluegriffon-3.0.1/chrome/aria.jar 18236
     32k(      0k): /data/tools/bluegriffon-3.0.1/chrome/markdown.jar 18236
     16k(      0k): /data/tools/bluegriffon-3.0.1/chrome/stylesheets.jar 18236
     16k(      0k): /data/tools/bluegriffon-3.0.1/chrome/domexplorer.jar 18236
   1240k(      0k): /data/tools/bluegriffon-3.0.1/chrome/bluegriffon.jar 18236
     12k(      4k): /data/tools/bluegriffon-3.0.1/libmozgtk.so 18236
    644k(    512k): /data/tools/bluegriffon-3.0.1/libnssckbi.so 18236
  10656k(  10656k): /data/tools/bluegriffon-3.0.1/icudt58l.dat 18236
    232k(    220k): /data/tools/bluegriffon-3.0.1/libsoftokn3.so 18236
    300k(    280k): /data/tools/bluegriffon-3.0.1/libssl3.so 18236
    176k(    144k): /data/tools/bluegriffon-3.0.1/libnssutil3.so 18236
  76496k(  71536k): /data/tools/bluegriffon-3.0.1/libxul.so 18236
     24k(     16k): /data/tools/bluegriffon-3.0.1/libplc4.so 18236
--------
2315872k ( 142984k)
[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$       0k): /usr/share/fonts/dejavu/DejaVuSans.ttf 18236
    648k(      0k): /usr/share/fonts/dejavu/DejaVuSansMono-Bold.ttf 18236
    672k(      0k): /usr/share/fonts/dejavu/DejaVuSansMono.ttf 18236
    680k(      0k): /usr/share/fonts/dejavu/DejaVuSerif-BoldItalic.ttf 18236
    680k(      0k): /usr/share/fonts/dejavu/DejaVuSerif-Italic.ttf 18236
    744k(      0k): /usr/share/fonts/dejavu/DejaVuSerif.ttf 18236
    696k(      0k): /usr/share/fonts/dejavu/DejaVuSerif-Bold.ttf 18236
    108k(      0k): /usr/share/icons/gnome/icon-theme.cache 18236
     36k(      0k): /usr/share/icons/hicolor/icon-theme.cache 18236
    752k(      0k): /home/xtrnaw7/.disruptive 18236
     32k(     32k): /home/xtrnaw7/.disruptive 18236
     32k(     32k): /home/xtrnaw7/.disruptive 18236
      4k(      0k): /usr/local/share/icons/icon-theme.cache 18236
    340k(      0k): /usr/share/glib-2.0/schemas/gschemas.compiled 18236
      4k(      4k): /home/xtrnaw7/.local/share/mime/mime.cache 18236
     80k(      0k): /home/xtrnaw7/.config/dconf/user 18236
      4k(      0k): /usr/share/locale/en/LC_MESSAGES/gtk30-properties.mo 18236
      4k(      0k): /usr/share/locale/en/LC_MESSAGES/gtk30.mo 18236
    132k(      0k): /usr/share/icons/mate/icon-theme.cache 18236
   1028k(      0k): /home/xtrnaw7/.cache/disruptive 18236
     20k(     12k): /data/tools/bluegriffon-3.0.1/libplds4.so 18236
    660k(    636k): /data/tools/bluegriffon-3.0.1/libmozsqlite3.so 18236
    568k(    540k): /data/tools/bluegriffon-3.0.1/libnss3.so 18236
    136k(    128k): /data/tools/bluegriffon-3.0.1/bluegriffon 18236
    472k(    460k): /data/tools/bluegriffon-3.0.1/libfreeblpriv3.so 18236
    120k(    108k): /data/tools/bluegriffon-3.0.1/liblgpllibs.so 18236
    164k(    144k): /data/tools/bluegriffon-3.0.1/libsmime3.so 18236
    216k(    200k): /data/tools/bluegriffon-3.0.1/libnspr4.so 18236
    772k(      0k): /data/tools/bluegriffon-3.0.1/chrome/svg-edit.jar 18236
     12k(      0k): /data/tools/bluegriffon-3.0.1/chrome/gfd.jar 18236
     20k(      0k): /data/tools/bluegriffon-3.0.1/chrome/op1.jar 18236
      8k(      0k): /data/tools/bluegriffon-3.0.1/chrome/fs.jar 18236
    308k(      0k): /data/tools/bluegriffon-3.0.1/chrome/en-US.jar 18236
     60k(      0k): /data/tools/bluegriffon-3.0.1/chrome/its20.jar 18236
    216k(      0k): /data/tools/bluegriffon-3.0.1/chrome/cssproperties.jar 1...
     64k(      0k): /data/tools/bluegriffon-3.0.1/chrome/bluegriffon-en-US.j...
     20k(      0k): /data/tools/bluegriffon-3.0.1/chrome/scripteditor.jar 18236
      4k(      0k): /data/tools/bluegriffon-3.0.1/chrome/op1-en-US.jar 18236
      4k(      0k): /data/tools/bluegriffon-3.0.1/chrome/markdown-en-US.jar ...
   1220k(      0k): /data/tools/bluegriffon-3.0.1/chrome/toolkit.jar 18236
     16k(      0k): /data/tools/bluegriffon-3.0.1/chrome/aria.jar 18236
     32k(      0k): /data/tools/bluegriffon-3.0.1/chrome/markdown.jar 18236
     16k(      0k): /data/tools/bluegriffon-3.0.1/chrome/stylesheets.jar 18236
     16k(      0k): /data/tools/bluegriffon-3.0.1/chrome/domexplorer.jar 18236
   1240k(      0k): /data/tools/bluegriffon-3.0.1/chrome/bluegriffon.jar 18236
     12k(      4k): /data/tools/bluegriffon-3.0.1/libmozgtk.so 18236
    644k(    512k): /data/tools/bluegriffon-3.0.1/libnssckbi.so 18236
  10656k(  10656k): /data/tools/bluegriffon-3.0.1/icudt58l.dat 18236
    232k(    220k): /data/tools/bluegriffon-3.0.1/libsoftokn3.so 18236
    300k(    280k): /data/tools/bluegriffon-3.0.1/libssl3.so 18236
    176k(    144k): /data/tools/bluegriffon-3.0.1/libnssutil3.so 18236
  76496k(  71536k): /data/tools/bluegriffon-3.0.1/libxul.so 18236
     24k(     16k): /data/tools/bluegriffon-3.0.1/libplc4.so 18236
--------
2315872k ( 142984k)
[xtrnaw7@t540p /var/tmp/jwm/src/memstattool-1.0.0]$





monitor_system.sh

monitor_system.sh is a simple script to start one or more monitor commands -- see the documentation for more infos

monitor_system.sh usage
[xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./monitor_system.sh  -v -h
[14.10.2018 11:54 ] ### monitor_system.sh started at Sun Oct 14 11:54:40 CEST 2018
 monitor_system.sh

 Function: monitor a Linux system
 
 Usage:    monitor_system.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-y|--yes] [-n|--no] [-l|--logfile filename]
               [-d{:dryrun_prefix}|--dryrun{:dryrun_prefix}] [-D|--debugshell] [-t fn|--tracefunc fn] [-T|--tee]
               [-V|--version] [--var name=value] [--appendlog] [--nologrotate] [--noSTDOUTlog] [-L] [--nocleanup]
               [---workdir dirname] [--tarfile [filename]] [--configfile filename] [--addcmd monitorcommand]
               [--deldefcmds] [--enableall] [--stopfile filename] [--timeout n] [--list] [--writeconfigfile]
               [--singlestep] [--delinitcmds] [--initialcmd initial_cmd]
               [interval [count]]

 Parameter:

   interval      - value for the variable ${INTERVAL}; default is 1
   count         - value for the variable ${COUNT}; there is no default

   --workdir     - working directory; use "++workdir" to reset the workdir to the default value
   --tarfile     - create a compressed tar file with the log files, default: do not create a tar file
                   The script will delete all logfiles in the working directory if a tar file should be created.
                   Use "./monitor_system.sh --var:NO_TEMPDIR_DELETE=0 --tarfile ..." to not cleanup the working directory.
                   Use "++tarfile" to disable creating a tar file
   --configfile  - config file; file with the commands to execute; use "+configfile" to add the commands to the
                   default commands to execute; use the parameter "-v -h" to view the help about the config file format
                   Use "++configfile" to disable the config file
   --deldefcmds  - disable all predefined monitor commands
   --enableall   - enable all defined monitor commands that are defined with the prefix "## "
                   (use together with the parameter --singlestep)
   --addcmd      - add another monitor command; this parameter can be used multiple times
                   Use "++addcmd" to delete all additional monitor commands already defined
   --stopfile    - the script will stop all monitors if the stopfile exists
                   The script checks every minute if the file exists
                   Use "++stopfile" to delete the stop file definition.
   --timeout     - timeout value in seconds; use the suffix m for minutes, h for hours and d for days
                   default: 0 = no timeout
                   The script will kill all monitors started and exit when the timeout is reached.
                   Without a timeout value the script will run forever and must be stopped with CTRL-C or kill
                   Use "++timeout" to reset the timeout to the default value
   --list        - list the configured monitor commands and initial commands to execute and exit
   --writeconfig - write the config file "{SCRIPTNAME}.config" with the current configured monitor
                   commands in the current directory and exit. An existing file will be overwritten.
                   Use "NEW_CONFIG_FILE=<configfile>  ./monitor_system.sh --writeconfig" to write to another file
   --singlestep  - wait for user confirmation after each monitor start
   --delinitcmds - disable all default initial commands
   --initialcmd  - execute the additional command "initial_cmd" before starting the monitoring; this parameter can be used
                   multiple times
                   Use "++initialcmd" to delete the already defined additional initial commands

   -h - print the script usage; use -h and -v one or more times to print more help text
   -v - verbose mode; use -v -v to also print the runtime system messages
        (or set the environment variables VERBOSE to 0 and VERBOSE_LEVEL to the level)
   -q - quiet mode (or set the environment variable QUIET to 0)
   -f - force execution (or set the environment variable FORCE to 0 )
   -y - answer yes to all questions
   -n - answer no to all questions
   -l - logfile to use; use -l none to not use a logfile at all
        the default logfile is /var/tmp/monitor_system.sh.log
        also supported is the format "-l:filename"
   -d - dryrun mode, default dryrun_prefix is "echo  "
        Use the parameter "-d:<dryrun_prefix>" or the syntax
        "PREFIX=<new dryrun_prefix> /var/tmp/jwm/scripts/monitor_system.sh"
        to change the dryrun prefix
        The script will run in dryrun mode if the environment variable PREFIX
        is set. To disable that behaviour use the parameter "+d"
   -D - start a debug shell and continue the script afterwards
   -t - trace the function fn
        also supported is the format "-t:fn[,...,fn#]"
   -L - list all defined functions and end the script
   -T - copy STDOUT and STDERR to the file /var/tmp/monitor_system.sh.7070.tee.log
        using tee; set the environment variable __TEE_OUTPUT_FILE before
        calling the script to change the file used for the output of tee
   -V - print the script version and exit; use "-v -V" to print the
        template version also
   --var
      - set the variable "name" to the value "value"
        also supported is the format "--var:<varname>=<value>"
   --appendlog
      - append the messages to the logfile (default: overwrite an existing logfile)
        This parameter also sets --nologrotate
   --nologrotate
      - do not create a backup of an existing logfile
   --noSTDOUTlog
      - do not write STDOUT/STDERR to a file if /dev/tty is not a a device
   --nocleanup
       - do no house keeping at script end
 

Current environment: ksh version: 93 | change function code supported: yes | tracing feature using $0 supported: yes

 The configfile can be used to define the monitor commands to use; the format of the
 entries in this file is
 
 one command per line; all variables defined in /var/tmp/jwm/scripts/monitor_system.sh can be used, e.g.
 
 \${WORKDIR} = Working Directory
 \${INTERVAL} = interval (script parameter INTERVAL)
 \${COUNT} = count (script parameter COUNT)
 
 lines beginning with \"#\" are ignored -- except lines beginning with \"## \" if the parameter \"--enableall\"
 is used.
 If a command contains a STDOUT redirection (> or >>) /var/tmp/jwm/scripts/monitor_system.sh will not add a redirection for STDOUT.
 For all commands without a redirection of STDOUT /var/tmp/jwm/scripts/monitor_system.sh will redirect STDOUT and STDERR to a
 file in the working directory.
 /var/tmp/jwm/scripts/monitor_system.sh will start all commands in the background; for commands that switch to the background
 by itself (e.g. nmon in batchmode) use the prefix \"!\" (an exclamation mark)

 If a command writes a PID file with the PID of the background process use the variable \${MONITOR_PID_FILE}
 for that file, for example nmon prints the PID of the background process to STDOUT if called with the
 parameter -p so the monitor command for nmon should look like:

   !/opt/LinuxTools/jwm/bin/nmon -f -s 1 -c 999999 -p >\${MONITOR_PID_FILE}

 Parameter that toggle a switch from true to false or vice versa can
 be used with the plus sign (+) instead of minus (-) to invert the usage, e.g.
 
 The parameter \"-v\" enables the verbose mode; the parameter \"+v\" disables the verbose mode.

 All parameter are processed in the given order, e.g.

  /var/tmp/jwm/scripts/monitor_system.sh -v +v
    -> verbose mode is now off

  /var/tmp/jwm/scripts/monitor_system.sh +v -v
    -> verbose mode is now on

 Parameter are evaluated after the evaluation of environment variables, e.g

 VERBOSE=0  /var/tmp/jwm/scripts/monitor_system.sh
     -> verbose mode is now on

 VERBOSE=0  /var/tmp/jwm/scripts/monitor_system.sh +v
     -> verbose mode is now off

 
 To disable one or more of the house keeping tasks you might set some variables
 either before starting the script or via the parameter --var name=value
 
 The defined variables are
 
  NO_EXIT_ROUTINES=0       # do not execute the exit routines if set to 0
  NO_TEMPFILES_DELETE=0    # do not delete temporary files if set to 0
  NO_TEMPDIR_DELETE=0      # do not delete temporary directories if set to 0
  NO_FINISH_ROUTINES=0     # do not execute the finish routines if set to 0
  NO_UMOUNT_MOUNTPOINTS=0  # do not umount temporary mount points if set to 0
  NO_KILL_PROCS=0          # do not kill the processes if set to 0
 
Supported environment variables are:

  PREFIX - current value is ""
  __DEBUG_CODE - current value is ""
  __TEE_OUTPUT_FILE - current value is "/var/tmp/monitor_system.sh.7070.tee.log"
  USE_ONLY_KSH88_FEATURES - current value is "1"
  BREAK_ALLOWED - current value is "DebugShell"
  EDITOR - current value is "/usr/bin/vi"
  PAGER - current value is "/usr/bin/less"
  LOGFILE - current value is "/var/tmp/monitor_system.sh.7070.log"
  NOHUP_STDOUT_STDERR_FILE - current value is ""
  FORCE - current value is "1"
  QUIET - current value is "1"
  VERBOSE - current value is "0"
  VERBOSE_LEVEL - current value is "1"
  RCM_SERVICE - current value is ""
  RCM_FUNCTION - current value is ""
  RCM_USERID - current value is ""
  RCM_PASSWORD - current value is ""
  JWM_DIR - current value is "/var/tmp/jwm"
  NEW_CONFIG_FILE - current value is ""


[14.10.2018 11:54 ] ### monitor_system.sh ended at Sun Oct 14 11:54:40 CEST 2018
[xtrnaw7@t540p /var/tmp/jwm/scripts]$




mpathstat.py


mpathstat.py is a simple python script to sort the iostat output to better monitor multipathed devices.


Example
[root@testux001 ~]# /home/support/mpathstat.py
Device Name                                  Reads     Writes    KBytesR/S  KBytesW/S  Await  
3500608730450000000000002da (dm-83)    34.00     3.00      152.00     24.00      0.38   
|- sdqj                                      16.00     2.00      68.00      16.00      0.11   
|- sdqk                                      18.00     1.00      84.00      8.00       0.58   
|- sdfm                                      0.00      0.00      0.00       0.00       0.00   
|- sdfl                                      0.00      0.00      0.00       0.00       0.00   
3500608730450000000000002db (dm-86)    30.00     3.00      120.00     56.00      0.12   
|- sdql                                      0.00      0.00      0.00       0.00       0.00   
|- sdqm                                      0.00      0.00      0.00       0.00       0.00   
|- sdfo                                      15.00     2.00      60.00      25.50      0.06   
|- sdfn                                      16.00     1.00      64.00      30.50      0.18   
3500608730450000000000002d8 (dm-85)    30.00     1.00      120.00     16.00      0.16   
|- sdqf                                      15.00     1.00      60.00      16.00      0.19   
|- sdqg                                      15.00     0.00      60.00      0.00       0.13   
|- sdfi                                      0.00      0.00      0.00       0.00       0.00   
|- sdfh                                      0.00      0.00      0.00       0.00       0.00   
3500608730450000000000002d9 (dm-84)    0.00      3.00      0.00       56.00      0.67   
|- sdqh                                      0.00      0.00      0.00       0.00       0.00   
|- sdqi                                      0.00      0.00      0.00       0.00       0.00   
|- sdfk                                      0.00      1.00      0.00       30.50      1.00   
|- sdfj                                      0.00      2.00      0.00       25.50      0.50   
3500608730450000000000000381 (dm-259)   0.00      1.00      0.00       16.00      0.00   
|- sdaps                                     0.00      0.00      0.00       0.00       0.00   
|- sdamb                                     0.00      0.00      0.00       0.00       0.00   
|- sdadu                                     0.00      0.00      0.00       0.00       0.00   
|- sdadt                                     0.00      1.00      0.00       16.00      0.00   
...




mtr


mtr is a tool to monitor network traffic and routing.

mtr usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo mtr --help
usage: mtr [-BfhvrwctglxspQomniuT46] [--help] [--version] [--report]
        [--report-wide] [--report-cycles=COUNT] [--curses] [--gtk]
        [--csv|-C] [--raw] [--xml] [--split] [--mpls] [--no-dns] [--show-ips]
        [--address interface] [--filename=FILE|-F]
        [--ipinfo=item_no|-y item_no]
        [--aslookup|-z]
        [--psize=bytes/-s bytes] [--order fields]
        [--report-wide|-w] [--inet] [--inet6] [--max-ttl=NUM] [--first-ttl=NUM]
        [--bitpattern=NUM] [--tos=NUM] [--udp] [--tcp] [--port=PORT] [--timeout=SECONDS]
        [--interval=SECONDS] HOSTNAME
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





nano

nano is a visual editor for those that do not like vi


nano usage
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./nano  --help
Usage: nano [OPTIONS] [[+LINE[,COLUMN]] FILE]...

To place the cursor on a specific line of a file, put the line number with
a '+' before the filename.  The column number can be added after a comma.
When a filename is '-', nano reads data from standard input.

Option        GNU long option        Meaning
 -A        --smarthome        Enable smart home key
 -B        --backup        Save backups of existing files
 -C <dir>    --backupdir=<dir>    Directory for saving unique backup files
 -D        --boldtext        Use bold instead of reverse video text
 -E        --tabstospaces        Convert typed tabs to spaces
 -F        --multibuffer        Read a file into a new buffer by default
 -G        --locking        Use (vim-style) lock files
 -H        --historylog        Log & read search/replace string history
 -I        --ignorercfiles        Don't look at nanorc files
 -K        --rebindkeypad        Fix numeric keypad key confusion problem
 -L        --nonewlines        Don't add newlines to the ends of files
 -M        --trimblanks        Trim tail spaces when hard-wrapping
 -N        --noconvert        Don't convert files from DOS/Mac format
 -O        --morespace        Use one more line for editing
 -P        --positionlog        Log & read location of cursor position
 -Q <regex>    --quotestr=<regex>    Regular expression to match quoting
 -R        --restricted        Restricted mode
 -S        --smooth        Scroll by line instead of half-screen
 -T <#cols>    --tabsize=<#cols>    Set width of a tab to #cols columns
 -U        --quickblank        Do quick statusbar blanking
 -V        --version        Print version information and exit
 -W        --wordbounds        Detect word boundaries more accurately
 -X <str>    --wordchars=<str>    Which other characters are word parts
 -Y <name>    --syntax=<name>        Syntax definition to use for coloring
 -a        --atblanks        When soft-wrapping, do it at whitespace
 -c        --constantshow        Constantly show cursor position
 -d        --rebinddelete        Fix Backspace/Delete confusion problem
 -g        --showcursor        Show cursor in file browser
 -h        --help            Show this help text and exit
 -i        --autoindent        Automatically indent new lines
 -k        --cutfromcursor        Cut from cursor to end of line
 -l        --linenumbers        Show line numbers in front of the text
 -m        --mouse            Enable the use of the mouse
 -n        --noread        Do not read the file (only write it)
 -o <dir>    --operatingdir=<dir>    Set operating directory
 -p        --preserve        Preserve XON (^Q) and XOFF (^S) keys
 -r <#cols>    --fill=<#cols>        Set hard-wrapping point at column #cols
 -s <prog>    --speller=<prog>    Enable alternate speller
 -t        --tempfile        Auto save on exit, don't prompt
 -u        --unix            Save a file by default in Unix format
 -v        --view            View mode (read-only)
 -w        --nowrap        Don't hard-wrap long lines
 -x        --nohelp        Don't show the two help lines
 -y        --afterends        Make Ctrl+Right stop at word ends
 -z        --suspend        Enable suspension
 -$        --softwrap        Enable soft line wrapping
[xtrnaw7@t540p /var/tmp/jwm/bin]$




nano example












netcat



netcat usage
[xtrnaw7@t540p /var/tmp/jwm/src/netcat-0.7.1]$ /var/tmp/jwm/bin/netcat -h
GNU netcat 0.7.1, a rewrite of the famous networking tool.
Basic usages:
connect to somewhere:  /var/tmp/jwm/bin/netcat [options] hostname port [port] ...
listen for inbound:    /var/tmp/jwm/bin/netcat -l -p port [options] [hostname] [port] ...
tunnel to somewhere:   /var/tmp/jwm/bin/netcat -L hostname:port -p port [options]

Mandatory arguments to long options are mandatory for short options too.
Options:
  -c, --close                close connection on EOF from stdin
  -e, --exec=PROGRAM         program to exec after connect
  -g, --gateway=LIST         source-routing hop point[s], up to 8
  -G, --pointer=NUM          source-routing pointer: 4, 8, 12, ...
  -h, --help                 display this help and exit
  -i, --interval=SECS        delay interval for lines sent, ports scanned
  -l, --listen               listen mode, for inbound connects
  -L, --tunnel=ADDRESS:PORT  forward local port to remote address
  -n, --dont-resolve         numeric-only IP addresses, no DNS
  -o, --output=FILE          output hexdump traffic to FILE (implies -x)
  -p, --local-port=NUM       local port number
  -r, --randomize            randomize local and remote ports
  -s, --source=ADDRESS       local source address (ip or hostname)
  -t, --tcp                  TCP mode (default)
  -T, --telnet               answer using TELNET negotiation
  -u, --udp                  UDP mode
  -v, --verbose              verbose (use twice to be more verbose)
  -V, --version              output version information and exit
  -x, --hexdump              hexdump incoming and outgoing traffic
  -w, --wait=SECS            timeout for connects and final net reads
  -z, --zero                 zero-I/O mode (used for scanning)

Remote port number can also be specified as range.  Example: '1-1024'

[xtrnaw7@t540p /var/tmp/jwm/src/netcat-0.7.1]$




netcat examples
test




netdata


"netdata is a extremely optimized Linux utility that provides real-time (per second) performance monitoring for Linux systems, applications, SNMP devices, etc. and shows full interactive charts that absolutely render all collected values over the web browser to analyze them."

netdata usage

[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$  /var/tmp/jwm/netdata/usr/sbin/netdata -h
Cannot understand option '-h'.

USAGE: /var/tmp/jwm/netdata/usr/sbin/netdata [-d] [-l LINES_TO_SAVE] [-u UPDATE_TIMER] [-p LISTEN_PORT] [-df debug flags].

  -c CONFIG FILE the configuration file to load. Default: /var/tmp/jwm/netdata/etc/netdata/netdata.conf.
  -l LINES_TO_SAVE can be from 5 to 864000 lines in JSON data. Default: 3600.
  -t UPDATE_TIMER can be from 1 to 3600 seconds. Default: 1.
  -p LISTEN_PORT can be from 1 to 65535. Default: 19999.
  -u USERNAME can be any system username to run as. Default: none.
  -ch path to access host /proc and /sys when running in a container. Default: empty.
  -nd or -nodeamon to disable forking in the background. Default: unset.
  -df FLAGS debug options. Default: 0x00000000.
  -stacksize BYTES to overwrite the pthread stack size.
  -pidfile FILENAME to save a pid while running.
[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$  /var/tmp/jwm/netdata/usr/sbin/netdata -nd
16-05-14 14:48:52: INFO: netdata: Listening on all IPs (IPv6 and IPv4)



You may use the script netdata.sh to start or stop  the netdata daemon.

Please be aware that netdata does not work with all browsers (e.g. in Seamonkey only some of the charts are shown).






netdata.sh

netdata.sh is a simple start/stop script for the netdata daemon


The current version of the script is always available here.

netdata.sh usage

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./netdata.sh --help
[25.10.2016 18:58 ] ### netdata.sh started at Tue Oct 25 18:58:04 CEST 2016
 netdata.sh

 Function: start or stop the netdata daemon
 
 Usage:    netdata.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-p|--port netdataport] [-c|--cleanup]
                      [start [netdata_options]|stop|restart [netdata_options]|status|cleanup|deamon_help]

 Parameter
   -v - verbose mode
   -q - quiet mode
   -f - force execution
   -p - port for netdata (default: 19999]
   -c - cleanup the netdata data directories; this parameter is only valid with start or stop

   cleanup - cleanup the netdata data directories;  this parameter is only valid if netdata is not running
   netdata_options - add. options for starting the netdata daemon
   deamon_help - list the usage help for the netdata daemon

 The script searches the netdata binary in these directories:
   - the current working directory
   - the directory with this script
   - the directory ${JWM_DIR}/netdata/usr/sbin
   - the directory ${PWD}/../

 Author:
   Bernd Schemmer (Bernd.Schemmer@gmx.de)

[25.10.2016 18:58 ] ### netdata.sh ended at Tue Oct 25 18:58:04 CEST 2016


netdata.sh examples
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$   ./scripts/netdata.sh status
[23.10.2016 17:54 ] ### netdata.sh started at Sun Oct 23 17:54:35 CEST 2016
[23.10.2016 17:54 ] Using the netdata directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[23.10.2016 17:54 ] The netdata base directory is /var/tmp/jwm/netdata
[23.10.2016 17:54 ] The netdata daemon is NOT running (well, it may be running but it was not started by this script)
[23.10.2016 17:54 ] ### netdata.sh ended at Sun Oct 23 17:54:35 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$   ./scripts/netdata.sh start
[23.10.2016 17:54 ] ### netdata.sh started at Sun Oct 23 17:54:39 CEST 2016
[23.10.2016 17:54 ] Using the netdata directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[23.10.2016 17:54 ] The netdata base directory is /var/tmp/jwm/netdata
[23.10.2016 17:54 ] Starting the netdata daemon ...
[23.10.2016 17:54 ] The port to use for the netdata daemon is 19999
[23.10.2016 17:54 ] Using the existing config file ./etc/netdata/netdata.conf
+ ./usr/sbin/netdata -P /tmp/netdata.pid -p 19999
+ 2>& 1
16-10-23 17:54:39: INFO: netdata: System has 8 processors.
16-10-23 17:54:39: INFO: netdata: System supports 32768 pids.
[23.10.2016 17:54 ] netdata daemon started; the PID is 20190
[23.10.2016 17:54 ] Use http://localhost:19999 or http://t540p:19999 to access netdata in your Webbrowser
[23.10.2016 17:54 ] Use http://localhost:19999/netdata.conf to view the configuration of the running netdata
[23.10.2016 17:54 ] ### netdata.sh ended at Sun Oct 23 17:54:39 CEST 2016


[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$   ./scripts/netdata.sh status
[23.10.2016 17:54 ] ### netdata.sh started at Sun Oct 23 17:54:44 CEST 2016
[23.10.2016 17:54 ] Using the netdata directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[23.10.2016 17:54 ] The netdata base directory is /var/tmp/jwm/netdata
[23.10.2016 17:54 ] The netdata daemon is running; the PID is 20190

UID        PID  PPID  C STIME TTY          TIME CMD
xtrnaw7  20190     1  2 17:54 ?        00:00:00 ./usr/sbin/netdata -P /tmp/netdata.pid -p 19999

[23.10.2016 17:54 ] The netdata daemon is listening on these ports:

(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp        0      0 0.0.0.0:19999           0.0.0.0:*               LISTEN      20190/./usr/sbin/ne
tcp6       0      0 :::19999                :::*                    LISTEN      20190/./usr/sbin/ne

[23.10.2016 17:54 ] ### netdata.sh ended at Sun Oct 23 17:54:44 CEST 2016

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$   ./scripts/netdata.sh stop
[23.10.2016 17:54 ] ### netdata.sh started at Sun Oct 23 17:54:50 CEST 2016
[23.10.2016 17:54 ] Using the netdata directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[23.10.2016 17:54 ] The netdata base directory is /var/tmp/jwm/netdata
[23.10.2016 17:54 ] The netdata daemon is running; the PID is 20190
[23.10.2016 17:54 ] Stopping the netdata daemon ...
[23.10.2016 17:54 ] ### netdata.sh ended at Sun Oct 23 17:54:52 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


The known paramter for the netdata daemon are:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$ ./netdata.sh daemon_help
[25.10.2016 19:00 ] ### netdata.sh started at Tue Oct 25 19:00:43 CEST 2016
[25.10.2016 19:00 ] Using the netdata directory based on the the environment variable JWM_DIR ("/var/tmp/jwm")
[25.10.2016 19:00 ] The netdata base directory is /var/tmp/jwm/netdata
[25.10.2016 19:00 ] Additional parameter supported by the netdata daemon are:
SYNOPSIS: netdata [options]

Options:
  -c config_file                         Load alternate configuration file Default: /var/tmp/jwm/netdata/etc/netdata/netdata.conf
  -D                                     Disable fork into background
  -h                                     Display help message
  -P FILE                                File to save a pid while running
  -i address                             The IP address to listen to. Default: All addresses
  -k                                     Check daemon configuration.
  -p port_number                         Port to listen. Can be from 1 to 65535. Default: 19999
  -s PATH                                Path to access host /proc and /sys when running in a container.
  -t seconds                             The frequency in seconds, for data collection. Same as 'update every' config file option. Default: 1
  -u username                            System username to run as. Default: netdata
  -v                                     Version of the program
  -W stacksize=N|unittest|debug_flags=N  vendor options.
[25.10.2016 19:00 ] ### netdata.sh ended at Tue Oct 25 19:00:43 CEST 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/scripts]$




nethogs


nethogs is a top like tool to monitor the network bandwidth.

nethogs usage
[JWM session] [xtrnaw7@t540p /var/tmp]$ nethogs -h
usage: nethogs [-V] [-b] [-d seconds] [-t] [-p] [device [device [device ...]]]
        -V : prints version.
        -d : delay for update refresh rate in seconds. default is 1.
        -t : tracemode.
        -b : bughunt mode - implies tracemode.
        -p : sniff in promiscious mode (not recommended).
        device : device(s) to monitor. default is eth0

When nethogs is running, press:
 q: quit
 m: switch between total and kb/s mode
[JWM session] [xtrnaw7@t540p /var/tmp]$





ngrep

ngrep can be used to view the network packets.

ngrep usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ ngrep -h
usage: ngrep <-hNXViwqpevxlDtTRM> <-IO pcap_dump> <-n num> <-d dev> <-A num>
<-s snaplen> <-S limitlen> <-W normal|byline|single|none> <-c cols>
<-P char> <-F file>

-h is help/usage
-V is version information
-q is be quiet (don't print packet reception hash marks)
-e is show empty packets
-i is ignore case
-v is invert match
-R is don't do privilege revocation logic
-x is print in alternate hexdump format
-X is interpret match expression as hexadecimal
-w is word-regex (expression must match as a word)
-p is don't go into promiscuous mode
-l is make stdout line buffered
-D is replay pcap_dumps with their recorded time intervals
-t is print timestamp every time a packet is matched
-T is print delta timestamp every time a packet is matched
-M is don't do multi-line match (do single-line match instead)
-I is read packet stream from pcap format file pcap_dump
-O is dump matched packets in pcap format to pcap_dump
-n is look at only num packets
-A is dump num packets after a match
-s is set the bpf caplen
-S is set the limitlen on matched packets
-W is set the dump format (normal, byline, single, none)
-c is force the column width to the specified size
-P is set the non-printable display char to what is specified
-F is read the bpf filter from the specified file
-N is show sub protocol number
-d is use specified device instead of the pcap default
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


ngrep is very useful to check if a network port is in the correct VLAN,

ngrep example

xtrnaw7@t61p Tue Oct 29 22:09:51 /tmp/jwm $ ifconfig eth0
eth0      Link encap:Ethernet  HWaddr 00:1e:37:8a:61:02 
          inet addr:192.168.1.161  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::21e:37ff:fe8a:6102/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:9296429 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3487949 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:13478360333 (13.4 GB)  TX bytes:4271686563 (4.2 GB)
          Interrupt:20 Memory:fe200000-fe220000

xtrnaw7@t61p Tue Oct 29 22:09:55 /tmp/jwm $ sudo sbin/ngrep -d eth0
[sudo] password for xtrnaw7:
interface: eth0 (192.168.1.0/255.255.255.0)
#
T 192.168.1.161:53094 -> 173.194.44.7:443 [AP]
  .... y..@..r.&i..2.z.;SNK(..t_".qsg..                                                                      
#
T 173.194.44.7:443 -> 192.168.1.161:53094 [AP]
  .... X.+7!o.>.[.T...B..)."........4..                                                                      
##
U 192.168.1.161:33401 -> 192.168.1.1:53
  .m...........2.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa.....                 
#
U 192.168.1.1:53 -> 192.168.1.161:33401
  .m...........2.0.0.0.1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2.0.f.f.ip6.arpa......L.......P.:.b.ip6
  -servers.P.hostmaster.icann.org.w.............:.....                                                       
^Cexit
5 received, 0 dropped




ngrep can be used to check the VLAN configuration in Linux - unfortunately there is no snoop in Linux ....



nicstat


nicstat is a tool to monitor the network bandwidth.

nicstat usage
[JWM session] [xtrnaw7@t540p /var/tmp]$ nicstat -h
USAGE: nicstat [-hvnsxpztualMU] [-i int[,int...]]
   [-S int:mbps[,int:mbps...]] [interval [count]]

         -h                 # help
         -v                 # show version (1.95)
         -i interface       # track interface only
         -n                 # show non-local interfaces only (exclude lo0)
         -s                 # summary output
         -x                 # extended output
         -p                 # parseable output
         -z                 # skip zero value lines
         -t                 # show TCP statistics
         -u                 # show UDP statistics
         -a                 # equivalent to "-x -u -t"
         -l                 # list interface(s)
         -M                 # output in Mbits/sec
         -U                 # separate %rUtil and %wUtil
         -S int:mbps[fd|hd] # tell nicstat the interface
                            # speed (Mbits/sec) and duplex
    eg,
       nicstat              # print summary since boot only
       nicstat 1            # print every 1 second
       nicstat 1 5          # print 5 times only
       nicstat -z 1         # print every 1 second, skip zero lines
       nicstat -i hme0 1    # print hme0 only every 1 second
[JWM session] [xtrnaw7@t540p /var/tmp]$





nload


nload is a console application which monitors network traffic and bandwidth usage in real time. It visualizes the in- and outgoing traffic using two graphs and provides additional info like total amount of transfered data and min/max network usage.

nload usage

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ nload --help

nload version 0.7.4
Copyright (C) 2001 - 2012 by Roland Riegel <feedback@roland-riegel.de>
nload comes with ABSOLUTELY NO WARRANTY. This is free software, and you are
welcome to redistribute it under certain conditions. For more details see the
GNU General Public License Version 2 (http://www.gnu.org/copyleft/gpl.html).

Command line syntax:
nload [options] [devices]
nload --help|-h

Options:
-a period       Sets the length in seconds of the time window for average
                calculation.
                Default is 300.
-i max_scaling  Specifies the 100% mark in kBit/s of the graph indicating the
                incoming bandwidth usage. Ignored if max_scaling is 0 or the
                switch -m is given.
                Default is 10240.
-m              Show multiple devices at a time; no traffic graphs.
-o max_scaling  Same as -i but for the graph indicating the outgoing bandwidth
                usage.
                Default is 10240.
-t interval     Determines the refresh interval of the display in milliseconds.
                Default is 500.
-u h|b|k|m|g    Sets the type of unit used for the display of traffic numbers.
   H|B|K|M|G    h: auto, b: Bit/s, k: kBit/s, m: MBit/s etc.
                H: auto, B: Byte/s, K: kByte/s, M: MByte/s etc.
                Default is h.
-U h|b|k|m|g    Same as -u, but for a total amount of data (without "/s").
   H|B|K|M|G    Default is H.
devices         Network devices to use.
                Default is to use all auto-detected devices.
--help
-h              Print this help.

example: nload -t 200 -i 1024 -o 128 -U M

The options above can also be changed at run time by pressing the 'F2' key.

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





nmap


nmap, ncat, ndiff, and nping are tools for network testing and monitoring

nmap usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bin/nmap -h
Nmap 6.40 ( http://nmap.org )
Usage: nmap [Scan Type(s)] [Options] {target specification}
TARGET SPECIFICATION:
  Can pass hostnames, IP addresses, networks, etc.
  Ex: scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.0-255.1-254
  -iL <inputfilename>: Input from list of hosts/networks
  -iR <num hosts>: Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile <exclude_file>: Exclude list from file
HOST DISCOVERY:
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver
  --traceroute: Trace hop path to each host
SCAN TECHNIQUES:
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags <flags>: Customize TCP scan flags
  -sI <zombie host[:probeport]>: Idle scan
  -sY/sZ: SCTP INIT/COOKIE-ECHO scans
  -sO: IP protocol scan
  -b <FTP relay host>: FTP bounce scan
PORT SPECIFICATION AND SCAN ORDER:
  -p <port ranges>: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  -F: Fast mode - Scan fewer ports than the default scan
  -r: Scan ports consecutively - don't randomize
  --top-ports <number>: Scan <number> most common ports
  --port-ratio <ratio>: Scan ports more common than <ratio>
SERVICE/VERSION DETECTION:
  -sV: Probe open ports to determine service/version info
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)
OS DETECTION:
  -O: Enable OS detection
  --osscan-limit: Limit OS detection to promising targets
  --osscan-guess: Guess OS more aggressively
TIMING AND PERFORMANCE:
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
  -T<0-5>: Set timing template (higher is faster)
  --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
  --min-parallelism/max-parallelism <numprobes>: Probe parallelization
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
      probe round trip time.
  --max-retries <tries>: Caps number of port scan probe retransmissions.
  --host-timeout <time>: Give up on target after this long
  --scan-delay/--max-scan-delay <time>: Adjust delay between probes
  --min-rate <number>: Send packets no slower than <number> per second
  --max-rate <number>: Send packets no faster than <number> per second
FIREWALL/IDS EVASION AND SPOOFING:
  -f; --mtu <val>: fragment packets (optionally w/given MTU)
  -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
  -S <IP_Address>: Spoof source address
  -e <iface>: Use specified interface
  -g/--source-port <portnum>: Use given port number
  --data-length <num>: Append random data to sent packets
  --ip-options <options>: Send packets with specified ip options
  --ttl <val>: Set IP time-to-live field
  --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
  --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
OUTPUT:
  -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA <basename>: Output in the three major formats at once
  -v: Increase verbosity level (use -vv or more for greater effect)
  -d: Increase debugging level (use -dd or more for greater effect)
  --reason: Display the reason a port is in a particular state
  --open: Only show open (or possibly open) ports
  --packet-trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --log-errors: Log errors/warnings to the normal-format output file
  --append-output: Append to rather than clobber specified output files
  --resume <filename>: Resume an aborted scan
  --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
  --webxml: Reference stylesheet from Nmap.Org for more portable XML
  --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
MISC:
  -6: Enable IPv6 scanning
  -A: Enable OS detection, version detection, script scanning, and traceroute
  --datadir <dirname>: Specify custom Nmap data file location
  --send-eth/--send-ip: Send using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  --unprivileged: Assume the user lacks raw socket privileges
  -V: Print version number
  -h: Print this help summary page.
EXAMPLES:
  nmap -v -A scanme.nmap.org
  nmap -v -sn 192.168.0.0/16 10.0.0.0/8
  nmap -v -iR 10000 -Pn -p 80
SEE THE MAN PAGE (http://nmap.org/book/man.html) FOR MORE OPTIONS AND EXAMPLES
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$

 


e.g. to check for open ports use:


nmap example

[JWM session] [root@t540p jwm]# nmap 192.168.1.152

Starting Nmap 6.40 ( http://nmap.org ) at 2015-11-15 11:27 CET
Nmap scan report for localhost (192.168.1.152)
Host is up (0.0013s latency).
Not shown: 997 closed ports
PORT    STATE SERVICE
22/tcp  open  ssh
139/tcp open  netbios-ssn
445/tcp open  microsoft-ds
MAC Address: 08:00:27:BF:43:D4 (Cadmus Computer Systems)

Nmap done: 1 IP address (1 host up) scanned in 0.14 seconds
[JWM session] [root@t540p jwm]#





netio


netio can be used to measure the network bandwidth between two machines.

netio usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bin/netio

NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

Usage: netio [options] [<server>]

  -s            run server side of benchmark (otherwise run client)
  -b <size>[k]  use this block size (otherwise run with 1,2,4,8,16 and 32k)

  -t            use TCP protocol for benchmark
  -u            use UDP protocol for benchmark
  -h <addr>     bind TCP and UDP servers to this local host address/name only
                (default is to bind to all local addresses)
  -p <port>     bind TCP and UDP servers to this port (default is 18767)

  <server>      If the client side of the benchmark is running,
                a server name or address is required.

The server side can run either TCP (-t) or UDP (-u) protocol or both
(default, if neither -t or -u is specified). The client runs one of
these protocols only (must specify -t or -u).

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$

 


netio example

To use it start netio in server mode on one of the server, e.g.


xtrnaw7@t61p Tue Oct 29 20:16:24 /tmp/jwm $ bin/netio -s

NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

UDP server listening.
TCP server listening.


Now connect to the 2nd server and start netio in client mode, e.g.

bernd@oc8260701612 ~]$ /tmp/jwm/bin/netio -t 192.168.1.161

NETIO - Network Throughput Benchmark, Version 1.26
(C) 1997-2005 Kai Uwe Rommel

TCP connection established.
Packet size  1k bytes:  108319 KByte/s Tx,  111268 KByte/s Rx.
Packet size  2k bytes:  111580 KByte/s Tx,  110064 KByte/s Rx.
Packet size  4k bytes:  110540 KByte/s Tx,  108005 KByte/s Rx.
Packet size  8k bytes:  110580 KByte/s Tx,  111529 KByte/s Rx.
Packet size 16k bytes:  111466 KByte/s Tx,  108286 KByte/s Rx.
Packet size 32k bytes:  112407 KByte/s Tx,  105209 KByte/s Rx.
Done.




netio runs on mostly all OS, some binaries for other operating systems are also in the JWM/ Linux archive:

[JWM session] xtrnaw7@t61p Tue Oct 29 22:06:21 /var/tmp/jwm $ ls src/netio//bin
linux-i386  os2-i386.exe  sol9-sparc  win32-i386.exe




netperf


netperf is a network performance tool. To use it start netserver on one host and netperf on the other.


netserver usage
[xtrnaw7@t540p bin]$ ./netserver -h

Usage: netserver [options]

Options:
    -h                Display this text
    -D                Do not daemonize
    -d                Increase debugging output
    -f                Do not spawn chilren for each test, run serially
    -L name,family    Use name to pick listen address and family for family
    -N                No debugging output, even if netperf asks
    -p portnum        Listen for connect requests on portnum.
    -4                Do IPv4
    -6                Do IPv6
    -v verbosity      Specify the verbosity level
    -V                Display version information and exit
    -Z passphrase     Expect passphrase as the first thing received




netperf usage
[xtrnaw7@t540p bin]$ ./netperf  -h

Usage: netperf [global options] -- [test options]

Global options:
    -a send,recv      Set the local send,recv buffer alignment
    -A send,recv      Set the remote send,recv buffer alignment
    -B brandstr       Specify a string to be emitted with brief output
    -c [cpu_rate]     Report local CPU usage
    -C [cpu_rate]     Report remote CPU usage
    -d                Increase debugging output
    -D time,[units] * Display interim results at least every time interval
                      using units as the initial guess for units per second
                      A negative value for time will make heavy use of the
                      system's timestamping functionality
    -f G|M|K|g|m|k    Set the output units
    -F lfill[,rfill]* Pre-fill buffers with data from specified file
    -h                Display this text
    -H name|ip,fam *  Specify the target machine and/or local ip and family
    -i max,min        Specify the max and min number of iterations (15,1)
    -I lvl[,intvl]    Specify confidence level (95 or 99) (99)
                      and confidence interval in percentage (10)
    -j                Keep additional timing statistics
    -l testlen        Specify test duration (>0 secs) (<0 bytes|trans)
    -L name|ip,fam *  Specify the local ip|name and address family
    -o send,recv      Set the local send,recv buffer offsets
    -O send,recv      Set the remote send,recv buffer offset
    -n numcpu         Set the number of processors for CPU util
    -N                Establish no control connection, do 'send' side only
    -p port,lport*    Specify netserver port number and/or local port
    -P 0|1            Don't/Do display test headers
    -r                Allow confidence to be hit on result only
    -s seconds        Wait seconds between test setup and test start
    -S                Set SO_KEEPALIVE on the data connection
    -t testname       Specify test to perform
    -T lcpu,rcpu      Request netperf/netserver be bound to local/remote cpu
    -v verbosity      Specify the verbosity level
    -W send,recv      Set the number of send,recv buffers
    -v level          Set the verbosity level (default 1, min 0)
    -V                Display the netperf version and exit
    -y local,remote   Set the socket priority
    -Y local,remote   Set the IP_TOS. Use hexadecimal.
    -Z passphrase     Set and pass to netserver a passphrase

For those options taking two parms, at least one must be specified;
specifying one value without a comma will set both parms to that
value, specifying a value with a leading comma will set just the second
parm, a value with a trailing comma will set just the first. To set
each parm to unique values, specify both and separate them with a
comma.

* For these options taking two parms, specifying one value with no comma
will only set the first parms and will leave the second at the default
value. To set the second value it must be preceded with a comma or be
a comma-separated pair. This is to retain previous netperf behaviour.






netsniff-ng


"netsniff-ng is a free Linux networking toolkit, a Swiss army knife for your daily Linux network plumbing if you will.

Its gain of performance is reached by zero-copy mechanisms, so that on packet reception and transmission the kernel does not need to copy packets from kernel space to user space and vice versa.

Our toolkit can be used for network development and analysis, debugging, auditing or network reconnaissance.

The netsniff-ng toolkit consists of the following utilities:



netsniff-ng usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ netsniff-ng -h
netsniff-ng 0.6.3, the packet sniffing beast
http://www.netsniff-ng.org

Usage: netsniff-ng [options] [filter-expression]
Options:
  -i|-d|--dev|--in <dev|pcap|->  Input source as netdev, pcap or pcap stdin
  -o|--out <dev|pcap|dir|cfg|->  Output sink as netdev, pcap, directory, trafgen, or stdout
  -C|--fanout-group <id>         Join packet fanout group
  -K|--fanout-type <type>        Apply fanout discipline: hash|lb|cpu|rnd|roll|qm
  -L|--fanout-opts <opts>        Additional fanout options: defrag|roll
  -f|--filter <bpf-file|-|expr>  Use BPF filter from bpfc file/stdin or tcpdump-like expression
  -t|--type <type>               Filter for: host|broadcast|multicast|others|outgoing
  -F|--interval <size|time>      Dump interval if -o is a dir: <num>KiB/MiB/GiB/s/sec/min/hrs
  -R|--rfraw                     Capture or inject raw 802.11 frames
  -n|--num <0|uint>              Number of packets until exit (def: 0)
  -P|--prefix <name>             Prefix for pcaps stored in directory
  -T|--magic <pcap-magic>        Pcap magic number/pcap format to store, see -D
  -w|--cooked                    Use Linux "cooked" header instead of link header
  -D|--dump-pcap-types           Dump pcap types and magic numbers and quit
  -B|--dump-bpf                  Dump generated BPF assembly
  -r|--rand                      Randomize packet forwarding order (dev->dev)
  -M|--no-promisc                No promiscuous mode for netdev
  -A|--no-sock-mem               Don't tune core socket memory
  -N|--no-hwtimestamp            Disable hardware time stamping
  -m|--mmap                      Mmap(2) pcap file I/O, e.g. for replaying pcaps
  -G|--sg                        Scatter/gather pcap file I/O
  -c|--clrw                      Use slower read(2)/write(2) I/O
  -S|--ring-size <size>          Specify ring size to: <num>KiB/MiB/GiB
  -k|--kernel-pull <uint>        Kernel pull from user interval in us (def: 10us)
  -J|--jumbo-support             Support replay/fwd 64KB Super Jumbo Frames (def: 2048B)
  -b|--bind-cpu <cpu>            Bind to specific CPU
  -u|--user <userid>             Drop privileges and change to userid
  -g|--group <groupid>           Drop privileges and change to groupid
  -H|--prio-high                 Make this high priority process
  -Q|--notouch-irq               Do not touch IRQ CPU affinity of NIC
  -s|--silent                    Do not print captured packets
  -q|--less                      Print less-verbose packet information
  -X|--hex                       Print packet data in hex format
  -l|--ascii                     Print human-readable packet data
  -U|--update                    Update GeoIP databases
  -V|--verbose                   Be more verbose
  -v|--version                   Show version and exit
  -h|--help                      Guess what?!

Examples:
  netsniff-ng --in eth0 --out dump.pcap -s -T 0xa1b2c3d4 --b 0 tcp or udp
  netsniff-ng --in wlan0 --rfraw --out dump.pcap --silent --bind-cpu 0
  netsniff-ng --in dump.pcap --mmap --out eth0 -k1000 --silent --bind-cpu 0
  netsniff-ng --in dump.pcap --out dump.cfg --silent --bind-cpu 0
  netsniff-ng --in dump.pcap --out dump2.pcap --silent tcp
  netsniff-ng --in eth0 --out eth1 --silent --bind-cpu 0 -J --type host
  netsniff-ng --in eth1 --out /opt/probe/ -s -m --interval 100MiB -b 0
  netsniff-ng --in vlan0 --out dump.pcap -c -u `id -u bob` -g `id -g bob`
  netsniff-ng --in any --filter http.bpf --jumbo-support --ascii -V

Note:
  For introducing bit errors, delays with random variation and more
  while replaying pcaps, make use of tc(8) with its disciplines (e.g. netem).

Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2009-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>
Copyright (C) 2009-2012 Emmanuel Roullit <emmanuel.roullit@gmail.com>
Copyright (C) 2012 Markus Amend <markus@netsniff-ng.org>
Swiss federal institute of technology (ETH Zurich)
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




trafgen usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ trafgen -h
trafgen 0.6.3, multithreaded zero-copy network packet generator
http://www.netsniff-ng.org

Usage: trafgen [options] [packet]
Options:
  -i|-c|--in|--conf <cfg/->      Packet configuration file/stdin
  -o|-d|--out|--dev <netdev>     Networking device i.e., eth0
  -p|--cpp                       Run packet config through C preprocessor
  -D|--define                    Add macro/define for C preprocessor
  -J|--jumbo-support             Support 64KB super jumbo frames (def: 2048B)
  -R|--rfraw                     Inject raw 802.11 frames
  -s|--smoke-test <ipv4>         Probe if machine survived fuzz-tested packet
  -n|--num <uint>                Number of packets until exit (def: 0)
  -r|--rand                      Randomize packet selection (def: round robin)
  -P|--cpus <uint>               Specify number of forks(<= CPUs) (def: #CPUs)
  -t|--gap <time>                Set approx. interpacket gap (s/ms/us/ns, def: us)
  -b|--rate <rate>               Send traffic at specified rate (pps/B/kB/MB/GB/kbit/Mbit/Gbit/KiB/MiB/GiB)
  -S|--ring-size <size>          Manually set mmap size (KiB/MiB/GiB)
  -E|--seed <uint>               Manually set srand(3) seed
  -u|--user <userid>             Drop privileges and change to userid
  -g|--group <groupid>           Drop privileges and change to groupid
  -H|--prio-high                 Make this high priority process
  -A|--no-sock-mem               Don't tune core socket memory
  -Q|--notouch-irq               Do not touch IRQ CPU affinity of NIC
  -q|--qdisc-path                Enable qdisc kernel path (default off since 3.14)
  -V|--verbose                   Be more verbose
  -C|--no-cpu-stats              Do not print CPU time statistics on exit
  -v|--version                   Show version and exit
  -e|--example                   Show built-in packet config example
  -h|--help                      Guess what?!

Examples:
  trafgen --dev eth0 --conf trafgen.cfg
  trafgen -e | trafgen -i - -o eth0 --cpp -n 1
  trafgen --dev eth0 --conf fuzzing.cfg --smoke-test 10.0.0.1
  trafgen --dev wlan0 --rfraw --conf beacon-test.txf -V --cpus 2
  trafgen --dev eth0 --conf frag_dos.cfg --rand --gap 1000us
  trafgen --dev eth0 --conf icmp.cfg --rand --num 1400000 -k1000
  trafgen --dev eth0 --conf tcp_syn.cfg -u `id -u bob` -g `id -g bob`
  trafgen --dev eth0 '{ fill(0xff, 6), 0x00, 0x02, 0xb3, rnd(3), c16(0x0800), fill(0xca, 64) }'

Arbitrary packet config examples (e.g. trafgen -e > trafgen.cfg):
  Run packet on  all CPUs:              { fill(0xff, 64) csum16(0, 64) }
  Run packet only on CPU1:    cpu(1):   { rnd(64), 0b11001100, 0xaa }
  Run packet only on CPU1-2:  cpu(1-2): { drnd(64),'a',csum16(1, 8),'b',42 }

Generate config files from existing pcap using netsniff-ng:
  netsniff-ng --in dump.pcap --out dump.cfg

Note:
  Smoke/fuzz test example: machine A, 10.0.0.2 (trafgen) is directly
  connected to machine B (test kernel), 10.0.0.1. If ICMP reply fails
  we assume the kernel crashed, thus we print the packet and quit.
  In case you find a ping-of-death, please mention trafgen in your
  commit message of the fix!

  For introducing bit errors, delays with random variation and more,
  make use of tc(8) with its different disciplines, i.e. netem.

  For generating different package distributions, you can use scripting
  to generate a trafgen config file with packet ratios as:

     IMIX             64:7,  570:4,  1518:1
     Tolly            64:55,  78:5,   576:17, 1518:23
     Cisco            64:7,  594:4,  1518:1
     RPR Trimodal     64:60, 512:20, 1518:20
     RPR Quadrimodal  64:50, 512:15, 1518:15, 9218:20

Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2011-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>,
Swiss federal institute of technology (ETH Zurich)
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



ifpps usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ ifpps -h
ifpps 0.6.3, top-like kernel networking and system statistics
http://www.netsniff-ng.org

Usage: ifpps [options] || ifpps <netdev>
Options:
  -d|--dev <netdev>      Device to fetch statistics for e.g., eth0
  -n|--num-cpus <num>    Number of top hitter CPUs in ncurses mode (def: 5)
  -t|--interval <time>   Refresh time in ms (default 1000 ms)
  -c|--csv               Output to terminal as Gnuplot-ready data
  -l|--loop              Continuous CSV output
  -m|--median            Display median values
  -o|--omit-header       Do not print the CSV header
  -p|--promisc           Promiscuous mode
  -P|--percentage        Show percentage of theoretical line rate
  -W|--no-warn           Suppress warnings
  -v|--version           Print version and exit
  -h|--help              Print this help and exit

Examples:
  ifpps eth0
  ifpps -pd eth0
  ifpps -lpcd wlan0 > plot.dat

Note:
  On 10G cards, RX/TX statistics are usually accumulated each > 1sec.
  Thus, in those situations, it's good to use a -t of 10sec.

Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2009-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>
Swiss federal institute of technology (ETH Zurich)
Copyright (C) 2013 Tobias Klauser <tklauser@distanz.ch>
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





mausezahn usage
xxx

to be done

xxxx


bpfc usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bpfc -h
bpfc 0.6.3, a tiny BPF compiler
http://www.netsniff-ng.org

Usage: bpfc [options] || bpfc <program>
Options:
  -i|--input <program/->  Berkeley Packet Filter file/stdin
  -p|--cpp                Run bpf program through C preprocessor
  -D|--define             Add macro/define for C preprocessor
  -f|--format <format>    Output format: C|netsniff-ng|xt_bpf|tcpdump
  -b|--bypass             Bypass filter validation (e.g. for bug testing)
  -V|--verbose            Be more verbose
  -d|--dump               Dump supported instruction table
  -v|--version            Print version and exit
  -h|--help               Print this help and exit

Examples:
  bpfc fubar
  bpfc fubar > foo (bpfc -f C -i fubar > foo) -->  netsniff-ng -f foo ...
  bpfc -f tcpdump -i fubar > foo -->  tcpdump -ddd like ...
  bpfc -f xt_bpf -b -p -i fubar
  iptables -A INPUT -m bpf --bytecode "`./bpfc -f xt_bpf -i fubar`" -j LOG
  bpfc -   (read from stdin)
Note:
  Generation of seccomp-BPF filters are fully supported as well.

Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2011-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>,
Swiss federal institute of technology (ETH Zurich)
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





flowtop usage
xxxx

to be done

xxxx




curvetun usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ curvetun -h
curvetun 0.6.2+, lightweight curve25519-based IP tunnel
http://www.netsniff-ng.org

Usage: curvetun [options]
Options, general:
  -d|--dev <tun>          Networking tunnel device, e.g. tun0
  -p|--port <num>         Server port number (mandatory)
  -t|--stun <server>      Show public IP/Port mapping via STUN
  -c|--client[=alias]     Client mode, server alias optional
  -k|--keygen             Generate public/private keypair
  -x|--export             Export your public data for remote servers
  -C|--dumpc              Dump parsed clients
  -S|--dumps              Dump parsed servers
  -D|--nofork        
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ curvetun -h
curvetun 0.6.2+, lightweight curve25519-based IP tunnel
http://www.netsniff-ng.org

Usage: curvetun [options]
Options, general:
  -d|--dev <tun>          Networking tunnel device, e.g. tun0
  -p|--port <num>         Server port number (mandatory)
  -t|--stun <server>      Show public IP/Port mapping via STUN
  -c|--client[=alias]     Client mode, server alias optional
  -k|--keygen             Generate public/private keypair
  -x|--export             Export your public data for remote servers
  -C|--dumpc              Dump parsed clients
  -S|--dumps              Dump parsed servers
  -D|--nofork             Do not daemonize
  -s|--server             Server mode, options follow below
  -N|--no-logging         Disable server logging (for better anonymity)
  -u|--udp                Use UDP as carrier instead of TCP
  -4|--ipv4               Tunnel devices are IPv4
  -6|--ipv6               Tunnel devices are IPv6
  -v|--version            Print version and exit
  -h|--help               Print this help and exit

Example:
  See curvetun's man page for a configuration example.
  curvetun --server -4 -u -N --port 6666 --stun stunserver.org
  curvetun --client=ethz

  curvetun --keygen
  curvetun --export
Note:
  There is no default port specified, so that you are forced
  to select your own! For client/server status messages see syslog!
  This software is an experimental prototype intended for researchers.

Secret ingredient: 7647-14-5


Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2011-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>,
Swiss federal institute of technology (ETH Zurich)
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$      Do not daemonize
  -s|--server             Server mode, options follow below
  -N|--no-logging         Disable server logging (for better anonymity)
  -u|--udp                Use UDP as carrier instead of TCP
  -4|--ipv4               Tunnel devices are IPv4
  -6|--ipv6               Tunnel devices are IPv6
  -v|--version            Print version and exit
  -h|--help               Print this help and exit

Example:
  See curvetun's man page for a configuration example.
  curvetun --server -4 -u -N --port 6666 --stun stunserver.org
  curvetun --client=ethz

  curvetun --keygen
  curvetun --export
Note:
  There is no default port specified, so that you are forced
  to select your own! For client/server status messages see syslog!
  This software is an experimental prototype intended for researchers.

Secret ingredient: 7647-14-5


Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2011-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>,
Swiss federal institute of technology (ETH Zurich)
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




astraceroute usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ astraceroute -h
astraceroute 0.6.3, autonomous system trace route utility
http://www.netsniff-ng.org

Usage: astraceroute [options]
Options:
 -H|--host <host>        Host/IPv4/IPv6 to lookup AS route to
 -p|--port <port>        Hosts port to lookup AS route to
 -i|-d|--dev <device>    Networking device, e.g. eth0
 -b|--bind <IP>          IP address to bind to, Must specify -6 for an IPv6 address
 -f|--init-ttl <ttl>     Set initial TTL
 -m|--max-ttl <ttl>      Set maximum TTL (def: 30)
 -q|--num-probes <num>   Number of max probes for each hop (def: 2)
 -x|--timeout <sec>      Probe response timeout in sec (def: 3)
 -X|--payload <string>   Specify a payload string to test DPIs
 -l|--totlen <len>       Specify total packet len
 -4|--ipv4               Use IPv4-only requests
 -6|--ipv6               Use IPv6-only requests
 -n|--numeric            Do not do reverse DNS lookup for hops
 -u|--update             Update GeoIP databases
 -L|--latitude           Show latitude and longitude
 -N|--dns                Do a reverse DNS lookup for hops
 -S|--syn                Set TCP SYN flag
 -A|--ack                Set TCP ACK flag
 -F|--fin                Set TCP FIN flag
 -P|--psh                Set TCP PSH flag
 -U|--urg                Set TCP URG flag
 -R|--rst                Set TCP RST flag
 -E|--ecn-syn            Send ECN SYN packets (RFC3168)
 -t|--tos <tos>          Set the IP TOS field
 -G|--nofrag             Set do not fragment bit
 -Z|--show-packet        Show returned packet on each hop
 -v|--version            Print version and exit
 -h|--help               Print this help and exit

Examples:
  IPv4 trace of AS with TCP SYN probe (this will most-likely pass):
    astraceroute -i eth0 -N -S -H netsniff-ng.org
  IPv4 trace of AS with TCP ECN SYN probe:
    astraceroute -i eth0 -N -E -H netsniff-ng.org
  IPv4 trace of AS with TCP FIN probe:
    astraceroute -i eth0 -N -F -H netsniff-ng.org
  IPv4 trace of AS with Xmas probe:
    astraceroute -i eth0 -N -FPU -H netsniff-ng.org
  IPv4 trace of AS with Null probe with ASCII payload:
    astraceroute -i eth0 -N -H netsniff-ng.org -X "censor-me" -Z
  IPv6 trace of AS up to www.6bone.net:
    astraceroute -6 -i eth0 -S -E -N -H www.6bone.net

Note:
  If the TCP probe did not give any results, then astraceroute will
  automatically probe for classic ICMP packets! To gather more
  information about astraceroute's fetched AS numbers, see e.g.
  http://bgp.he.net/AS<number>!

Please report bugs to <netsniff-ng@googlegroups.com>
Copyright (C) 2011-2013 Daniel Borkmann <dborkma@tik.ee.ethz.ch>
Swiss federal institute of technology (ETH Zurich)
License: GNU GPL version 2.0
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




netsniff-ng examples

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo sbin/netsniff-ng --in enp0s25
Running! Hang up with ^C!

> enp0s25 72 1480239767s.341055209ns #1
 [ Eth MAC (54:ee:75:05:d4:4e => 00:13:49:ee:80:1b), Proto (0x0800, IPv4) ]
 [ Vendor (Wistron InfoComm(Kunshan)Co.,Ltd. => ZyXEL Communications Corporation) ]
 [ IPv4 Addr (192.168.1.164 => 192.168.1.1), Proto (17), TTL (64), TOS (0), Ver (4), IHL (5), Tlen (58), ID (14455), Res (0), NoFrag (1), MoreFrag (0), FragOff (0), CSum (0x7e46) is ok ]
 [ UDP Port (50845 => 53 (domain)), Len (38 Bytes, 30 Bytes Data), CSum (0x842d) ]
 [ Chr .............www.hiese.de..... ]
 [ Hex  96 19 01 00 00 01 00 00 00 00 00 00 03 77 77 77 05 68 69 65 73 65 02 64 65 00 00 01 00 01 ]

< enp0s25 88 1480239767s.700628928ns #2
 [ Eth MAC (00:13:49:ee:80:1b => 54:ee:75:05:d4:4e), Proto (0x0800, IPv4) ]
 [ Vendor (ZyXEL Communications Corporation => Wistron InfoComm(Kunshan)Co.,Ltd.) ]
 [ IPv4 Addr (192.168.1.1 => 192.168.1.164), Proto (17), TTL (255), TOS (0), Ver (4), IHL (5), Tlen (74), ID (9082), Res (0), NoFrag (1), MoreFrag (0), FragOff (0), CSum (0xd432) is ok ]
 [ UDP Port (53 (domain) => 50845), Len (54 Bytes, 46 Bytes Data), CSum (0xff1a) ]
 [ Chr .............www.hiese.de..................... ]
 [ Hex  96 19 81 80 00 01 00 01 00 00 00 00 03 77 77 77 05 68 69 65 73 65 02 64 65 00 00 01 00 01 c0 0c 00 01 00 01 00 00 a8 c0 00 04 d4 e3 9b c3 ]

> enp0s25 98 1480239767s.361041456ns #3
 [ Eth MAC (54:ee:75:05:d4:4e => 00:13:49:ee:80:1b), Proto (0x0800, IPv4) ]
 [ Vendor (Wistron InfoComm(Kunshan)Co.,Ltd. => ZyXEL Communications Corporation) ]
 [ IPv4 Addr (192.168.1.164 => 212.227.155.195), Proto (1), TTL (64), TOS (0), Ver (4), IHL (5), Tlen (84), ID (48274), Res (0), NoFrag (1), MoreFrag (0), FragOff (0), CSum (0x4b23) is ok ]
 [ ICMP Type (8), Code (0), CSum (0xe99e) is ok ]
 [ Chr ..:X....5....................... !"#$%&'()*+,-./01234567 ]
 [ Hex  97 aa 3a 58 00 00 00 00 35 82 05 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 ]

< enp0s25 98 1480239767s.713705248ns #4
 [ Eth MAC (00:13:49:ee:80:1b => 54:ee:75:05:d4:4e), Proto (0x0800, IPv4) ]
 [ Vendor (ZyXEL Communications Corporation => Wistron InfoComm(Kunshan)Co.,Ltd.) ]
 [ IPv4 Addr (212.227.155.195 => 192.168.1.164), Proto (1), TTL (56), TOS (0), Ver (4), IHL (5), Tlen (84), ID (13590), Res (0), NoFrag (0), MoreFrag (0), FragOff (0), CSum (0x1aa0) is ok ]
 [ ICMP Type (0), Code (0), CSum (0xf19e) is ok ]
 [ Chr ..:X....5....................... !"#$%&'()*+,-./01234567 ]
 [ Hex  97 aa 3a 58 00 00 00 00 35 82 05 00 00 00 00 00 10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f 20 21 22 23 24 25 26 27 28 29 2a 2b 2c 2d 2e 2f 30 31 32 33 34 35 36 37 ]
...




[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo sbin/ifpps --dev  enp0s25




[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo sbin/flowtop --no-geoip                                                             




[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ LD_LIBRARY_PATH= sudo sbin/astraceroute -i enp0s25  -N -FPU -H netsniff-ng.org
AS path IPv4 TCP trace from 192.168.1.164 to 213.133.104.62:80 (netsniff-ng.org) with len 40 Bytes, 30 max hops
Using flags SYN:0,ACK:0,ECN:0,FIN:1,PSH:1,RST:0,URG:1
 1: i[   1485 us] zyxel (192.168.1.1)
 2: i[   6582 us] dslb-084-059-072-001.084.059.pools.vodafone-ip.de (84.59.72.1) in AS3209 Vodafone GmbH in Germany, Bodenheim
 3: i[   6208 us] 188.111.222.106 in AS3209 Vodafone GmbH in Germany
 4: i[   6630 us] 188.111.217.204 in AS3209 Vodafone GmbH in Germany
 5: i[   6187 us] 92.79.212.45 in AS3209 Vodafone GmbH in Germany
 6: i[   6425 us] 145.254.2.175 in AS3209 Vodafone GmbH in Germany
 7: i[   6204 us] decix2-gw.hetzner.de (80.81.193.164) in AS47872 Sofia Connect EOOD in Germany, Frankfurt Am Main
 8: i[   9392 us] core11.hetzner.de (213.239.245.34) in AS24940 Hetzner Online GmbH in Germany
 9: i[   9237 us] ex9k2.rz1.hetzner.de (213.239.203.214) in AS24940 Hetzner Online GmbH in Germany
...




nmon


nmon is another top replacement, usage:

nmon usage

[xtrnaw7@t540p bin]$ ./nmon -h

Hint: nmon [-h] [-s <seconds>] [-c <count>] [-f -d <disks> -t -r <name>] [-x]

    -h            FULL help information
    Interactive-Mode:
    read startup banner and type: "h" once it is running
    For Data-Collect-Mode (-f)
    -f            spreadsheet output format [note: default -s300 -c288]
    optional
    -s <seconds>  between refreshing the screen [default 2]
    -c <number>   of refreshes [default millions]
    -d <disks>    to increase the number of disks [default 256]
    -t            spreadsheet includes top processes
    -x            capacity planning (15 min for 1 day = -fdt -s 900 -c 96)

Version - nmon 15e

For Interactive-Mode
    -s <seconds>  time between refreshing the screen [default 2]
    -c <number>   of refreshes [default millions]
    -g <filename> User Defined Disk Groups [hit g to show them]
                  - file = on each line: group_name <disks list> space separated
                  - like: database sdb sdc sdd sde
                  - upto 64 disk groups, 512 disks per line
                  - disks can appear more than once and in many groups
    -b            black and white [default is colour]
    example: nmon -s 1 -c 100

For Data-Collect-Mode = spreadsheet format (comma separated values)
    Note: use only one of f,F,z,x or X and make it the first argument
    -f            spreadsheet output format [note: default -s300 -c288]
             output file is <hostname>_YYYYMMDD_HHMM.nmon
    -F <filename> same as -f but user supplied filename
    -r <runname>  used in the spreadsheet file [default hostname]
    -t            include top processes in the output
    -T            as -t plus saves command line arguments in UARG section
    -s <seconds>  between snap shots
    -c <number>   of snapshots before nmon stops
    -d <disks>    to increase the number of disks [default 256]
    -l <dpl>      disks/line default 150 to avoid spreadsheet issues. EMC=64.
    -g <filename> User Defined Disk Groups (see above) - see BBBG & DG lines
    -N            include NFS Network File System
    -I <percent>  Include process & disks busy threshold (default 0.1)
                  don't save or show proc/disk using less than this percent
    -m <directory> nmon changes to this directory before saving to file
    example: collect for 1 hour at 30 second intervals with top procs
         nmon -f -t -r Test1 -s30 -c120

    To load into a spreadsheet:
    sort -A *nmon >stats.csv
    transfer the stats.csv file to your PC
    Start spreadsheet & then Open type=comma-separated-value ASCII file
     The nmon analyser or consolidator does not need the file sorted.

Capacity planning mode - use cron to run each day
    -x            sensible spreadsheet output for CP =  one day
                  every 15 mins for 1 day ( i.e. -ft -s 900 -c 96)
    -X            sensible spreadsheet output for CP = busy hour
                  every 30 secs for 1 hour ( i.e. -ft -s 30 -c 120)

Interactive Mode Commands
    key --- Toggles to control what is displayed ---
    h   = Online help information
    r   = Machine type, machine name, cache details and OS version + LPAR
    c   = CPU by processor stats with bar graphs
    l   = long term CPU (over 75 snapshots) with bar graphs
    m   = Memory stats
    L   = Huge memory page stats
    V   = Virtual Memory and Swap stats
    k   = Kernel Internal stats
    n   = Network stats and errors
    N   = NFS Network File System
    d   = Disk I/O Graphs
    D   = Disk I/O Stats
    o   = Disk I/O Map (one character per disk showing how busy it is)
    o   = User Defined Disk Groups
    j   = File Systems
    t   = Top Process stats use 1,3,4,5 to select the data & order
    u   = Top Process full command details
    v   = Verbose mode - tries to make recommendations
    p   = Logical Partitions Stats
    b   = black and white mode (or use -b option)
    .   = minimum mode i.e. only busy disks and processes

    key --- Other Controls ---
    +   = double the screen refresh time
    -   = halves the screen refresh time
    q   = quit (also x, e or control-C)
    0   = reset peak counts to zero (peak = ">")
    space = refresh screen now

Startup Control
    If you find you always type the same toggles every time you start
    then place them in the NMON shell variable. For example:
     export NMON=cmdrvtan

Others:
    a) To you want to stop nmon - kill -USR2 <nmon-pid>
    b) Use -p and nmon outputs the background process pid
    c) To limit the processes nmon lists (online and to a file)
       Either set NMONCMD0 to NMONCMD63 to the program names
       or use -C cmd:cmd:cmd etc. example: -C ksh:vi:syncd
    d) If you want to pipe nmon output to other commands use a FIFO:
       mkfifo /tmp/mypipe
       nmon -F /tmp/mypipe &
       grep /tmp/mypipe
    e) If nmon fails please report it with:
       1) nmon version like: 15e
       2) the output of cat /proc/cpuinfo
       3) some clue of what you were doing
       4) I may ask you to run the debug version

    Developer Nigel Griffiths
    Feedback welcome - on the current release only and state exactly the problem
    No warranty given or implied.












nmonchart

"nmonchart is a Korn shell script for AIX or Linux to convert nmon collected files to a webpage (.html) including Google Chart and JavaScript to display the top 53+ AIX and Linux Performance Graphs and configuration details"

nmonchart Usage example
You can use nmonchart to create an html page with graphics from files created by nmon, e.g.

# start nmon to collect the data to a file, e.g:
#
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./nmon -s 20 -c 360 -F ./nmondata.nmon

# Note: nmon switches to the background if collecting to a file
#
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ps -ef | grep nmon
xtrnaw7   5652     1  0 18:33 pts/7    00:00:00 ./nmon -s 20 -c 360 -F ./nmondata.nmon
xtrnaw7   5770  8849  0 18:33 pts/7    00:00:00 grep --color=auto nmon
[xtrnaw7@t540p /var/tmp/jwm/bin]$

# Then create an html page from the output file, e.g

[xtrnaw7@t540p /var/tmp/jwm/bin]$  cd /nmonchart 
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./nmonchart ./nmondata.nmon test.html


The created html page looks like this :





nmonanalyzer

nmonanalyzer , the Java Nmon Analyzer , can be used to create dynamic graphics of the data collected by nmon.

Java Nmon Analyzer usage example
(Note: The example is from the webpage http://linoxide.com/monitoring-2/install-nmon-monitor-linux-performance/)

# create a named pipe
#
[xtrnaw7@t540p /var/tmp/jwm/bin]$ mkfifo /tmp/nmonnamedpipe
[xtrnaw7@t540p /var/tmp/jwm/bin]$ java -cp nmonanal_0.1.2.jar li.xiang.nmonanalyser.agent.Agent
[2016-12-28 18:18:42]: ----- Agent Configuration -----
[2016-12-28 18:18:42]: Nmon out pipe        :/tmp/nmonnamedpipe
[2016-12-28 18:18:42]: Agent listening port :8187
[2016-12-28 18:18:42]: Maximum Connection   :20
[2016-12-28 18:18:42]: -------------------------------
[2016-12-28 18:18:42]: Ageng Server Socket lisening on :8187
[2016-12-28 18:19:11]: named pipe reader thread started.

# in another session start nmon to write to the named pipe
#
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./nmon -s 20 -c 360 -F /tmp/nmonnamedpipe

# Note: nmon will switch to the background:
#
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ps -ef | grep nmon
xtrnaw7   4478  3303  0 18:18 pts/2    00:00:00 java -cp nmonanal_0.1.2.jar li.xiang.nmonanalyser.agent.Agent
xtrnaw7   4572     1  0 18:19 pts/7    00:00:00 ./nmon -s 20 -c 360 -F /tmp/nmonnamedpipe
xtrnaw7   4695  8849  0 18:19 pts/7    00:00:00 grep --color=auto nmon
[xtrnaw7@t540p /var/tmp/jwm/bin]$

# then start the Java Nmon Analyzer
#
[xtrnaw7@t540p /var/tmp/jwm/bin]$ java -jar nmonanal_0.1.2.jar

# In the Java Nmon Analyzer then connect to the agent using the menu entry "Data Loader / From Agent": enter the hostname and the port used (see the output of the agent; in this example the hostname is localhost and the port is 8187)
# and after a few seconds the Java Nmon Analyzer shows the data:













Note: You can also use nmon to write the data in a file and then later analyze this file with Nmon Analyzer.




numatop


"NumaTOP is an observation tool for runtime memory locality characterization and analysis of processes and threads running on a NUMA system. It helps the user characterize the NUMA behavior of processes and threads and identify where the NUMA-related performance bottlenecks reside."

Please note that numatop requires a current Linux release and a NUMA capable processor.



oprofile

"OProfile is a system-wide profiler for Linux systems, capable of profiling all running code at low overhead."

ocount, opannotate, oparchive, op-check-perfevents, opcontrol, operf, opgprof, ophelp, opimport
opjitconf, opreport, and oprofiled are the tools from the oprofile package.

Please the documentation of oprofile for more indepth information.



p0f


"P0f is a tool that utilizes an array of sophisticated, purely passive traffic fingerprinting mechanisms to identify the players behind any incidental TCP/IP communications (often as little as a single normal SYN) without interfering in any way. Version 3 is a complete rewrite of the original codebase, incorporating a significant number of improvements to network-level fingerprinting, and introducing the ability to reason about application-level payloads (e.g., HTTP).

Some of p0f's capabilities include:

The tool can be operated in the foreground or as a daemon, and offers a simple real-time API for third-party components that wish to obtain additional information about the actors they are talking to."

p0f usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ p0f -h
--- p0f 3.08b by Michal Zalewski <lcamtuf@coredump.cx> ---

p0f: invalid option -- 'h'
Usage: p0f [ ...options... ] [ 'filter rule' ]

Network interface options:

  -i iface  - listen on the specified network interface
  -r file   - read offline pcap data from a given file
  -p        - put the listening interface in promiscuous mode
  -L        - list all available interfaces

Operating mode and output settings:

  -f file   - read fingerprint database from 'file' (p0f.fp)
  -o file   - write information to the specified log file
  -s name   - answer to API queries at a named unix socket
  -u user   - switch to the specified unprivileged account and chroot
  -d        - fork into background (requires -o or -s)

Performance-related options:

  -S limit  - limit number of parallel API connections (20)
  -t c,h    - set connection / host cache age limits (30s,120m)
  -m c,h    - cap the number of active connections / hosts (1000,10000)

Optional filter expressions (man tcpdump) can be specified in the command
line to prevent p0f from looking at incidental network traffic.

Problems? You can reach the author at <lcamtuf@coredump.cx>.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




p0f example

[JWM session] [root@t540p p0f-3.08b]# ./p0f -i em1 -p
--- p0f 3.08b by Michal Zalewski <lcamtuf@coredump.cx> ---

[+] Closed 1 file descriptor.
[+] Loaded 320 signatures from 'p0f.fp'.
[+] Intercepting traffic on interface 'em1'.
[+] Default packet filtering configured [+VLAN].
[+] Entered main event loop.

.-[ 192.168.1.164/54221 -> 192.168.1.154/9999 (syn) ]-
|
| client   = 192.168.1.164/54221
| os       = Linux 3.11 and newer
| dist     = 0
| params   = none
| raw_sig  = 4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df,id+:0
|
`----

.-[ 192.168.1.164/54221 -> 192.168.1.154/9999 (mtu) ]-
|
| client   = 192.168.1.164/54221
| link     = Ethernet or modem
| raw_mtu  = 1500
|
...





pagemon


"pagemon is an interactive memory/page monitoring tool allowing one to browse the memory map of an active running process on Linux."

pagemon usage
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../sbin/pagemon -h
pagemon, version 0.01.20

Usage: pagemon [options]
 -a        enable automatic zoom mode
 -d        delay in microseconds between refreshes, default 15000
 -h        help
 -p pid    process ID to monitor
 -r        read (page back in) pages at start
 -t ticks  ticks between dirty page checks
 -v        enable VM view
 -z zoom   set page zoom scale
[xtrnaw7@t540p /var/tmp/jwm/src]$



Example:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/src]$ sudo ../sbin/pagemon -p $$








pchar


pchar is a tool to monitor the network performance between two hosts in great detail. pchar is the tool of choice to check between which hops your network performance get's lost.

pchar usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ pchar -h
Usage: pchar [-a analysis] [-b burst] [-c] [-d debuglevel] [-g gap] [-G gaptype] [-h] [-H hops] [-I increment] [-m mtu] [-n] [-p protocol] [-P port] [-q] [-R reps] [-s hop] [-t timeout] [-T tos] [-v] [-V] [-w file] -r file | host]
    -a analysis    Set analysis type (default is lsq)
            lsq    Least sum of squares linear fit
            kendall    Linear fit using Kendall's test statistic
            lms    Least median of squares linear fit
            lmsint    Least median of squares linear fit (integer computations)
    -b        Burst size (default = 1)
    -c        Ignore route changes
    -d debuglevel    Set debugging output level
    -g gap        Inter-test gap in seconds (default = 0.25)
    -G gaptype    Inter-test gap type (default is fixed)
            fixed    Fixed gap
            exp    Exponentially distributed random
    -H hops        Maximum number of hops (default = 30)
    -h        Print this help information
    -I increment    Packet size increment (default = 32)
    -l host        Set origin address of probes (defaults to hostname)
    -m mtu        Maximum packet size to check (default = 1500)
    -M mode        Operational mode (defaults to pchar)
            pchar    Path characterization
            trout    Tiny traceroute
    -n        Don't resolve addresses to hostnames
    -p protocol    Network protocol (default is ipv4udp)
            ipv4udp        UDP over IPv4
            ipv4raw        UDP over IPv4 (raw sockets)
            ipv4icmp    ICMP over IPv4 (raw sockets)
            ipv6icmp    ICMPv6 over IPv6 (raw sockets)
            ipv6tcp        TCP over IPv6
            ipv6udp        UDP over IPv6
    -P port        Starting port number (default = 32768)
    -q        Quiet output
    -r file        Read data from a file (- for stdin)
    -R reps        Repetitions per hop (default = 32)
    -s hop        Starting hop number (default = 1)
    -t timeout    ICMP timeout in seconds (default = 3)
    -T tos        Set IP type-of-service field (default = 0)
    -v        Verbose output
    -V        Print version information
    -w file        Write data to a file (- for stdout)

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



Sample pchar output

[JWM session] xtrnaw7@t61p Thu Oct 31 21:59:15 /var/tmp/jwm/sbin $ sudo ./pchar www.heise.de
pchar to www.heise.de (193.99.144.85) using UDP/IPv4
Using raw socket input
Packet size increments from 32 to 1500 by 32
46 test(s) per repetition
32 repetition(s) per hop
 0: 192.168.1.161 (t61p)
    Partial loss:      0 / 1472 (0%)
    Partial char:      rtt = 1.335142 ms, (b = 0.000187 ms/B), r2 = 0.979782
                       stddev rtt = 0.003264, stddev b = 0.000004
    Partial queueing:  avg = 0.000217 ms (1162 bytes)
    Hop char:          rtt = 1.335142 ms, bw = 42885.302808 Kbps
    Hop queueing:      avg = 0.000217 ms (1162 bytes)
 1: 192.168.1.1 (zyxel)
    Partial loss:      45 / 1472 (3%)
    Partial char:      rtt = 4.337073 ms, (b = 0.009822 ms/B), r2 = 0.998417
                       stddev rtt = 0.049035, stddev b = 0.000059
    Partial queueing:  avg = 0.001137 ms (1257 bytes)
    Hop char:          rtt = 3.001931 ms, bw = 830.277010 Kbps
    Hop queueing:      avg = 0.000920 ms (95 bytes)
 2: 188.97.64.1 (dslb-188-097-064-001.pools.arcor-ip.net)
    Partial loss:      50 / 1472 (3%)
    Partial char:      rtt = 6.486822 ms, (b = 0.009728 ms/B), r2 = 0.991430
                       stddev rtt = 0.110175, stddev b = 0.000136
    Partial queueing:  avg = 0.003096 ms (1257 bytes)
    Hop char:          rtt = 2.149749 ms, bw = --.--- Kbps
    Hop queueing:      avg = 0.001959 ms (0 bytes)
 3: 145.254.0.77 (145.254.0.77)
    Partial loss:      38 / 1472 (2%)
    Partial char:      rtt = 12.532021 ms, (b = 0.010207 ms/B), r2 = 0.975516
                       stddev rtt = 0.206723, stddev b = 0.000244
    Partial queueing:  avg = 0.001870 ms (1257 bytes)
    Hop char:          rtt = 6.045200 ms, bw = 16706.537663 Kbps
    Hop queueing:      avg = -0.001226 ms (0 bytes)
 4: 92.79.211.198 (92.79.211.198)
    Partial loss:      46 / 1472 (3%)
    Partial char:      rtt = 12.326718 ms, (b = 0.010013 ms/B), r2 = 0.999057
                       stddev rtt = 0.037468, stddev b = 0.000046
    Partial queueing:  avg = 0.001374 ms (1257 bytes)
    Hop char:          rtt = --.--- ms, bw = --.--- Kbps
    Hop queueing:      avg = -0.000496 ms (0 bytes)
 5: 80.156.163.225 (80.156.163.225)
Route change detected
    Partial loss:      40 / 1472 (2%)
    Partial char:      rtt = 12.236054 ms, (b = 0.009849 ms/B), r2 = 0.997949
                       stddev rtt = 0.054391, stddev b = 0.000067
    Partial queueing:  avg = 0.003483 ms (1257 bytes)
    Hop char:          rtt = --.--- ms, bw = --.--- Kbps
    Hop queueing:      avg = 0.002108 ms (0 bytes)
 6: 217.239.39.14 (217.239.39.14)
 6: 62.154.14.210 (f-ed4-i.F.DE.NET.DTAG.DE)
    Partial loss:      33 / 1472 (2%)
    Partial char:      rtt = 12.527010 ms, (b = 0.010011 ms/B), r2 = 0.998249
                       stddev rtt = 0.051069, stddev b = 0.000063
    Partial queueing:  avg = 0.013400 ms (62509 bytes)
    Hop char:          rtt = 0.290956 ms, bw = 49408.908039 Kbps
    Hop queueing:      avg = 0.009918 ms (61252 bytes)
 7: 217.243.218.38 (217.243.218.38)
ICMP: packet filtered
    Partial loss:      1 / 2 (50%)
    Partial char:      rtt = 0.000000 ms, (b = 0.000000 ms/B), r2 = 0.000000
                       stddev rtt = 0.000000, stddev b = 0.000000
    Partial queueing:  avg = 0.000000 ms (62509 bytes)
    Hop char:          rtt = 0.000000 ms, bw = 0.000000 Kbps
    Hop queueing:      avg = -0.013400 ms (0 bytes)
 8: 217.243.218.38 (217.243.218.38)
    Path length:       8 hops
    Path char:         rtt = 0.000000 ms r2 = 0.000000
    Path bottleneck:   830.277010 Kbps
    Path pipe:         0 bytes
    Path queueing:     average = 0.000000 ms (62509 bytes)
    Start time:        Thu Oct 31 21:59:18 2013
    End time:          Thu Oct 31 22:57:33 2013




perftools

"A miscellaneous collection of in-development and unsupported performance analysis tools for Linux perf_events, aka the "perf" command, and ftrace. Both perf and ftrace are core Linux tracing tools, included in the kernel source. Your system probably has ftrace already, and perf is often just a package add (see Prerequisites).

These tools are designed to be easy to install (fewest dependencies), provide advanced performance observability, and be simple to use: do one thing and do it well. This collection was created by Brendan Gregg (author of the DTraceToolkit).

Many of these tools employ workarounds so that functionality is possible on existing Linux kernels. Because of this, many tools have caveats (see man pages), and their implementation should be considered a placeholder until future kernel features, or new tracing subsystems, are added."

Contents:

Using ftrace:

    iosnoop: trace disk I/O with details including latency.
    iolatency: summarize disk I/O latency as a histogram.
    execsnoop: trace process exec() with command line argument details.
    opensnoop: trace open() syscalls showing filenames.
    killsnoop: trace kill() signals showing process and signal details.
    net/tcpretrans: show TCP retransmits, with address and other details.
    system/tpoint: trace a given tracepoint.
    kernel/funccount: count kernel function calls, matching a string with wildcards.
    kernel/functrace: trace kernel function calls, matching a string with wildcards.
    kernel/funcslower: trace kernel functions slower than a threshold.
    kernel/funcgraph: trace a graph of kernel function calls, showing children and times.
    kernel/kprobe: dynamically trace a kernel function call or its return, with variables.
    tools/reset-ftrace: reset ftrace state if needed.

Using perf_events:

    misc/perf-stat-hist: power-of aggregations for tracepoint variables.
    syscount: count syscalls by syscall or process.
    disk/bitesize: histogram summary of disk I/O size.


[xtrnaw7@t540p perf-tools]$ ls bin
bitesize  execsnoop  funccount  funcgraph  funcslower  functrace  iolatency  iosnoop  killsnoop  kprobe  opensnoop  perf-stat-hist  reset-ftrace  syscount  tcpretrans  tpoint

iosnoop
[xtrnaw7@t540p perf-tools]$ sudo ./iosnoop -h
USAGE: iosnoop [-hQst] [-d device] [-i iotype] [-p PID] [-n name]
               [duration]
                 -d device       # device string (eg, "202,1)
                 -i iotype       # match type (eg, '*R*' for all reads)
                 -n name         # process name to match on I/O issue
                 -p PID          # PID to match on I/O issue
                 -Q              # use queue insert as start time
                 -s              # include start time of I/O (s)
                 -t              # include completion time of I/O (s)
                 -h              # this usage message
                 duration        # duration seconds, and use buffers
  eg,
       iosnoop                   # watch block I/O live (unbuffered)
       iosnoop 1                 # trace 1 sec (buffered)
       iosnoop -Q                # include queueing time in LATms
       iosnoop -ts               # include start and end timestamps
       iosnoop -i '*R*'          # trace reads
       iosnoop -p 91             # show I/O issued when PID 91 is on-CPU
       iosnoop -Qp 91            # show I/O queued by PID 91, queue time



execsnoop
[xtrnaw7@t540p perf-tools]$ ./execsnoop -h
USAGE: execsnoop [-hrt] [-a argc] [-d secs] [name]
                 -d seconds      # trace duration, and use buffers
                 -a argc         # max args to show (default 8)
                 -r              # include re-execs
                 -t              # include time (seconds)
                 -h              # this usage message
                 name            # process name to match (REs allowed)
  eg,
       execsnoop                 # watch exec()s live (unbuffered)
       execsnoop -d 1            # trace 1 sec (buffered)
       execsnoop grep            # trace process names containing grep
       execsnoop 'log$'          # filenames ending in "log"



iolatency
[xtrnaw7@t540p perf-tools]$ ./iolatency -h
USAGE: iolatency [-hQT] [-d device] [-i iotype] [interval [count]]
                 -d device       #[xtrnaw7@t540p perf-tools]$ ls bin
bitesize  execsnoop  funccount  funcgraph  funcslower  functrace  iolatency  iosnoop  killsnoop  kprobe  opensnoop  perf-stat-hist  reset-ftrace  syscount  tcpretrans  tpoint
 device string (eg, "202,1)
                 -i iotype       # match type (eg, '*R*' for all reads)
                 -Q              # use queue insert as start time
                 -T              # timestamp on output
                 -h              # this usage message
                 interval        # summary interval, seconds (default 1)
                 count           # number of summaries
  eg,
       iolatency                 # summarize latency every second
       iolatency -Q              # include block I/O queue time
       iolatency 5 2             # 2 x 5 second summaries
       iolatency -i '*R*'        # trace reads
       iolatency -d 202,1        # trace device 202,1 only



opensnoop
[xtrnaw7@t540p perf-tools]$ ./opensnoop -h
USAGE: opensnoop [-htx] [-d secs] [-p PID] [-n name] [filename]
                 -d seconds      # trace duration, and use buffers
                 -n name         # process name to match on I/O issue
                 -p PID          # PID to match on I/O issue
                 -t              # include time (seconds)
                 -x              # only show failed opens
                 -h              # this usage message
                 filename        # match filename (partials, REs, ok)
  eg,
       opensnoop                 # watch open()s live (unbuffered)
       opensnoop -d 1            # trace 1 sec (buffered)
       opensnoop -p 181          # trace I/O issued by PID 181 only
       opensnoop conf            # trace filenames containing "conf"
       opensnoop 'log$'          # filenames ending in "log"



killsnoop
[xtrnaw7@t540p perf-tools]$ ./killsnoop -h
USAGE: killsnoop [-hst] [-d secs] [-p PID] [-n name] [filename]
                 -d seconds      # trace duration, and use buffers
                 -n name         # process name to match
                 -p PID          # PID to match on kill issue
                 -t              # include time (seconds)
                 -s              # human readable signal names
                 -h              # this usage message
  eg,
       killsnoop                 # watch kill()s live (unbuffered)
       killsnoop -d 1            # trace 1 sec (buffered)
       killsnoop -p 181          # trace kill()s issued to PID 181 only

See the man page and example file for more info.



syscount
[xtrnaw7@t540p perf-tools]$ ./syscount -h
USAGE: syscount [-chv] [-t top] {-p PID|-d seconds|command}
       syscount                  # count by process name
                -c               # show counts by syscall name
                -h               # this usage message
                -v               # verbose: shows PID
                -p PID           # trace this PID only
                -d seconds       # duration of trace
                -t num           # show top number only
                command          # run and trace this command
  eg,
        syscount                 # syscalls by process name
        syscount -c              # syscalls by syscall name
        syscount -d 5            # trace for 5 seconds
        syscount -cp 923         # syscall names for PID 923
        syscount -c ls           # syscall names for "ls"

See the man page and example file for more info.



bin/tpoint
[xtrnaw7@t540p perf-tools]$  ./bin/tpoint -h
USAGE: tpoint [-hHsv] [-d secs] [-p PID] tracepoint [filter]
       tpoint -l
                 -d seconds      # trace duration, and use buffers
                 -p PID          # PID to match on I/O issue
                 -v              # view format file (don't trace)
                 -H              # include column headers
                 -l              # list all tracepoints
                 -s              # show kernel stack traces
                 -h              # this usage message

Note that these examples may need modification to match your kernel
version's function names and platform's register usage.
   eg,
       tpoint -l | grep open
                                 # find tracepoints containing "open"
       tpoint syscalls:sys_enter_open
                                 # trace open() syscall entry
       tpoint block:block_rq_issue
                                 # trace block I/O issue
       tpoint -s block:black_rq_issue
                                 # show kernel stacks

See the man page and example file for more info.

Example (from  http://www.slideshare.net/brendangregg/linux-performance-analysis-new-tools-and-old-secrets):

Who is creating disk I/O, and of what type?

[xtrnaw7@t540p perf-tools]$ sudo  ./bin/tpoint  block:block_rq_insert
Tracing block:block_rq_insert. Ctrl-C to end.
     kworker/7:2-4043  [007] d...  5179.718091: block_rq_insert: 0,0 R 8 (4a 01 00 00 10 00 00 00 08 00) 0 + 0 [kworker/7:2]
     kworker/3:1-5075  [003] d...  5179.727054: block_rq_insert: 8,0 WS 0 () 46400512 + 200 [kworker/3:1]
     kworker/6:2-245   [006] d...  5179.727588: block_rq_insert: 8,0 WS 0 () 51803752 + 8 [kworker/6:2]
     kworker/6:2-245   [006] d...  5179.727606: block_rq_insert: 8,0 WS 0 () 51803760 + 8 [kworker/6:2]
     kworker/6:2-245   [006] d...  5179.727614: block_rq_insert: 8,0 WS 0 () 51803768 + 8 [kworker/6:2]
     kworker/6:2-245   [006] d...  5179.727621: block_rq_insert: 8,0 WS 0 () 51803776 + 8 [kworker/6:2]
...




See also the additional scripts and patched script versions for the perf-tools below.



exec_snoop_wrapper.sh


exec_snoop_wrapper.sh is a wrapper script for the execsnoop script  from the perftools

exec_snoop_wrapper.sh prints some additional information about the processes to monitor (e.g. the parent process and the process tree if available)

exec_snoop_wrapper.sh usage

[xtrnaw7@t540p /var/tmp/jwm]$ ./scripts/exec_snoop_wrapper.sh -v -h
[17.08.2018 18:03 ] ### exec_snoop_wrapper.sh started at Fri Aug 17 18:03:22 CEST 2018
 exec_snoop_wrapper.sh

 Function: monitor the exec of a specific binary
 
 Usage:    exec_snoop_wrapper.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-y|--yes] [-n|--no] [-l|--logfile filename]
               [d{:dryrun_prefix}|--dryrun{:dryrun_prefix}] [-D|--debugshell] [-t fn|--tracefunc fn] [-L]
               [-T|--tee] [-V|--version] [--var name=value] [--appendlog] [--nologrotate] [--noSTDOUTlog]
               [--nocleanup] [-R regex] [-- [execsnoop_options]] [process_to_monitor]

 Parameter:
   process_to_monitor - process to monitor
   execsnoop_options - options for execsnoop

   -R - additional regex pattern for the proces; this parameter can be used more then once

   -h - print the script usage; use -h and -v one or more times to print more help text
       
   -v - verbose mode; use -v -v to also print the runtime system messages
        (or set the environment variables VERBOSE to 0 and VERBOSE_LEVEL to the level)
   -q - quiet mode (or set the environment variable QUIET to 0)
   -f - force execution (or set the environment variable FORCE to 0 )
   -y - answer yes to all questions
   -n - answer no to all questions
   -l - logfile to use; use -l none to not use a logfile at all
        the default logfile is /var/tmp/exec_snoop_wrapper.sh.log
        also supported is the format "-l:filename"
   -d - dryrun mode, default dryrun_prefix is " "
        Use the parameter "-d:<dryrun_prefix>" or the syntax
        "PREFIX=<new dryrun_prefix> /var/tmp/jwm/scripts/exec_snoop_wrapper.sh"
        to change the dryrun prefix
        The script will run in dryrun mode if the environment variable PREFIX
        is set. To disable that behaviour use the parameter "+d"
   -D - start a debug shell and continue the script afterwards
   -t - trace the function fn
        also supported is the format "-t:fn[,...,fn#]"
   -L - list all defined functions and end the script
        also supported is the format "-l:filename"
   -T - copy STDOUT and STDERR to the file /var/tmp/exec_snoop_wrapper.sh.28958.tee.log
        using tee; set the environment variable __TEE_OUTPUT_FILE before
        calling the script to change the file used for the output of tee
   -V - print the script version and exit; use "-v -V" to print the
        template version also
   --var
      - set the variable "name" to the value "value"
        also supported is the format "--var:<varname>=<value>"
   --appendlog
      - append the messages to the logfile (default: overwrite an existing logfile)
        This parameter also sets --nologrotate
   --nologrotate
      - do not create a backup of an existing logfile
   --noSTDOUTlog
      - do not write STDOUT/STDERR to a file if /dev/tty is not a a device
   --nocleanup
       - do no house keeping at script end

 The default execsnoop script to use is /var/tmp/jwm/perf-tools/bin/execsnoop.

 Set the environment variable EXECSNOOP before calling the script to use another version
 of the execsnoop script.

Current environment: ksh version: 93 | change function code supported: yes | tracing feature using $0 supported: yes

 Parameter that toggle a switch from true to false or vice versa can
 be used with the plus sign (+) instead of minus (-) to invert the usage, e.g.
 
 The parameter \"-v\" enables the verbose mode; the parameter \"+v\" disables the verbose mode.

 All parameter are processed in the given order, e.g.

  /var/tmp/jwm/scripts/exec_snoop_wrapper.sh -v +v
    -> verbose mode is now off

  /var/tmp/jwm/scripts/exec_snoop_wrapper.sh +v -v
    -> verbose mode is now on

 Parameter are evaluated after the evaluation of the environment variables, e.g

 VERBOSE=0  /var/tmp/jwm/scripts/exec_snoop_wrapper.sh
     -> verbose mode is now on

 VERBOSE=0  /var/tmp/jwm/scripts/exec_snoop_wrapper.sh +v
     -> verbose mode is now off

 
 To disable one or more of the house keeping tasks you might set some variables
 either before starting the script or via the parameter --var name=value
 
 The defined variables are
 
  NO_EXIT_ROUTINES=0     # do not execute the exit routines if set to 0
  NO_TEMPFILES_DELETE=0  # do not delete temporary files if set to 0
  NO_TEMPDIR_DELETE=0    # do not delete temporary directories if set to 0
  NO_FINISH_ROUTINES=0   # do not execute the finish routines if set to 0
  NO_KILL_PROCS=0        # do not kill the processes if set to 0
 
Supported environment variables are:

  PREFIX - current value is ""
  __DEBUG_CODE - current value is ""
  __TEE_OUTPUT_FILE - current value is "/var/tmp/exec_snoop_wrapper.sh.28958.tee.log"
  USE_ONLY_KSH88_FEATURES - current value is "1"
  BREAK_ALLOWED - current value is "DebugShell"
  EDITOR - current value is "/usr/bin/vi"
  PAGER - current value is "/usr/bin/less"
  LOGFILE - current value is "/var/tmp/exec_snoop_wrapper.sh.log"
  FORCE - current value is "1"
  QUIET - current value is "1"
  VERBOSE - current value is "0"
  VERBOSE_LEVEL - current value is "1"
  RCM_SERVICE - current value is ""
  RCM_FUNCTION - current value is ""
  RCM_USERID - current value is ""
  RCM_PASSWORD - current value is ""
  EXECSNOOP - current value is "/var/tmp/jwm/perf-tools/bin/execsnoop"


 *** The usage help for execsnoop is

USAGE: execsnoop [-hrt] [-a argc] [-d secs] [name]
                 -d seconds      # trace duration, and use buffers
                 -a argc         # max args to show (default 8)
                 -r              # include re-execs
                 -t              # include time (seconds)
                 -h              # this usage message
                 name            # process name to match (REs allowed)
  eg,
       execsnoop                 # watch exec()s live (unbuffered)
       execsnoop -d 1            # trace 1 sec (buffered)
       execsnoop grep            # trace process names containing grep
       execsnoop 'log$'          # filenames ending in "log"

See the man page and example file for more info.

---------------------------------------------------------------------- 
*** If you get the error message:

/var/tmp/jwm/perf-tools/bin/execsnoop: line 194: echo: write error: Device or resource busy
ERROR: adding a kprobe for execve. Exiting.

Wait some seconds and try the script again.
---------------------------------------------------------------------- 

[17.08.2018 18:03 ] ### The logfile used was /var/tmp/exec_snoop_wrapper.sh.log
[17.08.2018 18:03 ] ### exec_snoop_wrapper.sh ended at Fri Aug 17 18:03:22 CEST 2018
[xtrnaw7@t540p /var/tmp/jwm]$




Note:

The newest version of the script will always be available here : http://bnsmb.de/files/public/linux/exec_snoop_wrapper.sh



open_snoop_wrapper.sh


open_snoop_wrapper.sh is a wrapper script for the opensnoop script from the perftools

open_snoop_wrapper.sh prints some additional information about the processes that access the files to monitor (e.g. the parent process and the process tree if available)


open_snoop_wrapper.sh usage
[xtrnaw7@t540p /var/tmp/jwm]$ ./scripts/open_snoop_wrapper.sh -v -h
#[17.08.2018 18:04 ] ### open_snoop_wrapper.sh started at Fri Aug 17 18:04:09 CEST 2018
 open_snoop_wrapper.sh

 Function: monitor the acccess of a specific file
 
 Usage:    open_snoop_wrapper.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-y|--yes] [-n|--no] [-l|--logfile filename]
               [d{:dryrun_prefix}|--dryrun{:dryrun_prefix}] [-D|--debugshell] [-t fn|--tracefunc fn] [-L]
               [-T|--tee] [-V|--version] [--var name=value] [--appendlog] [--nologrotate] [--noSTDOUTlog]
               [--nocleanup] [-R regex] [-- [opensnoop_options]] [file_to_monitor]

 Parameter:
   file_to_monitor - file to monitor; this can be either a fully qualified file name, a filename without path, or a regex
                     The script will monitor the access to all files that match this parameter.
                    
   opensnoop_options - options for opensnoop (you may try "-s" or "-S" if the script does not get the filenames)

   Use the parameter "-v" to see all lines from opensnoop

   -R - additional regex pattern for the filename; this parameter can be used more then once

   -h - print the script usage; use -h and -v one or more times to print more help text
       
   -v - verbose mode; use -v -v to also print the runtime system messages
        (or set the environment variables VERBOSE to 0 and VERBOSE_LEVEL to the level 2 or more)
   -q - quiet mode (or set the environment variable QUIET to 0)
   -f - force execution (or set the environment variable FORCE to 0 )
   -y - answer yes to all questions
   -n - answer no to all questions
   -l - logfile to use; use -l none to not use a logfile at all
        the default logfile is /var/tmp/open_snoop_wrapper.sh.log
        also supported is the format "-l:filename"
   -d - dryrun mode, default dryrun_prefix is " "
        Use the parameter "-d:<dryrun_prefix>" or the syntax
        "PREFIX=<new dryrun_prefix> /var/tmp/jwm/scripts/open_snoop_wrapper.sh"
        to change the dryrun prefix
        The script will run in dryrun mode if the environment variable PREFIX
        is set. To disable that behaviour use the parameter "+d"
   -D - start a debug shell and continue the script afterwards
   -t - trace the function fn
        also supported is the format "-t:fn[,...,fn#]"
   -L - list all defined functions and end the script
        also supported is the format "-l:filename"
   -T - copy STDOUT and STDERR to the file /var/tmp/open_snoop_wrapper.sh.29076.tee.log
        using tee; set the environment variable __TEE_OUTPUT_FILE before
        calling the script to change the file used for the output of tee
   -V - print the script version and exit; use "-v -V" to print the
        template version also
   --var
      - set the variable "name" to the value "value"
        also supported is the format "--var:<varname>=<value>"
   --appendlog
      - append the messages to the logfile (default: overwrite an existing logfile)
        This parameter also sets --nologrotate
   --nologrotate
      - do not create a backup of an existing logfile
   --noSTDOUTlog
      - do not write STDOUT/STDERR to a file if /dev/tty is not a a device
   --nocleanup
       - do no house keeping at script end

 The default opensnoop to use is /var/tmp/jwm/scripts/opensnoop1.

 Set the environment variable OPENSNOOP before calling the script to use another version
 of the opensnoop script.

 The parameter "-R regex" can be used to select the files to monitor, e.g.

   open_snoop_wrapper.sh .profile

 will monitor the access to any file named ".profile" on the machine. To only
 monitor the files
 
 /home/group_csp/.profile
 /home/group_csp/myuser/.profile
 
 use
 
   open_snoop_wrapper.sh -R /home/group_csp/.profile -R /home/group_csp/myuser.profile .profile

Current environment: ksh version: 93 | change function code supported: yes | tracing feature using $0 supported: yes

 Parameter that toggle a switch from true to false or vice versa can
 be used with the plus sign (+) instead of minus (-) to invert the usage, e.g.
 
 The parameter \"-v\" enables the verbose mode; the parameter \"+v\" disables the verbose mode.

 All parameter are processed in the given order, e.g.

  /var/tmp/jwm/scripts/open_snoop_wrapper.sh -v +v
    -> verbose mode is now off

  /var/tmp/jwm/scripts/open_snoop_wrapper.sh +v -v
    -> verbose mode is now on

 Parameter are evaluated after the evaluation of the environment variables, e.g

 VERBOSE=0  /var/tmp/jwm/scripts/open_snoop_wrapper.sh
     -> verbose mode is now on

 VERBOSE=0  /var/tmp/jwm/scripts/open_snoop_wrapper.sh +v
     -> verbose mode is now off

 
 To disable one or more of the house keeping tasks you might set some variables
 either before starting the script or via the parameter --var name=value
 
 The defined variables are
 
  NO_EXIT_ROUTINES=0     # do not execute the exit routines if set to 0
  NO_TEMPFILES_DELETE=0  # do not delete temporary files if set to 0
  NO_TEMPDIR_DELETE=0    # do not delete temporary directories if set to 0
  NO_FINISH_ROUTINES=0   # do not execute the finish routines if set to 0
  NO_KILL_PROCS=0        # do not kill the processes if set to 0
 
Supported environment variables are:

  PREFIX - current value is ""
  __DEBUG_CODE - current value is ""
  __TEE_OUTPUT_FILE - current value is "/var/tmp/open_snoop_wrapper.sh.29076.tee.log"
  USE_ONLY_KSH88_FEATURES - current value is "1"
  BREAK_ALLOWED - current value is "DebugShell"
  EDITOR - current value is "/usr/bin/vi"
  PAGER - current value is "/usr/bin/less"
  LOGFILE - current value is "/var/tmp/open_snoop_wrapper.sh.log"
  FORCE - current value is "1"
  QUIET - current value is "1"
  VERBOSE - current value is "0"
  VERBOSE_LEVEL - current value is "1"
  RCM_SERVICE - current value is ""
  RCM_FUNCTION - current value is ""
  RCM_USERID - current value is ""
  RCM_PASSWORD - current value is ""
  OPENSNOOP - current value is "/var/tmp/jwm/scripts/opensnoop1"


 *** The usage help for opensnoop is

USAGE: opensnoop [-htx] [-d secs] [-p PID] [-n name] [filename]
                 -d seconds      # trace duration, and use buffers
                 -n name         # process name to match on I/O issue
                 -p PID          # PID to match on I/O issue
                 -t              # include time (seconds)
                 -x              # only show failed opens
                 -h              # this usage message
                 -S              # getname is a struct
                 -s              # getname is a char *
                 filename        # match filename (partials, REs, ok)
  eg,
       opensnoop                 # watch open()s live (unbuffered)
       opensnoop -d 1            # trace 1 sec (buffered)
       opensnoop -p 181          # trace I/O issued by PID 181 only
       opensnoop conf            # trace filenames containing "conf"
       opensnoop 'log$'          # filenames ending in "log"
See the man page and example file for more info.

If the script prints garbage for the filenames try it with the parameter -S or -s to force
the correct format for the getname probe.
(see https://www.bountysource.com/issues/6855234-opensnoop-outputs-unicode-giberish-for-file-names-on-centos6)


---------------------------------------------------------------------- 
*** If you get the error message:

/var/tmp/jwm/scripts/opensnoop1: line 186: echo: write error: Device or resource busy
ERROR: adding a kprobe for getname(). Exiting.

Wait some seconds and try the script again.
---------------------------------------------------------------------- 

[17.08.2018 18:04 ] ### open_snoop_wrapper.sh ended at Fri Aug 17 18:04:09 CEST 2018
[xtrnaw7@t540p /var/tmp/jwm]$


Note:

The newest version of the script will always be available here : http://bnsmb.de/files/public/linux/open_snoop_wrapper.sh



opensnoop1

opensnoop1 is a patched version of the opensnoop script from the perftools

On some Linux 2.6 versions the original opensnoop script prints garbage for the filenames. This is caused by a change of the usage for the getname kprobe.
(see https://www.bountysource.com/issues/6855234-opensnoop-outputs-unicode-giberish-for-file-names-on-centos6)

The original script selects the type of getname depending on the Linux version running. But that does not always work.
To get around this issue I added the parameter -s and -S so that the  user can select the type for getname.

I also added  "fflush(stdout)" to the awk code so that the script also works if STDOUT is redirected to a file or pipe.


opensnoop1 usage
[xtrnaw7@t540p /var/tmp/jwm]$  scripts/opensnoop1  -h
USAGE: opensnoop [-htx] [-d secs] [-p PID] [-n name] [filename]
                 -d seconds      # trace duration, and use buffers
                 -n name         # process name to match on I/O issue
                 -p PID          # PID to match on I/O issue
                 -t              # include time (seconds)
                 -x              # only show failed opens
                 -h              # this usage message
                 -S              # getname is a struct
                 -s              # getname is a char *

                 filename        # match filename (partials, REs, ok)
  eg,
       opensnoop                 # watch open()s live (unbuffered)
       opensnoop -d 1            # trace 1 sec (buffered)
       opensnoop -p 181          # trace I/O issued by PID 181 only
       opensnoop conf            # trace filenames containing "conf"
       opensnoop 'log$'          # filenames ending in "log"
See the man page and example file for more info.

If the script prints garbage for the filenames try it with the parameter -S or -s to force
the correct format for the getname probe.
(see https://www.bountysource.com/issues/6855234-opensnoop-outputs-unicode-giberish-for-file-names-on-centos6)



Note:

The newest version of the script will always be available here : http://bnsmb.de/files/public/linux/opensnoop1



pigz


pigz is a parallel gzip compatible compression program; usage is :

pigz usage
[xtrnaw7@t540p /var/tmp/jwm/src/pigz-2.4]$ ./pigz  -h
Usage: pigz [options] [files ...]
  will compress files in place, adding the suffix '.gz'. If no files are
  specified, stdin will be compressed to stdout. pigz does what gzip does,
  but spreads the work over multiple processors and cores when compressing.

Options:
  -0 to -9, -11        Compression level (level 11, zopfli, is much slower)
  --fast, --best       Compression levels 1 and 9 respectively
  -b, --blocksize mmm  Set compression block size to mmmK (default 128K)
  -c, --stdout         Write all processed output to stdout (won't delete)
  -d, --decompress     Decompress the compressed input
  -f, --force          Force overwrite, compress .gz, links, and to terminal
  -F  --first          Do iterations first, before block split for -11
  -h, --help           Display a help screen and quit
  -i, --independent    Compress blocks independently for damage recovery
  -I, --iterations n   Number of iterations for -11 optimization
  -J, --maxsplits n    Maximum number of split blocks for -11
  -k, --keep           Do not delete original file after processing
  -K, --zip            Compress to PKWare zip (.zip) single entry format
  -l, --list           List the contents of the compressed input
  -L, --license        Display the pigz license and quit
  -m, --no-time        Do not store or restore mod time
  -M, --time           Store or restore mod time
  -n, --no-name        Do not store or restore file name or mod time
  -N, --name           Store or restore file name and mod time
  -O  --oneblock       Do not split into smaller blocks for -11
  -p, --processes n    Allow up to n compression threads (default is the
                       number of online processors, or 8 if unknown)
  -q, --quiet          Print no messages, even on error
  -r, --recursive      Process the contents of all subdirectories
  -R, --rsyncable      Input-determined block locations for rsync
  -S, --suffix .sss    Use suffix .sss instead of .gz (for compression)
  -t, --test           Test the integrity of the compressed input
  -v, --verbose        Provide more verbose output
  -V  --version        Show the version of pigz
  -Y  --synchronous    Force output file write to permanent storage
  -z, --zlib           Compress to zlib (.zz) instead of gzip format
  --                   All arguments after "--" are treated as files
[xtrnaw7@t540p /var/tmp/jwm/src/pigz-2.4]$




pktstat


pktstat displays a real-time list of active connections seen on a network interface, and how much bandwidth is being used by what.

pktstat usage

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ pktstat -h
pktstat: invalid option -- 'h'
pktstat version 1.8.5
usage: pktstat [-BcFlnpPtT] [-i interface] [-k keeptime] [-m maxbps] [-w wait] [-a abbrev] [-A file] [filter-expr]








powertop


powertop is a tool to monitor the power usage of a system. powertop is most usefull on machines with power management like for example Notebooks.


powertop usage
[xtrnaw7@t540p /var/tmp/jwm/src/powertop-v2.9]$ ./src/powertop -h
Usage: powertop [OPTIONS]

     --auto-tune     sets all tunable options to their GOOD setting
 -c, --calibrate     runs powertop in calibration mode
 -C, --csv[=filename]     generate a csv report
     --debug         run in "debug" mode
     --extech[=devnode]     uses an Extech Power Analyzer for measurements
 -r, --html[=filename]     generate a html report
 -i, --iteration[=iterations] number of times to run each test
 -q, --quiet         suppress stderr output
 -s, --sample[=seconds]     interval for power consumption measurement
 -t, --time[=seconds]     generate a report for 'x' seconds
 -w, --workload[=workload] file to execute for workload
 -V, --version         print version information
 -h, --help         print this help menu

For more help please refer to the 'man 8 powertop'

[xtrnaw7@t540p /var/tmp/jwm/src/powertop-v2.9]$







powerstat


"Powerstat measures the power consumption of a machine using the battery stats or the Intel RAPL interface. The output is like vmstat but also shows power consumption statistics. At the end of a run, powerstat will calculate the average, standard deviation and min/max of the gathered data."

powerstat usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bin/powerstat -h
powerstat, version 0.02.10

usage: bin/powerstat [options] [delay [count]]
    -a enable all sampling collection options (-c, -f, -t and -H)
    -b redo a sample if a system is busy, considered less than 98% CPU idle
    -c show C-State statistics at end of the run
    -d specify delay before starting, default is 180 seconds
    -D show RAPL domain power measurements (enables -R option)
    -f show average CPU frequency
    -g show GPU power (currently just i915)
    -h show help
    -H show spread of measurements with power histogram
    -i specify CPU idle threshold, used in conjunction with -b
    -n no printing of table heading when screen scrolls
    -p redo a sample if we see process fork/exec/exit activity
    -r redo a sample if busy and we see process activity (same as -b -p)
    -R gather stats from Intel RAPL interface
    -s show process fork/exec/exit activity log
    -S calculate power from capacity drain using standard average
    -t show Thermal Zone temperatures (in degrees C)
    -z forcibly ignore zero power rate stats from the battery
    delay: delay between each sample, default is 10.0 seconds
    count: number of samples to take
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



powerstat example
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo ./bin/powerstat  -c -g -d 10 -S -t  1 470
Running for 470.0 seconds (470 samples at 1.0 second intervals).
Power measurements will start in 10 seconds time.

  Time    User  Nice   Sys  Idle    IO  Run Ctxt/s  IRQ/s Fork Exec Exit  Watts  x86_pk acpitz  GPU W
21:36:29   0.4   0.0   0.4  99.2   0.0    1   1899    597    2    1    2  19.91   48.00  48.00  -N/A-
21:36:30   0.5   0.0   0.3  99.0   0.3    1   1716    639    1    1    1  19.91   48.00  48.00  -N/A-
21:36:31   0.5   0.0   0.4  99.0   0.1    1   2148    675    2    1    2  19.93   48.00  48.00  -N/A-
21:36:32   0.8   0.0   0.3  99.0   0.0    1   1934    678    6    4    6  19.93   48.00  48.00  -N/A-
21:36:33   0.5   0.0   0.4  99.1   0.0    1   1741    632    3    2    3  19.93   48.00  48.00  -N/A-
21:36:34   0.5   0.0   0.4  99.1   0.0    1   1900    642    2    1    2  19.93   48.00  48.00  -N/A-
21:36:35   0.9   0.0   0.5  98.5   0.1    1   2140    735    1    1    1  19.97   49.00  48.00  -N/A-
21:36:36   0.9   0.0   0.7  98.4   0.0    1   2664    806    2    1    2  19.97   48.00  48.00  -N/A-
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------  ------ ------ ------
 Average   0.6   0.0   0.4  98.9   0.1  1.0 2017.8  675.5  2.4  1.5  2.4  19.94   48.12  48.00  -N/A-
  StdDev   0.2   0.0   0.1   0.3   0.1  0.0  285.5   62.3  1.5  1.0  1.5   0.02    0.33   0.00  -N/A-
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------  ------ ------ ------
 Minimum   0.4   0.0   0.3  98.4   0.0  1.0 1716.0  597.0  1.0  1.0  1.0  19.91   48.00  48.00  -N/A-
 Maximum   0.9   0.0   0.7  99.2   0.3  1.0 2664.0  806.0  6.0  4.0  6.0  19.97   49.00  48.00  -N/A-
-------- ----- ----- ----- ----- ----- ---- ------ ------ ---- ---- ---- ------  ------ ------ ------
Summary:
System:  19.94 Watts on average with standard deviation 0.02 
GPU:   0.00 Watts on average with standard deviation 0.00 
Note: The battery supplied suitable power data, -S option not required.

C-State    Resident      Count Latency
C7s-HSW     97.280%       7873     166
C6-HSW       0.088%        100     133
C3-HSW       0.192%        379      33
C1E-HSW      0.454%        217      10
C1-HSW       0.840%        238       2
POLL         0.000%          3       0
C0           1.145%
^C[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





procdump

ProcDump is a Linux reimagining of the classic ProcDump tool from the Sysinternals suite of tools for Windows. ProcDump provides a convenient way for Linux developers to create core dumps of their application based on performance triggers.


procdump usage
[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/procdump -h

ProcDump v1.1.1 - Sysinternals process dump utility
Copyright (C) 2019 Microsoft Corporation. All rights reserved. Licensed under the MIT license.
Mark Russinovich, Mario Hewardt, John Salem, Javid Habibi
Monitors a process and writes a dump file when the process exceeds the
specified criteria.


Usage: procdump [OPTIONS...] TARGET
   OPTIONS
      -h          Prints this help screen
      -C          Trigger core dump generation when CPU exceeds or equals specified value (0 to 100 * nCPU)
      -c          Trigger core dump generation when CPU is less than specified value (0 to 100 * nCPU)
      -M          Trigger core dump generation when memory commit exceeds or equals specified value (MB)
      -m          Trigger core dump generation when when memory commit is less than specified value (MB)
      -T          Trigger when thread count exceeds or equals specified value.
      -F          Trigger when filedescriptor count exceeds or equals specified value.
      -I          Polling frequency in milliseconds (default is 1000)
      -n          Number of core dumps to write before exiting (default is 1)
      -s          Consecutive seconds before dump is written (default is 10)
      -d          Writes diagnostic logs to syslog
   TARGET must be exactly one of these:
      -p          pid of the process
      -w          Name of the process executable

[xtrnaw7@t540p /var/tmp/jwm/src]$


 



pspy


"pspy is a command line tool designed to snoop on processes without need for root permissions. It allows you to see commands run by other users, cron jobs, etc. as they execute. Great for enumeration of Linux systems in CTFs. Also great to demonstrate your colleagues why passing secrets as arguments on the command line is a bad idea."

pspy usage
[xtrnaw7@t540p /var/tmp/jwm]$ ./bin1/pspy64 -h
pspy - version: v1.2.0 - Commit SHA: 9c63e5d6c58f7bcdc235db663f5e3fe1c33b8855


     ██▓███    ██████  ██▓███ ▓██   ██▓
    ▓██░  ██▒▒██    ▒ ▓██░  ██▒▒██  ██▒
    ▓██░ ██▓▒░ ▓██▄   ▓██░ ██▓▒ ▒██ ██░
    ▒██▄█▓▒ ▒  ▒   ██▒▒██▄█▓▒ ▒ ░ ▐██▓░
    ▒██▒ ░  ░▒██████▒▒▒██▒ ░  ░ ░ ██▒▓░
    ▒▓▒░ ░  ░▒ ▒▓▒ ▒ ░▒▓▒░ ░  ░  ██▒▒▒
    ░▒ ░     ░ ░▒  ░ ░░▒ ░     ▓██ ░▒░
    ░░       ░  ░  ░  ░░       ▒ ▒ ░░ 
                   ░           ░ ░    
                               ░ ░

Usage:
  pspy [flags]

Flags:
  -c, --color                        color the printed events (default true)
      --debug                        print detailed error messages
  -d, --dirs stringArray             watch these dirs
  -f, --fsevents                     print file system events to stdout
  -h, --help                         help for pspy
  -i, --interval int                 scan every 'interval' milliseconds for new processes (default 100)
  -p, --procevents                   print new processes to stdout (default true)
  -r, --recursive_dirs stringArray   watch these dirs recursively (default [/usr,/tmp,/etc,/home,/var,/opt])
[xtrnaw7@t540p /var/tmp/jwm]$

 



prtdiag

prtdiag is a simple script to list the hardware configuration of a machine.

prtdiag usage
[xtrnaw7@t540p /var/tmp/jwm/src/prtdiag-1.2]$  ./prtdiag -h
usage:  prtdiag [-AacCdefhis] [-o <filename>]

Available command line options:
    -a        Show all (default)
    -c        Show CPU Info
    -C        Temperatures in Celsius (default)
    -d        Show IDE Device Info
    -e        Show Environmental Info
    -f        Temperatures in Fahrenheit
    -h        this help
    -i        Show IO Device Info
    -o filename    Output to file
    -s        Show SCSI Device Info
    -v        Output version information and exit


prtdiag example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ sudo bin/prtdiag
*** lm_sensors was NOT found. ***
*** Get lm_sensors from http://www2.lm-sensors.nu/~lm78/ or your Linux vendor. ***
*** System information will be limited. ***

System Hostname: t540p
Time of Report: Wed Oct 26 20:23:03 CEST 2016
System Configuration: [x86_64] Unknown Vendor Unknown Model (8 X Intel(R) Core(TM) i7-4900MQ CPU @ 2.80GHz 3659.790 MHz)
System clock frequency: UNKNOWN (no APIC in kernel?)
Memory size (approximate): 15625 Megabytes

========================= CPUs ========================

 CPU #        CPU MHz     CACHE (KB)     Bogomips
-------       ---------   ------------   ----------
   0        3617.578      8192 KB   
   1        3674.316      8192 KB   
   2        3623.217      8192 KB   
   3        3632.446      8192 KB   
   4        3651.245      8192 KB   
   5        3622.021      8192 KB   
   6        3633.300      8192 KB   
   7        3608.691      8192 KB   

====================== IO Devices =====================

***** No PCI or ISA buses found! *****

====================== IDE Devices ======================

*** No IDE channels present, hence no devices! ***

===================== SCSI Devices ======================

Host/Channel/ID/LUN     Vendor          Model          Type
-------------------    --------    ---------    --------
scsi0 / 0 / 00 / 00    ATA        Samsung        Direct-Access
scsi4 / 0 / 00 / 00    ATA        SanDisk        Direct-Access
scsi5 / 0 / 00 / 00    HL-DT-ST    DVDRAM        CD-ROM
scsi6 / 0 / 00 / 00    ASMedia        AS2115        Direct-Access

================== Environmental Status =================

*** Unable to provide Environmental Status Data. ***


[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




scanlogd


"scanlogd is a TCP port scan detection tool, originally designed to illustrate various attacks an IDS developer has to deal with, for a Phrack Magazine article. Thus, unlike some of the other port scan detection tools out there, scanlogd is designed to be totally safe to use.

This release of scanlogd can be built with support for one of several packet capture interfaces. In addition to the raw socket interface on Linux (which does not require any libraries), scanlogd is now aware of libnids and libpcap."

The compile script in JWM / Linux compiles scanlogd using Linux raw sockets. The user used for the daemon is the root user (so that the compiled binary can run ony any machine). To change the user for the scanlogd daemon
uncomment the line

#define SCANLOGD_USER            "scanlogd"

in the file

params.h

before compiling scanlogd

Logging is done with a syslog facility of daemon and a priority level alert.

scanlogd usage
./scanlogd



scanlogd example

# message written by the daemon
#

[xtrnaw7@t540p ~]$ sudo tail -f /var/log/alert
Apr 21 13:53:41 t540p scanlogd[27224]: 127.0.0.1 to 127.0.0.1 ports 80, 443, 8080, 22, 25, 110, 1720, 3306, ..., f??p?uxy, TOS 00, TTL 64 @13:53:41





screen


I think I do not have to say anything about screen -- that's the most useful tool for Unix non-GUI sessions at all.



smartmontools


"smartmontools contains utility programs (smartctl, smartd) to control/monitor storage systems using the Self-Monitoring, Analysis and Reporting Technology System (S.M.A.R.T.) built into most modern ATA and SCSI disks. It is derived from smartsuite."



smem


"smem is a tool that can give numerous reports on memory usage on Linux systems. Unlike existing tools, smem can report proportional set size (PSS), which is a more meaningful representation of the amount of memory used by libraries and applications in a virtual memory system.

Because large portions of physical memory are typically shared among multiple applications, the standard measure of memory usage known as resident set size (RSS) will significantly overestimate memory usage. PSS instead measures each application's "fair share" of each shared area to give a realistic measure.

smem has many features:

  • system overview listing
  • listings by process, mapping, user
  • filtering by process, mapping, or user
  • configurable columns from multiple data sources
  • configurable output units and percentages
  • configurable headers and totals
  • reading live data from /proc
  • reading data snapshots from directory mirrors or compressed tarballs
  • lightweight capture tool for embedded systems
  • built-in chart generation

smem has a few requirements:

  • a reasonably modern kernel (> 2.6.27 or so)
  • a reasonably recent version of Python (2.4 or so)
  • the matplotlib library for chart generation (optional, auto-detected)"


Using smem

Show basic process information smem
Show library-oriented view smem -m
Show user-oriented view smem -u
Show system view smem -R 4G -K /path/to/vmlinux -w
Show totals and percentages smem -t -p
Show different columns smem -c "name user pss"
Sort by reverse RSS smem -s rss -r
Show processes filtered by mapping smem -M libxml
Show mappings filtered by process smem -m -P [e]volution
Read data from capture tarball smem --source capture.tar.gz
Show a bar chart labeled by pid smem --bar pid -c "pss uss"
Show a pie chart of RSS labeled by name smem --pie name -s rss


Notes

To install matplotlib do:

Fedora users can install it by running the command:

    $ sudo yum install python-matplotlib

While Ubuntu users can get it by running:

    $ sudo apt-get install python-matplotlib



smemstat

"Smemstat reports the physical memory usage taking into consideration shared memory. The tool can either report a current snapshot of memory usage or periodically dump out any changes in memory. "

smemstat usage
[xtrnaw7@t540p /var/tmp/jwm/src/smemstat-0.02.01]$ ./smemstat -h
smemstat, version 0.02.01

Usage: smemstat [options] [duration] [count]
Options are:
  -c        get command name from processes comm field
  -d        strip directory basename off command information
  -g        report memory in gigabytes
  -h        show this help information
  -k        report memory in kilobytes
  -l        show long (full) command information
  -m        report memory in megabytes
  -o file    dump data to json formatted file
  -p proclist    specify comma separated list of processes to monitor
  -q        run quietly, useful for -o output only
  -s        show short command information
  -t        top mode, show only changes in memory
  -T        top mode, show top memory hoggers
[xtrnaw7@t540p /var/tmp/jwm/src/smemstat-0.02.01]$



smemstat example

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ smemstat -l -m 1  5
Change in memory (average per second):
  PID       Swap       USS       PSS       RSS User       Command
 10318     0.000     0.078     0.078     0.078 xtrnaw7    smemstat -l -m 1 5
 14040     0.000    -0.012    -0.012    -0.012 xtrnaw7    /usr/lib64/firefox/firefox
Total:     0.000     0.066     0.066     0.066

  PID       Swap       USS       PSS       RSS User       Command
 14040     0.000     0.020     0.020     0.020 xtrnaw7    /usr/lib64/firefox/firefox
 15979     0.000     0.000     0.001     0.000 xtrnaw7    gedit
 10311     0.000    -0.117    -0.131    -1.672 xtrnaw7    sleep 5
 30834     0.000     0.000    -0.001     0.000 xtrnaw7    bash
Total:     0.000    -0.098    -0.111    -3.324

  PID       Swap       USS       PSS       RSS User       Command
 10326     0.000     0.117     0.129     1.613 xtrnaw7    sleep 5
 14040     0.000    -0.004    -0.004    -0.004 xtrnaw7    /usr/lib64/firefox/firefox
Total:     0.000     0.113     0.125     1.609

  PID       Swap       USS       PSS       RSS User       Command
 14040     0.000     0.113     0.113     0.113 xtrnaw7    /usr/lib64/firefox/firefox
Total:     0.000     0.113     0.113     0.113

  PID       Swap       USS       PSS       RSS User       Command
 14040     0.000     0.762     0.762     0.762 xtrnaw7    /usr/lib64/firefox/firefox
Total:     0.000     0.762     0.762     0.762

Note: Memory reported in units of megabytes.
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$





sockperf


sockperf is a network benchmarking utility over socket API that was designed for testing performance (latency and throughput) of high-performance systems (it is also good for testing performance of regular networking systems as well). It covers most of the socket API calls and options.

sockperf usage
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf --help
sockperf is a tool for testing network latency and throughput.
version 3.5-no.git

Usage: sockperf <subcommand> [options] [args]
Type: 'sockperf <subcommand> --help' for help on a specific subcommand.
Type: 'sockperf --version' to see the program version number.

Available subcommands:
   help (h ,?)             Display list of supported commands.
   under-load (ul)         Run sockperf client for latency under load test.
   ping-pong (pp)          Run sockperf client for latency test in ping pong mode.
   playback (pb)           Run sockperf client for latency test using playback of predefined traffic, based on timeline and message size.
   throughput (tp)         Run sockperf client for one way throughput test.
   server (sr)             Run sockperf as a server.

For additional information visit our website http://github.com/mellanox/sockperf , see README file, or Type 'sockperf <subcommand> --help'.

[xtrnaw7@t540p /var/tmp/jwm/bin]$


sockperf ul --help
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf ul --help
under-load (ul): Run sockperf client for latency under load test.

Usage: sockperf under-load [options] [args]...
 sockperf under-load -i ip  [-p port] [-m message_size] [-t time] [--data_integrity]
 sockperf under-load -f file [-F s/p/e] [-m message_size] [-r msg_size_range] [-t time]

Options:
 -h,-?   --help,--usage           -Show the help message and exit.
         --tcp                    -Use TCP protocol (default UDP).
 -i      --ip                     -Listen on/send to ip <ip>.
 -p      --port                   -Listen on/connect to port <port> (default 11111).
 -f      --file                   -Read list of connections from file (used in pair with -F option).
 -F      --iomux-type             -Type of multiple file descriptors handle [s|select|p|poll|e|epoll|r|recvfrom|x|socketxtreme](default epoll).
         --timeout                -Set select/poll/epoll timeout to <msec>, -1 for infinite (default is 10 msec).
 -a      --activity               -Measure activity by printing a '.' for the last <N> messages processed.
 -A      --Activity               -Measure activity by printing the duration for last <N>  messages processed.
         --tcp-avoid-nodelay      -Stop/Start delivering TCP Messages Immediately (Enable/Disable Nagel). Default is Nagel Disabled except in Throughput where the default is Nagel enabled.
         --tcp-skip-blocking-send
                                  -Enables non-blocking send operation (default OFF).
         --tos                    -Allows setting tos
         --mc-rx-if               -Set address <ip> of interface on which to receive mulitcast messages (can be other then route table).
         --mc-tx-if               -Set address <ip> of interface on which to transmit mulitcast messages (can be other then route table).
         --mc-loopback-enable     -Enables mc loopback (default disabled).
         --mc-ttl                 -Limit the lifetime of the message (default 2).
         --mc-source-filter       -Set address <ip, hostname> of mulitcast messages source which is allowed to receive from.
         --uc-reuseaddr           -Enables unicast reuse address (default disabled).
         --lls                    -Turn on LLS via socket option (value = usec to poll).
         --buffer-size            -Set total socket receive/send buffer <size> in bytes (system defined by default).
         --nonblocked             -Open non-blocked sockets.
         --recv_looping_num       -Set sockperf to loop over recvfrom() until EAGAIN or <N> good received packets, -1 for infinite, must be used with --nonblocked (default 1).
         --dontwarmup             -Don't send warm up messages on start.
         --pre-warmup-wait        -Time to wait before sending warm up messages (seconds).
         --vmazcopyread           -Use VMA's zero copy reads API (See VMA's readme).
         --daemonize              -Run as daemon.
         --no-rdtsc               -Don't use register when taking time; instead use monotonic clock.
         --load-vma               -Load VMA dynamically even when LD_PRELOAD was not used.
         --rate-limit             -use rate limit (packet-pacing), with VMA must be run with VMA_RING_ALLOCATION_LOGIC_TX mode.
         --set-sock-accl          -Set socket accleration before run (available for some of Mellanox systems)
 -d      --debug[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf ul --help
under-load (ul): Run sockperf client for latency under load test.

Usage: sockperf under-load [options] [args]...
 sockperf under-load -i ip  [-p port] [-m message_size] [-t time] [--data_integrity]
 sockperf under-load -f file [-F s/p/e] [-m message_size] [-r msg_size_range] [-t time]

Options:
                  -Print extra debug information.

Valid arguments:
         --srv-num                -Set num of servers the client works with to N.
         --sender-affinity        -Set sender thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --receiver-affinity      -Set receiver thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --full-log               -Dump full log of all messages send/receive time to the given file in CSV format.
         --giga-size              -Print sizes in GigaByte.
         --increase_output_precision
                                  -Increase number of digits after decimal point of the throughput output (from 3 to 9).
         --dummy-send             -Use VMA's dummy send API instead of busy wait, must be higher than regular msg rate.
                 optional: set dummy-send rate per second (default 10,000), usage: --dummy-send [<rate>|max]
 -t      --time                   -Run for <sec> seconds (default 1, max = 36000000).
         --client_port            -Force the client side to bind to a specific port (default = 0).
         --client_ip              -Force the client side to bind to a specific ip address (default = 0).
 -b      --burst                  -Control the client's number of a messages sent in every burst.
         --reply-every            -Set number of send messages between reply messages (default = 100).
         --mps                    -Set number of messages-per-second (default = 10000 - for under-load mode, or max - for ping-pong and throughput modes; for maximum use --mps=max;
                 support --pps for old compatibility).
 -m      --msg-size               -Use messages of size <size> bytes (minimum default 14).
 -r      --range                  -comes with -m <size>, randomly change the messages size in range: <size> +- <N>.

[xtrnaw7@t540p /var/tmp/jwm/bin]$
 


sockperf pp --help
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf pp --help
ping-pong (pp): Run sockperf client for latency test in ping pong mode.

Usage: sockperf ping-pong [options] [args]...
 sockperf ping-pong -i ip  [-p port] [-m message_size] [-t time]
 sockperf ping-pong -f file [-F s/p/e] [-m message_size] [-r msg_size_range] [-t time]

Options:
 -h,-?   --help,--usage           -Show the help message and exit.
         --tcp                    -Use TCP protocol (default UDP).
 -i      --ip                     -Listen on/send to ip <ip>.
 -p      --port                   -Listen on/connect to port <port> (default 11111).
 -f      --file                   -Read list of connections from file (used in pair with -F option).
 -F      --iomux-type             -Type of multiple file descriptors handle [s|select|p|poll|e|epoll|r|recvfrom|x|socketxtreme](default epoll).
         --timeout                -Set select/poll/epoll timeout to <msec>, -1 for infinite (default is 10 msec).
 -a      --activity               -Measure activity by printing a '.' for the last <N> messages processed.
 -A      --Activity               -Measure activity by printing the duration for last <N>  messages processed.
         --tcp-avoid-nodelay      -Stop/Start delivering TCP Messages Immediately (Enable/Disable Nagel). Default is Nagel Disabled except in Throughput where the default is Nagel enabled.
         --tcp-skip-blocking-send
                                  -Enables non-blocking send operation (default OFF).
         --tos                    -Allows setting tos
         --mc-rx-if               -Set address <ip> of interface on which to receive mulitcast messages (can be other then route table).
         --mc-tx-if               -Set address <ip> of interface on which to transmit mulitcast messages (can be other then route table).
         --mc-loopback-enable     -Enables mc loopback (default disabled).
         --mc-ttl                 -Limit the lifetime of the message (default 2).
         --mc-source-filter       -Set address <ip, hostname> of mulitcast messages source which is allowed to receive from.
         --uc-reuseaddr           -Enables unicast reuse address (default disabled).
         --lls                    -Turn on LLS via socket option (value = usec to poll).
         --buffer-size            -Set total socket receive/send buffer <size> in bytes (system defined by default).
         --nonblocked             -Open non-blocked sockets.
         --recv_looping_num       -Set sockperf to loop over recvfrom() until EAGAIN or <N> good received packets, -1 for infinite, must be used with --nonblocked (default 1).
         --dontwarmup             -Don't send warm up messages on start.
         --pre-warmup-wait        -Time to wait before sending warm up messages (seconds).
         --vmazcopyread           -Use VMA's zero copy reads API (See VMA's readme).
         --daemonize              -Run as daemon.
         --no-rdtsc               -Don't use register when taking time; instead use monotonic clock.
         --load-vma               -Load VMA dynamically even when LD_PRELOAD was not used.
         --rate-limit             -use rate limit (packet-pacing), with VMA must be run with VMA_RING_ALLOCATION_LOGIC_TX mode.
         --set-sock-accl          -Set socket accleration before run (available for some of Mellanox systems)
 -d      --debug                  -Print extra debug information.

Valid arguments:
         --srv-num                -Set num of servers the client works with to N.
         --sender-affinity        -Set sender thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --receiver-affinity      -Set receiver thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --full-log               -Dump full log of all messages send/receive time to the given file in CSV format.
         --giga-size              -Print sizes in GigaByte.
         --increase_output_precision
                                  -Increase number of digits after decimal point of the throughput output (from 3 to 9).
         --dummy-send             -Use VMA's dummy send API instead of busy wait, must be higher than regular msg rate.
                 optional: set dummy-send rate per second (default 10,000), usage: --dummy-send [<rate>|max]
 -t      --time                   -Run for <sec> seconds (default 1, max = 36000000).
         --client_port            -Force the client side to bind to a specific port (default = 0).
         --client_ip              -Force the client side to bind to a specific ip address (default = 0).
 -b      --burst                  -Control the client's number of a messages sent in every burst.
         --mps                    -Set number of messages-per-second (default = 10000 - for under-load mode, or max - for ping-pong and throughput modes; for maximum use --mps=max;
                 support --pps for old compatibility).
 -m      --msg-size               -Use messages of size <size> bytes (minimum default 14).
 -r      --range                  -comes with -m <size>, randomly change the messages size in range: <size> +- <N>.
         --data-integrity         -Perform data integrity test.

[xtrnaw7@t540p /var/tmp/jwm/bin]$
 


sockperf pb --help
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf pb --help
playback (pb): Run sockperf client for latency test using playback of predefined traffic, based on timeline and message size.

Usage: sockperf playback [options] [args]...
 sockperf playback -i ip  [-p port] --data-file playback.csv

Options:
 -h,-?   --help,--usage           -Show the help message and exit.
         --tcp                    -Use TCP protocol (default UDP).
 -i      --ip                     -Listen on/send to ip <ip>.
 -p      --port                   -Listen on/connect to port <port> (default 11111).
 -f      --file                   -Read list of connections from file (used in pair with -F option).
 -F      --iomux-type             -Type of multiple file descriptors handle [s|select|p|poll|e|epoll|r|recvfrom|x|socketxtreme](default epoll).
         --timeout                -Set select/poll/epoll timeout to <msec>, -1 for infinite (default is 10 msec).
 -a      --activity               -Measure activity by printing a '.' for the last <N> messages processed.
 -A      --Activity               -Measure activity by printing the duration for last <N>  messages processed.
         --tcp-avoid-nodelay      -Stop/Start delivering TCP Messages Immediately (Enable/Disable Nagel). Default is Nagel Disabled except in Throughput where the default is Nagel enabled.
         --tcp-skip-blocking-send
                                  -Enables non-blocking send operation (default OFF).
         --tos                    -Allows setting tos
         --mc-rx-if               -Set address <ip> of interface on which to receive mulitcast messages (can be other then route table).
         --mc-tx-if               -Set address <ip> of interface on which to transmit mulitcast messages (can be other then route table).
         --mc-loopback-enable     -Enables mc loopback (default disabled).
         --mc-ttl                 -Limit the lifetime of the message (default 2).
         --mc-source-filter       -Set address <ip, hostname> of mulitcast messages source which is allowed to receive from.
         --uc-reuseaddr           -Enables unicast reuse address (default disabled).
         --lls                    -Turn on LLS via socket option (value = usec to poll).
         --buffer-size            -Set total socket receive/send buffer <size> in bytes (system defined by default).
         --nonblocked             -Open non-blocked sockets.
         --recv_looping_num       -Set sockperf to loop over recvfrom() until EAGAIN or <N> good received packets, -1 for infinite, must be used with --nonblocked (default 1).
         --dontwarmup             -Don't send warm up messages on start.
         --pre-warmup-wait        -Time to wait before sending warm up messages (seconds).
         --vmazcopyread           -Use VMA's zero copy reads API (See VMA's readme).
         --daemonize              -Run as daemon.
         --no-rdtsc               -Don't use register when taking time; instead use monotonic clock.
         --load-vma               -Load VMA dynamically even when LD_PRELOAD was not used.
         --rate-limit             -use rate limit (packet-pacing), with VMA must be run with VMA_RING_ALLOCATION_LOGIC_TX mode.
         --set-sock-accl          -Set socket accleration before run (available for some of Mellanox systems)
 -d      --debug                  -Print extra debug information.

Valid arguments:
         --srv-num                -Set num of servers the client works with to N.
         --sender-affinity        -Set sender thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --receiver-affinity      -Set receiver thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --full-log               -Dump full log of all messages send/receive time to the given file in CSV format.
         --giga-size              -Print sizes in GigaByte.
         --increase_output_precision
                                  -Increase number of digits after decimal point of the throughput output (from 3 to 9).
         --dummy-send             -Use VMA's dummy send API instead of busy wait, must be higher than regular msg rate.
                 optional: set dummy-send rate per second (default 10,000), usage: --dummy-send [<rate>|max]
         --reply-every            -Set number of send messages between reply messages (default = 100).
         --data-file              -Pre-prepared CSV file with timestamps and message sizes.

[xtrnaw7@t540p /var/tmp/jwm/bin]$
 


sockperf tp --help
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf tp --help
throughput (tp): Run sockperf client for one way throughput test.

Usage: sockperf throughput [options] [args]...
 sockperf throughput -i ip  [-p port] [-m message_size] [-t time]
 sockperf throughput -f file [-F s/p/e] [-m message_size] [-r msg_size_range] [-t time]

Options:
 -h,-?   --help,--usage           -Show the help message and exit.
         --tcp                    -Use TCP protocol (default UDP).
 -i      --ip                     -Listen on/send to ip <ip>.
 -p      --port                   -Listen on/connect to port <port> (default 11111).
 -f      --file                   -Read list of connections from file (used in pair with -F option).
 -F      --iomux-type             -Type of multiple file descriptors handle [s|select|p|poll|e|epoll|r|recvfrom|x|socketxtreme](default epoll).
         --timeout                -Set select/poll/epoll timeout to <msec>, -1 for infinite (default is 10 msec).
 -a      --activity               -Measure activity by printing a '.' for the last <N> messages processed.
 -A      --Activity               -Measure activity by printing the duration for last <N>  messages processed.
         --tcp-avoid-nodelay      -Stop/Start delivering TCP Messages Immediately (Enable/Disable Nagel). Default is Nagel Disabled except in Throughput where the default is Nagel enabled.
         --tcp-skip-blocking-send
                                  -Enables non-blocking send operation (default OFF).
         --tos                    -Allows setting tos
         --mc-rx-if               -Set address <ip> of interface on which to receive mulitcast messages (can be other then route table).
         --mc-tx-if               -Set address <ip> of interface on which to transmit mulitcast messages (can be other then route table).
         --mc-loopback-enable     -Enables mc loopback (default disabled).
         --mc-ttl                 -Limit the lifetime of the message (default 2).
         --mc-source-filter       -Set address <ip, hostname> of mulitcast messages source which is allowed to receive from.
         --uc-reuseaddr           -Enables unicast reuse address (default disabled).
         --lls                    -Turn on LLS via socket option (value = usec to poll).
         --buffer-size            -Set total socket receive/send buffer <size> in bytes (system defined by default).
         --nonblocked             -Open non-blocked sockets.
         --recv_looping_num       -Set sockperf to loop over recvfrom() until EAGAIN or <N> good received packets, -1 for infinite, must be used with --nonblocked (default 1).
         --dontwarmup             -Don't send warm up messages on start.
         --pre-warmup-wait        -Time to wait before sending warm up messages (seconds).
         --vmazcopyread           -Use VMA's zero copy reads API (See VMA's readme).
         --daemonize              -Run as daemon.
         --no-rdtsc               -Don't use register when taking time; instead use monotonic clock.
         --load-vma               -Load VMA dynamically even when LD_PRELOAD was not used.
         --rate-limit             -use rate limit (packet-pacing), with VMA must be run with VMA_RING_ALLOCATION_LOGIC_TX mode.
         --set-sock-accl          -Set socket accleration before run (available for some of Mellanox systems)
 -d      --debug                  -Print extra debug information.

Valid arguments:
         --srv-num                -Set num of servers the client works with to N.
         --sender-affinity        -Set sender thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --receiver-affinity      -Set receiver thread affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --full-log               -Dump full log of all messages send/receive time to the given file in CSV format.
         --giga-size              -Print sizes in GigaByte.
         --increase_output_precision
                                  -Increase number of digits after decimal point of the throughput output (from 3 to 9).
         --dummy-send             -Use VMA's dummy send API instead of busy wait, must be higher than regular msg rate.
                 optional: set dummy-send rate per second (default 10,000), usage: --dummy-send [<rate>|max]
 -t      --time                   -Run for <sec> seconds (default 1, max = 36000000).
         --client_port            -Force the client side to bind to a specific port (default = 0).
         --client_ip              -Force the client side to bind to a specific ip address (default = 0).
 -b      --burst                  -Control the client's number of a messages sent in every burst.
         --mps                    -Set number of messages-per-second (default = 10000 - for under-load mode, or max - for ping-pong and throughput modes; for maximum use --mps=max;
                 support --pps for old compatibility).
 -m      --msg-size               -Use messages of size <size> bytes (minimum default 14).
 -r      --range                  -comes with -m <size>, randomly change the messages size in range: <size> +- <N>.

[xtrnaw7@t540p /var/tmp/jwm/bin]$
 


sockperf sr --help
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./sockperf sr --help
server (sr): Run sockperf as a server.

Usage: sockperf server [options] [args]...
 sockperf server
 sockperf server [-i ip] [-p port] [--mc-rx-if ip] [--mc-tx-if ip] [--mc-source-filter ip]
 sockperf server -f file [-F s/p/e] [--mc-rx-if ip] [--mc-tx-if ip] [--mc-source-filter ip]

Options:
 -h,-?   --help,--usage           -Show the help message and exit.
         --tcp                    -Use TCP protocol (default UDP).
 -i      --ip                     -Listen on/send to ip <ip>.
 -p      --port                   -Listen on/connect to port <port> (default 11111).
 -f      --file                   -Read list of connections from file (used in pair with -F option).
 -F      --iomux-type             -Type of multiple file descriptors handle [s|select|p|poll|e|epoll|r|recvfrom|x|socketxtreme](default epoll).
         --timeout                -Set select/poll/epoll timeout to <msec>, -1 for infinite (default is 10 msec).
 -a      --activity               -Measure activity by printing a '.' for the last <N> messages processed.
 -A      --Activity               -Measure activity by printing the duration for last <N>  messages processed.
         --tcp-avoid-nodelay      -Stop/Start delivering TCP Messages Immediately (Enable/Disable Nagel). Default is Nagel Disabled except in Throughput where the default is Nagel enabled.
         --tcp-skip-blocking-send
                                  -Enables non-blocking send operation (default OFF).
         --tos                    -Allows setting tos
         --mc-rx-if               -Set address <ip> of interface on which to receive mulitcast messages (can be other then route table).
         --mc-tx-if               -Set address <ip> of interface on which to transmit mulitcast messages (can be other then route table).
         --mc-loopback-enable     -Enables mc loopback (default disabled).
         --mc-ttl                 -Limit the lifetime of the message (default 2).
         --mc-source-filter       -Set address <ip, hostname> of mulitcast messages source which is allowed to receive from.
         --uc-reuseaddr           -Enables unicast reuse address (default disabled).
         --lls                    -Turn on LLS via socket option (value = usec to poll).
         --buffer-size            -Set total socket receive/send buffer <size> in bytes (system defined by default).
         --nonblocked             -Open non-blocked sockets.
         --recv_looping_num       -Set sockperf to loop over recvfrom() until EAGAIN or <N> good received packets, -1 for infinite, must be used with --nonblocked (default 1).
         --dontwarmup             -Don't send warm up messages on start.
         --pre-warmup-wait        -Time to wait before sending warm up messages (seconds).
         --vmazcopyread           -Use VMA's zero copy reads API (See VMA's readme).
         --daemonize              -Run as daemon.
         --no-rdtsc               -Don't use register when taking time; instead use monotonic clock.
         --load-vma               -Load VMA dynamically even when LD_PRELOAD was not used.
         --rate-limit             -use rate limit (packet-pacing), with VMA must be run with VMA_RING_ALLOCATION_LOGIC_TX mode.
         --set-sock-accl          -Set socket accleration before run (available for some of Mellanox systems)
 -d      --debug                  -Print extra debug information.

Valid arguments:
         --threads-num            -Run <N> threads on server side (requires '-f' option).
         --cpu-affinity           -Set threads affinity to the given core ids in list format (see: cat /proc/cpuinfo).
         --vmarxfiltercb          -Use VMA's receive path message filter callback API (See VMA's readme).
         --force-unicast-reply    -Force server to reply via unicast.
         --dont-reply             -Server won't reply to the client messages.
 -m      --msg-size               -Set maximum message size that the server can receive <size> bytes (default 65507).
 -g      --gap-detection          -Enable gap-detection.

[xtrnaw7@t540p /var/tmp/jwm/bin]$
 





sockstat


"sockstat is a tool to let you view information about open connections. It is similar to the tool of the same name that is included in FreeBSD, trying to faithfully reproduce as much functionality as is possible."

sockstat usage
[xtrnaw7@t540p /var/tmp/jwm]$ bin/sockstat  -h
usage: bin/sockstat [-46clhu] [-p ports] [-U uid|user] [-G gid|group] [-P pid|process] [-R protocol]
       protocol = 'tcp' or 'udp' or 'raw' or 'unix'
[xtrnaw7@t540p /var/tmp/jwm]$




sockstat example
[xtrnaw7@t540p /var/tmp/jwm]$ bin/sockstat
USER     PROCESS              PID      PROTO  SOURCE ADDRESS            FOREIGN ADDRESS           STATE
xtrnaw7  mateweather-app      3874     tcp4   192.168.1.164:45532       23.213.164.17:443         CLOSE_WAIT
xtrnaw7  thunderbird          4035     tcp4   192.168.1.164:50838       173.194.76.16:993         ESTABLISHED
xtrnaw7  firefox              4826     tcp4   192.168.1.164:52426       3.123.248.34:443          ESTABLISHED
xtrnaw7  firefox              4826     tcp4   192.168.1.164:34092       3.123.217.208:443         ESTABLISHED
xtrnaw7  firefox              4826     tcp4   192.168.1.164:43048       18.194.78.163:443         ESTABLISHED
xtrnaw7  firefox              4826     tcp4   192.168.1.164:43050       18.194.78.163:443         ESTABLISHED
xtrnaw7  firefox              4826     tcp4   192.168.1.164:53306       34.214.241.122:443        ESTABLISHED
xtrnaw7  slimjet              5945     udp4   224.0.0.251:5353          *:*                       CLOSED
xtrnaw7  slimjet              5945     udp4   224.0.0.251:5353          *:*                       CLOSED
xtrnaw7  slimjet              6018     tcp4   192.168.1.164:40674       108.177.15.188:5228       ESTABLISHED
xtrnaw7  slimjet              6018     udp4   224.0.0.251:5353          *:*                       CLOSED
xtrnaw7  slimjet              6018     tcp4   192.168.1.164:36020       88.198.47.102:443         ESTABLISHED
xtrnaw7  slimjet              6018     tcp4   192.168.1.164:45970       176.9.64.67:443           ESTABLISHED
xtrnaw7  slimjet              6018     tcp4   192.168.1.164:50320       195.93.247.93:443         ESTABLISHED
xtrnaw7  chrome               15031    udp4   224.0.0.251:5353          *:*                       CLOSED
xtrnaw7  chrome               15031    udp4   224.0.0.251:5353          *:*                       CLOSED
xtrnaw7  chrome               15069    tcp4   192.168.1.164:40672       108.177.15.188:5228       ESTABLISHED
xtrnaw7  chrome               15069    udp4   224.0.0.251:5353          *:*                       CLOSED
xtrnaw7  chrome               15069    udp4   224.0.0.251:5353          *:*                       CLOSED
[xtrnaw7@t540p /var/tmp/jwm]$

 



stress

"stress is a deliberately simple workload generator for POSIX systems. It imposes a configurable amount of CPU, memory, I/O, and disk stress on the system. "

stress usage
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bin/stress --help
`stress' imposes certain types of compute stress on your system

Usage: stress [OPTION [ARG]] ...
 -?, --help         show this help statement
     --version      show version statement
 -v, --verbose      be verbose
 -q, --quiet        be quiet
 -n, --dry-run      show what would have been done
 -t, --timeout N    timeout after N seconds
     --backoff N    wait factor of N microseconds before work starts
 -c, --cpu N        spawn N workers spinning on sqrt()
 -i, --io N         spawn N workers spinning on sync()
 -m, --vm N         spawn N workers spinning on malloc()/free()
     --vm-bytes B   malloc B bytes per vm worker (default is 256MB)
     --vm-stride B  touch a byte every B bytes (default is 4096)
     --vm-hang N    sleep N secs before free (default none, 0 is inf)
     --vm-keep      redirty memory instead of freeing and reallocating
 -d, --hdd N        spawn N workers spinning on write()/unlink()
     --hdd-bytes B  write B bytes per hdd worker (default is 1GB)

Example: stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 10s

Note: Numbers may be suffixed with s,m,h,d,y (time) or B,K,M,G (size).
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



stress example


[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ bin/stress -c 5
stress: info: [11253] dispatching hogs: 5 cpu, 0 io, 0 vm, 0 hdd
^C
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


->






stress-ng

"stress-ng will stress test a computer system in various selectable ways. It was designed to exercise various physical subsystems of a computer as well as the various operating system kernel interfaces. Stress-ng features:
  • 160+ stress tests
  • Almost 70 CPU specific stress tests that exercise floating point, integer, bit manipulation and control flow
  • Over 20 virtual memory stress tests

stress-ng was originally intended to make a machine work hard and trip hardware issues such as thermal overruns as well as operating system bugs that only occur when a system is being thrashed hard. Use stress-ng with caution as some of the tests can make a system run hot on poorly designed hardware and also can cause excessive system thrashing which may be difficult to stop.

stress-ng can also measure test throughput rates; this can be useful to observe performance changes across different operating system releases or types of hardware. However, it has never been intended to be used as a precise benchmark test suite, so do NOT use it in this manner.

Running stress-ng with root privileges will adjust out of memory settings on Linux systems to make the stressors unkillable in low memory situations, so use this judiciously. With the apropriate privilege, stress-ng can allow the ionice class and ionice levels to be adjusted, again, this should be used with care."

stress-ng usage


[xtrnaw7@t540p /var/tmp/jwm/src]$ ../bin/stress-ng -h
stress-ng, version 0.09.41

Usage: stress-ng [OPTION [ARG]]

General control options:
      --abort              abort all stressors if any stressor fails
      --aggressive         enable all aggressive options
-a N, --all N              start N workers of each stress test
-b N, --backoff N          wait of N microseconds before work starts
      --class name         specify a class of stressors, use with --sequential
-n,   --dry-run            do not run
-h,   --help               show help
      --ignite-cpu         alter kernel controls to make CPU run hot
      --ionice-class C     specify ionice class (idle, besteffort, realtime)
      --ionice-level L     specify ionice level (0 max, 7 min)
-j,   --job jobfile        run the named jobfile
-k,   --keep-name          keep stress worker names to be 'stress-ng'
      --log-brief          less verbose log messages
      --log-file filename  log messages to a log file
      --maximize           enable maximum stress options
-M,   --metrics            print pseudo metrics of activity
      --metrics-brief      enable metrics and only show non-zero results
      --minimize           enable minimal stress options
      --no-madvise         don't use random madvise options for each mmap
      --no-rand-seed       seed random numbers with the same constant
      --page-in            touch allocated pages that are not in core
      --parallel N         synonym for 'all N'
      --pathological       enable stressors that are known to hang a machine
      --perf               display perf statistics
-q,   --quiet              quiet output
-r,   --random N           start N random workers
      --sched type         set scheduler type
      --sched-prio N       set scheduler priority level N
      --sequential N       run all stressors one by one, invoking N of them
      --stressors          show available stress tests
      --syslog             log messages to the syslog
      --taskset            use specific CPUs (set CPU affinity)
      --temp-path          specify path for temporary directories and files
      --thrash             force all pages in causing swap thrashing
-t N, --timeout T          timeout after T seconds
      --timer-slack        enable timer slack mode
      --times              show run time summary at end of the run
      --timestamp          timestamp log output
      --tz                 collect temperatures from thermal zones (Linux only)
-v,   --verbose            verbose output
      --verify             verify results (not available on all tests)
-V,   --version            show version
-Y,   --yaml               output results to YAML formatted filed
-x,   --exclude            list of stressors to exclude (not run)

Stressor specific options:
      --access N           start N workers that stress file access permissions
      --access-ops N       stop after N file access bogo operations
      --af-alg N           start N workers that stress AF_ALG socket domain
      --af-alg-ops N       stop after N af-alg bogo operations
      --affinity N         start N workers that rapidly change CPU affinity
      --affinity-ops N     stop after N affinity bogo operations
      --affinity-rand      change affinity randomly rather than sequentially
      --aio N              start N workers that issue async I/O requests
      --aio-ops N          stop after N bogo async I/O requests
      --aio-requests N     number of async I/O requests per worker
      --aiol N             start N workers that exercise Linux async I/O
      --aiol-ops N         stop after N bogo Linux aio async I/O requests
      --aiol-requests N    number of Linux aio async I/O requests per worker
      --apparmor           start N workers exercising AppArmor interfaces
      --apparmor-ops       stop after N bogo AppArmor worker bogo operations
      --atomic             start N workers exercising GCC atomic operations
      --atomic-ops         stop after N bogo atomic bogo operations
      --bad-altstack N     start N workers exercising bad signal stacks
      --bad-altstack-ops N stop after N bogo signal stack SIGSEGVs
-B N, --bigheap N          start N workers that grow the heap using calloc()
      --bigheap-ops N      stop after N bogo bigheap operations
      --bigheap-growth N   grow heap by N bytes per iteration
      --bind-mount N       start N workers exercising bind mounts
      --bind-mount-ops N   stop after N bogo bind mount operations
      --branch N           start N workers that force branch misprediction
      --branch-ops N       stop after N branch misprediction branches
      --brk N              start N workers performing rapid brk calls
      --brk-ops N          stop after N brk bogo operations
      --brk-notouch        don't touch (page in) new data segment page
      --bsearch N          start N workers that exercise a binary search
      --bsearch-ops N      stop after N binary search bogo operations
      --bsearch-size N     number of 32 bit integers to bsearch
-C N, --cache N            start N CPU cache thrashing workers
      --cache-ops N        stop after N cache bogo operations
      --cache-prefetch     prefetch on memory reads/writes
      --cache-flush        flush cache after every memory write (x86 only)
      --cache-fence        serialize stores
      --cache-level N      only exercise specified cache
      --cache-ways N       only fill specified number of cache ways
      --cap N              start N workers exercsing capget
      --cap-ops N          stop cap workers after N bogo capget operations
      --chdir N            start N workers thrashing chdir on many paths
      --chdir-ops N        stop chdir workers after N bogo chdir operations
      --chdir-dirs N       select number of directories to exercise chdir on
      --chmod N            start N workers thrashing chmod file mode bits
      --chmod-ops N        stop chmod workers after N bogo operations
      --chown N            start N workers thrashing chown file ownership
      --chown-ops N        stop chown workers after N bogo operations
      --chroot N           start N workers thrashing chroot
      --chroot-ops N       stop chhroot workers after N bogo operations
      --clock N            start N workers thrashing clocks and POSIX timers
      --clock-ops N        stop clock workers after N bogo operations
      --clone N            start N workers that rapidly create and reap clones
      --clone-ops N        stop after N bogo clone operations
      --clone-max N        set upper limit of N clones per worker
      --context N          start N workers exercising user context
      --context-ops N      stop context workers after N bogo operations
      --copy-file N        start N workers that copy file data
      --copy-file-ops N    stop after N copy bogo operations
      --copy-file-bytes N  specify size of file to be copied
-c N, --cpu N              start N workers spinning on sqrt(rand())
      --cpu-ops N          stop after N cpu bogo operations
-l P, --cpu-load P         load CPU by P %%, 0=sleep, 100=full load (see -c)
      --cpu-load-slice S   specify time slice during busy load
      --cpu-method M       specify stress cpu method M, default is all
      --cpu-online N       start N workers offlining/onlining the CPUs
      --cpu-online-ops N   stop after N offline/online operations
      --crypt N            start N workers performing password encryption
      --crypt-ops N        stop after N bogo crypt operations
      --daemon N           start N workers creating multiple daemons
      --cyclic N           start N cyclic real time benchmark stressors
      --cyclic-ops N       stop after N cyclic timing cycles
      --cyclic-method M    specify cyclic method M, default is clock_ns
      --cyclic-dist N      calculate distribution of interval N nanosecs
      --cyclic-policy P    used rr or fifo scheduling policy
      --cyclic-prio N      real time scheduling priority 1..100
      --cyclic-sleep N     sleep time of real time timer in nanosecs
      --daemon-ops N       stop when N daemons have been created
      --dccp N             start N workers exercising network DCCP I/O
      --dccp-domain D      specify DCCP domain, default is ipv4
      --dccp-ops N         stop after N DCCP  bogo operations
      --dccp-opts option   DCCP data send options [send|sendmsg|sendmmsg]
      --dccp-port P        use DCCP ports P to P + number of workers - 1
-D N, --dentry N           start N dentry thrashing stressors
      --dentry-ops N       stop after N dentry bogo operations
      --dentry-order O     specify unlink order (reverse, forward, stride)
      --dentries N         create N dentries per iteration
      --dev                start N device entry thrashing stressors
      --dev-ops            stop after N device thrashing bogo ops
      --dev-shm            start N /dev/shm file and mmap stressors
      --dev-shm-ops        stop after N /dev/shm bogo ops
      --dir N              start N directory thrashing stressors
      --dir-ops N          stop after N directory bogo operations
      --dir-dirs N         select number of directories to exercise dir on
      --dirdeep N          start N directory depth stressors
      --dirdeep-ops N      stop after N directory depth bogo operations
      --dirdeep-dirs N     create N directories per level
      --dirdeep-inodes N   create a maximum N inodes (N can also be %)
      --dnotify N          start N workers exercising dnotify events
      --dnotify-ops N      stop dnotify workers after N bogo operations
      --dup N              start N workers exercising dup/close
      --dup-ops N          stop after N dup/close bogo operations
      --dynlib N           start N workers exercising dlopen/dlclose
      --dynlib-ops N       stop after N dlopen/dlclose bogo operations
      --efivar N           start N workers that read EFI variables
      --efivar-ops N       stop after N EFI variable bogo read operations
      --enosys N           start N workers that call non-existent system calls
      --enosys-ops N       stop after N enosys bogo operations
      --epoll N            start N workers doing epoll handled socket activity
      --epoll-ops N        stop after N epoll bogo operations
      --epoll-port P       use socket ports P upwards
      --epoll-domain D     specify socket domain, default is unix
      --eventfd N          start N workers stressing eventfd read/writes
      --eventfd-ops N      stop eventfd workers after N bogo operations
      --exec N             start N workers spinning on fork() and exec()
      --exec-ops N         stop after N exec bogo operations
      --exec-max P         create P workers per iteration, default is 1
      --fallocate N        start N workers fallocating 16MB files
      --fallocate-ops N    stop after N fallocate bogo operations
      --fallocate-bytes N  specify size of file to allocate
      --fanotify N         start N workers exercising fanotify events
      --fanotify-ops N     stop fanotify workers after N bogo operations
      --fault N            start N workers producing page faults
      --fault-ops N        stop after N page fault bogo operations
      --fcntl N            start N workers exercising fcntl commands
      --fcntl-ops N        stop after N fcntl bogo operations
      --fiemap N           start N workers exercising the FIEMAP ioctl
      --fiemap-ops N       stop after N FIEMAP ioctl bogo operations
      --fiemap-bytes N     specify size of file to fiemap
      --fifo N             start N workers exercising fifo I/O
      --fifo-ops N         stop after N fifo bogo operations
      --fifo-readers N     number of fifo reader stessors to start
      --file-ioctl N       start N workers exercising file specific ioctls
      --file-ioctl-ops N   stop after N file ioctl bogo operations
      --filename N         start N workers exercising filenames
      --filename-ops N     stop after N filename bogo operations
      --filename-opts opt  specify allowed filename options
      --flock N            start N workers locking a single file
      --flock-ops N        stop after N flock bogo operations
-f N, --fork N             start N workers spinning on fork() and exit()
      --fork-ops N         stop after N fork bogo operations
      --fork-max P         create P workers per iteration, default is 1
      --fp-error N         start N workers exercising floating point errors
      --fp-error-ops N     stop after N fp-error bogo operations
      --fstat N            start N workers exercising fstat on files
      --fstat-ops N        stop after N fstat bogo operations
      --fstat-dir path     fstat files in the specified directory
      --full N             start N workers exercising /dev/full
      --full-ops N         stop after N /dev/full bogo I/O operations
      --funccall N         start N workers exercising 1 to 9 arg functions
      --funccall-ops N     stop after N function call bogo operations
      --funccall-method M  select function call method M
      --futex N            start N workers exercising a fast mutex
      --futex-ops N        stop after N fast mutex bogo operations
      --get N              start N workers exercising the get*() system calls
      --get-ops N          stop after N get bogo operations
      --getdent N          start N workers reading directories using getdents
      --getdent-ops N      stop after N getdents bogo operations
      --getrandom N        start N workers fetching random data via getrandom()
      --getrandom-ops N    stop after N getrandom bogo operations
      --handle N           start N workers exercising name_to_handle_at
      --handle-ops N       stop after N handle bogo operations
-d N, --hdd N              start N workers spinning on write()/unlink()
      --hdd-ops N          stop after N hdd bogo operations
      --hdd-bytes N        write N bytes per hdd worker (default is 1GB)
      --hdd-opts list      specify list of various stressor options
      --hdd-write-size N   set the default write size to N bytes
      --heapsort N         start N workers heap sorting 32 bit random integers
      --heapsort-ops N     stop after N heap sort bogo operations
      --heapsort-size N    number of 32 bit integers to sort
      --hrtimers N         start N workers that exercise high resolution timers
      --hrtimers-ops N     stop after N bogo high-res timer bogo operations
      --hsearch N          start N workers that exercise a hash table search
      --hsearch-ops N      stop after N hash search bogo operations
      --hsearch-size N     number of integers to insert into hash table
      --icache N           start N CPU instruction cache thrashing workers
      --icache-ops N       stop after N icache bogo operations
      --icmp-flood N       start N ICMP packet flood workers
      --icmp-flood-ops N   stop after N ICMP bogo operations (ICMP packets)
      --inode-flags N      start N workers exercising various inode flags
      --inode-flags-ops N  stop inode-flags workers after N bogo operations
      --inotify N          start N workers exercising inotify events
      --inotify-ops N      stop inotify workers after N bogo operations
-i N, --io N               start N workers spinning on sync()
      --io-ops N           stop sync I/O after N io bogo operations
      --iomix N            start N workers that have a mix of I/O operations
      --iomix-bytes N      write N bytes per iomix worker (default is 1GB)
      --iomix-ops N        stop iomix workers after N iomix bogo operations
      --ioport N           start N workers exercising port I/O
      --ioport-ops N       stop ioport workers after N port bogo operations
      --ioprio N           start N workers exercising set/get iopriority
      --ioprio-ops N       stop after N io bogo iopriority operations
      --itimer N           start N workers exercising interval timers
      --itimer-ops N       stop after N interval timer bogo operations
      --kcmp N             start N workers exercising kcmp
      --kcmp-ops N         stop after N kcmp bogo operations
      --key N              start N workers exercising key operations
      --key-ops N          stop after N key bogo operations
      --kill N             start N workers killing with SIGUSR1
      --kill-ops N         stop after N kill bogo operations
      --klog N             start N workers exercising kernel syslog interface
      --klog-ops N         stop after N klog bogo operations
      --lease N            start N workers holding and breaking a lease
      --lease-ops N        stop after N lease bogo operations
      --lease-breakers N   number of lease breaking workers to start
      --link N             start N workers creating hard links
      --link-ops N         stop after N link bogo operations
      --locka N            start N workers locking a file via advisory locks
      --locka-ops N        stop after N locka bogo operations
      --lockbus N          start N workers locking a memory increment
      --lockbus-ops N      stop after N lockbus bogo operations
      --lockf N            start N workers locking a single file via lockf
      --lockf-ops N        stop after N lockf bogo operations
      --lockf-nonblock     don't block if lock cannot be obtained, re-try
      --lockofd N          start N workers using open file description locking
      --lockofd-ops N      stop after N lockofd bogo operations
      --longjmp N          start N workers exercising setjmp/longjmp
      --longjmp-ops N      stop after N longjmp bogo operations
      --lsearch N          start N workers that exercise a linear search
      --lsearch-ops N      stop after N linear search bogo operations
      --lsearch-size N     number of 32 bit integers to lsearch
      --madvise N          start N workers exercising madvise on memory
      --madvise-ops N      stop after N bogo madvise operations
      --malloc N           start N workers exercising malloc/realloc/free
      --malloc-bytes N     allocate up to N bytes per allocation
      --malloc-max N       keep up to N allocations at a time
      --malloc-ops N       stop after N malloc bogo operations
      --malloc-thresh N    threshold where malloc uses mmap instead of sbrk
      --matrix N           start N workers exercising matrix operations
      --matrix-ops N       stop after N maxtrix bogo operations
      --matrix-method M    specify matrix stress method M, default is all
      --matrix-size N      specify the size of the N x N matrix
      --matrix-yx          matrix operation is y by x instread of x by y
      --mcontend N         start N workers that produce memory contention
      --mcontend-ops N     stop memory contention workers after N bogo-ops
      --membarrier N       start N workers performing membarrier system calls
      --membarrier-ops N   stop after N membarrier bogo operations
      --memcpy N           start N workers performing memory copies
      --memcpy-ops N       stop after N memcpy bogo operations
      --memfd N            start N workers allocating memory with memfd_create
      --memfd-bytes N      allocate N bytes for each stress iteration
      --memfd-fds N        number of memory fds to open per stressors
      --memfd-ops N        stop after N memfd bogo operations
      --memrate N          start N workers exercised memory read/writes
      --memrate-ops        stop after N memrate bogo operations
      --memrate-bytes N    size of memory buffer being exercised
      --memrate-rd-mbs N   read rate from buffer in megabytes per second
      --memrate-wr-mbs N   write rate to buffer in megabytes per second
      --memthrash N        start N workers thrashing a 16MB memory buffer
      --memthrash-ops N    stop after N memthrash bogo operations
      --memthrash-method M specify memthrash method M, default is all
      --mergesort N        start N workers merge sorting 32 bit random integers
      --mergesort-ops N    stop after N merge sort bogo operations
      --mergesort-size N   number of 32 bit integers to sort
      --mincore N          start N workers exercising mincore
      --mincore-ops N      stop after N mincore bogo operations
      --mincore-random     randomly select pages rather than linear scan
      --mknod N            start N workers that exercise mknod
      --mknod-ops N        stop after N mknod bogo operations
      --mlock N            start N workers exercising mlock/munlock
      --mlock-ops N        stop after N mlock bogo operations
      --mmap N             start N workers stressing mmap and munmap
      --mmap-ops N         stop after N mmap bogo operations
      --mmap-async         using asynchronous msyncs for file based mmap
      --mmap-bytes N       mmap and munmap N bytes for each stress iteration
      --mmap-file          mmap onto a file using synchronous msyncs
      --mmap-mprotect      enable mmap mprotect stressing
      --mmapaddr N         start N workers stressing mmap with random addresses
      --mmapaddr-ops N     stop after N mmapaddr bogo operations
      --mmapfixed N        start N workers stressing mmap with fixed mappings
      --mmapfixed-ops N    stop after N mmapfixed bogo operations
      --mmapfork N         start N workers stressing many forked mmaps/munmaps
      --mmapfork-ops N     stop after N mmapfork bogo operations
      --mmapmany N         start N workers stressing many mmaps and munmaps
      --mmapmany-ops N     stop after N mmapmany bogo operations
      --mq N               start N workers passing messages using POSIX messages
      --mq-ops N           stop mq workers after N bogo messages
      --mq-size N          specify the size of the POSIX message queue
      --mremap N           start N workers stressing mremap
      --mremap-ops N       stop after N mremap bogo operations
      --mremap-bytes N     mremap N bytes maximum for each stress iteration
      --msg N              start N workers stressing System V messages
      --msg-ops N          stop msg workers after N bogo messages
      --msync N            start N workers syncing mmap'd data with msync
      --msync-ops N        stop msync workers after N bogo msyncs
      --msync-bytes N      size of file and memory mapped region to msync
      --netdev N           start N workers exercising netdevice ioctls
      --netdev-ops N       stop netdev workers after N bogo operations
      --netlink-proc N     start N workers exercising netlink process events
      --netlink-proc-ops N stop netlink-proc workers after N bogo events
      --nice N             start N workers that randomly re-adjust nice levels
      --nice-ops N         stop after N nice bogo operations
      --nop N              start N workers that burn cycles with no-ops
      --nop-ops N          stop after N nop bogo no-op operations
      --null N             start N workers writing to /dev/null
      --null-ops N         stop after N /dev/null bogo write operations
      --numa N             start N workers stressing NUMA interfaces
      --numa-ops N         stop after N NUMA bogo operations
      --oom-pipe N         start N workers exercising large pipes
      --oom-pipe-ops N     stop after N oom-pipe bogo operations
      --opcode N           start N workers exercising random opcodes
      --opcode-ops N       stop after N opcode bogo operations
-o,   --open N             start N workers exercising open/close
      --open-ops N         stop after N open/close bogo operations
      --personality N      start N workers that change their personality
      --personality-ops N  stop after N bogo personality calls
      --physpage N         start N workers performing physical page lookup
      --physpage-ops N     stop after N physical page bogo operations
-p N, --pipe N             start N workers exercising pipe I/O
      --pipe-ops N         stop after N pipe I/O bogo operations
      --pipe-data-size N   set pipe size of each pipe write to N bytes
      --pipe-size N        set pipe size to N bytes
      --pkey               start N workers exercising pkey_mprotect
      --pkey-ops           stop after N bogo pkey_mprotect bogo operations
-P N, --poll N             start N workers exercising zero timeout polling
      --poll-ops N         stop after N poll bogo operations
      --prctl N            start N workers exercising prctl(2)
      --prctl-ops N        stop prctl workers after N bogo prctl operations
      --procfs N           start N workers reading portions of /proc
      --procfs-ops N       stop procfs workers after N bogo read operations
      --pthread N          start N workers that create multiple threads
      --pthread-ops N      stop pthread workers after N bogo threads created
      --pthread-max P      create P threads at a time by each worker
      --ptrace N           start N workers that trace a child using ptrace
      --ptrace-ops N       stop ptrace workers after N system calls are traced
      --pty N              start N workers that exercise pseudoterminals
      --pty-ops N          stop pty workers after N pty bogo operations
      --pty-max N          attempt to open a maximum of N ptys
-Q,   --qsort N            start N workers qsorting 32 bit random integers
      --qsort-ops N        stop after N qsort bogo operations
      --qsort-size N       number of 32 bit integers to sort
      --quota N            start N workers exercising quotactl commands
      --quota-ops N        stop after N quotactl bogo operations
      --radixsort N        start N workers radix sorting random strings
      --radixsort-ops N    stop after N radixsort bogo operations
      --radixsort-size N   number of strings to sort
      --rawdev N           start N workers that read a raw device
      --rawdev-ops N       stop after N rawdev read operations
      --rawdev-method M    specify the rawdev reead method to use
      --rdrand N           start N workers exercising rdrand (x86 only)
      --rdrand-ops N       stop after N rdrand bogo operations
      --readahead N        start N workers exercising file readahead
      --readahead-bytes N  size of file to readahead on (default is 1GB)
      --readahead-ops N    stop after N readahead bogo operations
      --remap N            start N workers exercising page remappings
      --remap-ops N        stop after N remapping bogo operations
-R,   --rename N           start N workers exercising file renames
      --rename-ops N       stop after N rename bogo operations
      --resources N        start N workers consuming system resources
      --resources-ops N    stop after N resource bogo operations
      --revio N            start N workers performing reverse I/O
      --revio-ops N        stop after N revio bogo operations
      --rlimit N           start N workers that exceed rlimits
      --rlimit-ops N       stop after N rlimit bogo operations
      --rmap N             start N workers that stress reverse mappings
      --rmap-ops N         stop after N rmap bogo operations
      --rtc N              start N workers that exercise the RTC interfaces
      --rtc-ops N          stop after N RTC bogo operations
      --schedpolicy N      start N workers that exercise scheduling policy
      --schedpolicy-ops N  stop after N scheduling policy bogo operations
      --sctp N             start N workers performing SCTP send/receives
      --sctp-ops N         stop after N SCTP bogo operations
      --sctp-domain D      specify sctp domain, default is ipv4
      --sctp-port P        use SCTP ports P to P + number of workers - 1
      --seal N             start N workers performing fcntl SEAL commands
      --seal-ops N         stop after N SEAL bogo operations
      --seccomp N          start N workers performing seccomp call filtering
      --seccomp-ops N      stop after N seccomp bogo operations
      --seek N             start N workers performing random seek r/w IO
      --seek-ops N         stop after N seek bogo operations
      --seek-punch         punch random holes in file to stress extents
      --seek-size N        length of file to do random I/O upon
      --sem N              start N workers doing semaphore operations
      --sem-ops N          stop after N semaphore bogo operations
      --sem-procs N        number of processes to start per worker
      --sem-sysv N         start N workers doing System V semaphore operations
      --sem-sysv-ops N     stop after N System V sem bogo operations
      --sem-sysv-procs N   number of processes to start per worker
      --sendfile N         start N workers exercising sendfile
      --sendfile-ops N     stop after N bogo sendfile operations
      --sendfile-size N    size of data to be sent with sendfile
      --set N              start N workers exercising the set*() system calls
      --set-ops N          stop after N set bogo operations
      --shm N              start N workers that exercise POSIX shared memory
      --shm-ops N          stop after N POSIX shared memory bogo operations
      --shm-bytes N        allocate/free N bytes of POSIX shared memory
      --shm-segs N         allocate N POSIX shared memory segments per iteration
      --shm-sysv N         start N workers that exercise System V shared memory
      --shm-sysv-ops N     stop after N shared memory bogo operations
      --shm-sysv-bytes N   allocate and free N bytes of shared memory per loop
      --shm-sysv-segs N    allocate N shared memory segments per iteration
      --sigfd N            start N workers reading signals via signalfd reads
      --sigfd-ops N        stop after N bogo signalfd reads
      --sigfpe N           start N workers generating floating point math faults
      --sigfpe-ops N       stop after N bogo floating point math faults
      --sigio N            start N workers that exercise SIGIO signals
      --sigio-ops N        stop after N bogo sigio signals
      --sigpending N       start N workers exercising sigpending
      --sigpending-ops N   stop after N sigpending bogo operations
      --sigpipe N          start N workers exercising SIGPIPE
      --sigpipe-ops N      stop after N SIGPIPE bogo operations
      --sigq N             start N workers sending sigqueue signals
      --sigq-ops N         stop after N siqqueue bogo operations
      --sigrt N            start N workers sending real time signals
      --sigrt-ops N        stop after N real time signal bogo operations
      --sigsegv N          start N workers generating segmentation faults
      --sigsegv-ops N      stop after N bogo segmentation faults
      --sigsuspend N       start N workers exercising sigsuspend
      --sigsuspend-ops N   stop after N bogo sigsuspend wakes
      --sleep N            start N workers performing various duration sleeps
      --sleep-ops N        stop after N bogo sleep operations
      --sleep-max P        create P threads at a time by each worker
-S N, --sock N             start N workers exercising socket I/O
      --sock-domain D      specify socket domain, default is ipv4
      --sock-nodelay       disable Nagle algorithm, send data immediately
      --sock-ops N         stop after N socket bogo operations
      --sock-opts option   socket options [send|sendmsg|sendmmsg]
      --sock-port P        use socket ports P to P + number of workers - 1
      --sock-type T        socket type (stream, seqpacket)
      --sockdiag N         start N workers exercising sockdiag netlink
      --sockdiag-ops N     stop sockdiag workers after N bogo messages
      --sockfd N           start N workers sending file descriptors over sockets
      --sockfd-ops N       stop after N sockfd bogo operations
      --sockfd-port P      use socket fd ports P to P + number of workers - 1
      --sockpair N         start N workers exercising socket pair I/O activity
      --sockpair-ops N     stop after N socket pair bogo operations
      --softlockup N       start N workers that cause softlockups
      --softlockup-ops N   stop after N softlockup bogo operations
      --spawn              start N workers spawning stress-ng using posix_spawn
      --spawn-ops N        stop after N spawn bogo operations
      --splice N           start N workers reading/writing using splice
      --splice-ops N       stop after N bogo splice operations
      --splice-bytes N     number of bytes to transfer per splice call
      --stack N            start N workers generating stack overflows
      --stack-ops N        stop after N bogo stack overflows
      --stack-fill         fill stack, touches all new pages
      --stackmmap N        start N workers exercising a filebacked stack
      --stackmmap-ops N    stop after N bogo stackmmap operations
      --str N              start N workers exercising lib C string functions
      --str-method func    specify the string function to stress
      --str-ops N          stop after N bogo string operations
      --stream N           start N workers exercising memory bandwidth
      --stream-ops N       stop after N bogo stream operations
      --stream-index       specify number of indices into the data (0..3)
      --stream-l3-size N   specify the L3 cache size of the CPU
      --stream-madvise M   specify mmap'd stream buffer madvise advice
      --swap N             start N workers exercising swapon/swapoff
      --swap-ops N         stop after N swapon/swapoff operations
-s N, --switch N           start N workers doing rapid context switches
      --switch-ops N       stop after N context switch bogo operations
      --symlink N          start N workers creating symbolic links
      --symlink-ops N      stop after N symbolic link bogo operations
      --sync-file N        start N workers exercise sync_file_range
      --sync-file-ops N    stop after N sync_file_range bogo operations
      --sync-file-bytes N  size of file to be sync'd
      --sysinfo N          start N workers reading system information
      --sysinfo-ops N      stop after sysinfo bogo operations
      --sysbadaddr N       start N workers that pass bad addresses to syscalls
      --sysbaddaddr-ops N  stop after N sysbadaddr bogo syscalls
      --sysfs N            start N workers reading files from /sys
      --sysfs-ops N        stop after sysfs bogo operations
      --tee N              start N workers exercising the tee system call
      --tee-ops N          stop after N tee bogo operations
-T N, --timer N            start N workers producing timer events
      --timer-ops N        stop after N timer bogo events
      --timer-freq F       run timer(s) at F Hz, range 1 to 1000000000
      --timer-rand         enable random timer frequency
      --timerfd N          start N workers producing timerfd events
      --timerfd-ops N      stop after N timerfd bogo events
      --timerfd-freq F     run timer(s) at F Hz, range 1 to 1000000000
      --timerfd-rand       enable random timerfd frequency
      --tlb-shootdown N    start N workers that force TLB shootdowns
      --tlb-shootdown-ops Nstop after N TLB shootdown bogo ops
      --tmpfs N            start N workers mmap'ing a file on tmpfs
      --tmpfs-ops N        stop after N tmpfs bogo ops
      --tree N             start N workers that exercise tree structures
      --tree-ops N         stop after N bogo tree operations
      --tree-method M      select tree method, all,avl,binary,rb,splay
      --tree-size N        N is the number of items in the tree
      --tsc N              start N workers reading the TSC (x86 only)
      --tsc-ops N          stop after N TSC bogo operations
      --tsearch N          start N workers that exercise a tree search
      --tsearch-ops N      stop after N tree search bogo operations
      --tsearch-size N     number of 32 bit integers to tsearch
      --udp N              start N workers performing UDP send/receives
      --udp-ops N          stop after N udp bogo operations
      --udp-domain D       specify domain, default is ipv4
      --udp-lite           use the UDP-Lite (RFC 3828) protocol
      --udp-port P         use ports P to P + number of workers - 1
      --udp-flood N        start N workers that performs a UDP flood attack
      --udp-flood-ops N    stop after N udp flood bogo operations
      --udp-flood-domain D specify domain, default is ipv4
      --unshare N          start N workers exercising resource unsharing
      --unshare-ops N      stop after N bogo unshare operations
-u N, --urandom N          start N workers reading /dev/urandom
      --urandom-ops N      stop after N urandom bogo read operations
      --userfaultfd N      start N page faulting workers with userspace handling
      --userfaultfd-ops N  stop after N page faults have been handled
      --utime N            start N workers updating file timestamps
      --utime-ops N        stop after N utime bogo operations
      --utime-fsync        force utime meta data sync to the file system
      --vecmath N          start N workers performing vector math ops
      --vecmath-ops N      stop after N vector math bogo operations
      --vfork N            start N workers spinning on vfork() and exit()
      --vfork-ops N        stop after N vfork bogo operations
      --vfork-max P        create P processes per iteration, default is 1
      --vforkmany N        start N workers spawning many vfork children
      --vforkmany-ops N    stop after spawning N vfork children
-m N, --vm N               start N workers spinning on anonymous mmap
      --vm-bytes N         allocate N bytes per vm worker (default 256MB)
      --vm-hang N          sleep N seconds before freeing memory
      --vm-keep            redirty memory instead of reallocating
      --vm-ops N           stop after N vm bogo operations
      --vm-locked          lock the pages of the mapped region into memory
      --vm-madvise M       specify mmap'd vm buffer madvise advice
      --vm-method M        specify stress vm method M, default is all
      --vm-populate        populate (prefault) page tables for a mapping
      --vm-addr N          start N vm address exercising workers
      --vm-addr-ops N      stop after N vm address bogo operations
      --vm-rw N            start N vm read/write process_vm* copy workers
      --vm-rw-bytes N      transfer N bytes of memory per bogo operation
      --vm-rw-ops N        stop after N vm process_vm* copy bogo operations
      --vm-segv N          start N workers that unmap their address space
      --vm-segv-ops N      stop after N vm-segv unmap'd SEGV faults
      --vm-splice N        start N workers reading/writing using vmsplice
      --vm-splice-ops N    stop after N bogo splice operations
      --vm-splice-bytes N  number of bytes to transfer per vmsplice call
      --wait N             start N workers waiting on child being stop/resumed
      --wait-ops N         stop after N bogo wait operations
      --watchdog N         start N workers that exercise /dev/watchdog
      --watchdog-ops N     stop after N bogo watchdog operations
      --wcs N              start N workers on lib C wide char string functions
      --wcs-method func    specify the wide character string function to stress
      --wcs-ops N          stop after N bogo wide character string operations
      --xattr N            start N workers stressing file extended attributes
      --xattr-ops N        stop after N bogo xattr operations
-y N, --yield N            start N workers doing sched_yield() calls
      --yield-ops N        stop after N bogo yield operations
      --zero N             start N workers reading /dev/zero
      --zero-ops N         stop after N /dev/zero bogo read operations
      --zlib N             start N workers compressing data with zlib
      --zlib-ops N         stop after N zlib bogo compression operations
      --zlib-level L       specify zlib compressession level 0=fast, 9=best
      --zlib-method M      specify zlib random data generation method M
      --zombie N           start N workers that rapidly create and reap zombies
      --zombie-ops N       stop after N bogo zombie fork operations
      --zombie-max N       set upper limit of N zombies per worker

Example: stress-ng --cpu 8 --io 4 --vm 2 --vm-bytes 128M --fork 4 --timeout 10s

Note: Sizes can be suffixed with B,K,M,G and times with s,m,h,d,y
[xtrnaw7@t540p /var/tmp/jwm/src]$



Online manual from stress-ng:

http://kernel.ubuntu.com/~cking/stress-ng/stress-ng.pdf



sysfsutils


"This package's purpose is to provide a set of utilities for interfacing with sysfs, a virtual filesystem in Linux kernel versions 2.5+ that provides a tree of system devices. While a filesystem is a very useful interface, we've decided to provide a stable programming interface that will hopefully make it easier for applications to query system devices and their attributes.

This package currently includes:

- libsysfs: a library for accessing system devices.
- systool: an application to view system device information by bus, class, and topology.
- A number of example usage routines in the "test" directory.
- A comprehensive testsuite, also shipped as part of the "test" directory. This testsuite can be used to test _all_ the APIs exported by Libsysfs.
    Please refer the libsysfs.txt file in the "docs" directory for details as to how to use the testsuite."


systool usage
[xtrnaw7@t540p /var/tmp/jwm]$ bin/systool --help
bin/systool: invalid option -- '-'
Usage: systool [<options> [device]]
    -a            Show attributes
    -b <bus_name>        Show a specific bus
    -c <class_name>        Show a specific class
    -d            Show only devices
    -h            Show usage
    -m <module_name>    Show a specific module
    -p            Show path to device/driver
    -v            Show all attributes with values
    -A <attribute_name>    Show attribute value
    -D            Show only drivers
    -P            Show device's parent
[xtrnaw7@t540p /var/tmp/jwm]$



systool example
xtrnaw7@t540p /var/tmp/jwm]$ bin/systool -c pci_bus
Class = "pci_bus"

  Class Device = "00"
    Device = "pci0000:00"

  Class Device = "01"
    Device = "0000:00:01.0"

  Class Device = "03"
    Device = "0000:00:1c.0"

  Class Device = "04"
    Device = "0000:00:1c.1"

  Class Device = "05"
    Device = "0000:00:1c.2"


[xtrnaw7@t540p /var/tmp/jwm]$ bin/systool -c pci_bus -a
Class = "pci_bus"

  Class Device = "00"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "pci0000:00"
      uevent             


  Class Device = "01"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:01.0"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


  Class Device = "03"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:1c.0"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      reset              
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


  Class Device = "04"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:1c.1"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      reset              
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


  Class Device = "05"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Devi[xtrnaw7@t540p /var/tmp/jwm]$ bin/systool -c pci_bus
Class = "pci_bus"

  Class Device = "00"
    Device = "pci0000:00"

  Class Device = "01"
    Device = "0000:00:01.0"

  Class Device = "03"
    Device = "0000:00:1c.0"

  Class Device = "04"
    Device = "0000:00:1c.1"

  Class Device = "05"
    Device = "0000:00:1c.2"


[xtrnaw7@t540p /var/tmp/jwm]$ bin/systool -c pci_bus -a
Class = "pci_bus"

  Class Device = "00"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "pci0000:00"
      uevent             


  Class Device = "01"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:01.0"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


  Class Device = "03"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:1c.0"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      reset              
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


  Class Device = "04"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:1c.1"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      reset              
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


  Class Device = "05"
    cpuaffinity        
    cpulistaffinity    
    rescan             
    uevent             

    Device = "0000:00:1c.2"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      reset              
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


[xtrnaw7@t540p /var/tmp/jwm]$
ce = "0000:00:1c.2"
      broken_parity_status
      class              
      config             
      consistent_dma_mask_bits
      d3cold_allowed     
      device             
      dma_mask_bits      
      driver_override    
      enable             
      irq                
      local_cpulist      
      local_cpus         
      modalias           
      msi_bus            
      numa_node          
      remove             
      rescan             
      reset              
      resource           
      subsystem_device   
      subsystem_vendor   
      uevent             
      vendor             


[xtrnaw7@t540p /var/tmp/jwm]$



sysstat tools


The sysstat tools cifsiostat, iostat, nfsiostat, and pidstat can be used to monitor some aspects of the system.

See the man pages for the tools for more detailed infos.



t50

 t50 - Experimental Mixed Packet Injector designed to perform network "Stress Testing". Usage:


t50 usage
[xtrnaw7@t540p /var/tmp/jwm/src/t50-5.8.0]$ bin/t50 -h
T50 Experimental Mixed Packet Injector Tool v5.8
Originally created by Nelson Brito <nbrito@sekure.org>
Previously maintained by Fernando Mercęs <fernando@mentebinaria.com.br>
Maintained by Frederico Lamberti Pissarra <fredericopissarra@gmail.com>

Usage: t50 <host[/cidr]> [options]
Common Options:
    --threshold NUM           Threshold of packets to send     (default 1000)
    --flood                   This option supersedes the 'threshold'
    --encapsulated            Encapsulated protocol (GRE)      (default OFF)
 -B,--bogus-csum              Bogus checksum                   (default OFF)
    --shuffle                 Shuffling for T50 protocol       (default OFF)
 -q,--quiet                   Disable INFOs
    --turbo                   Extend the performance           (default OFF)
 -l,--list-protocols          List all available protocols
 -v,--version                 Print version and exit
 -h,--help                    Display this help and exit

GRE Options:
    --gre-seq-present         GRE sequence # present           (default OFF)
    --gre-key-present         GRE key present                  (default OFF)
    --gre-sum-present         GRE checksum present             (default OFF)
    --gre-key NUM             GRE key                          (default RANDOM)
    --gre-sequence NUM        GRE sequence #                   (default RANDOM)
    --gre-saddr ADDR          GRE IP source IP address         (default RANDOM)
    --gre-daddr ADDR          GRE IP destination IP address    (default RANDOM)

DCCP/TCP/UDP Options:
    --sport NUM               DCCP|TCP|UDP source port         (default RANDOM)
    --dport NUM               DCCP|TCP|UDP destination port    (default RANDOM)

TCP Options:
    --ack-seq NUM             TCP ACK sequence #               (default RANDOM)
    --sequence NUM            TCP SYN sequence #               (default RANDOM)
    --data-offset NUM         TCP data offset                  (default 5)
 -F,--fin                     TCP FIN flag                     (default OFF)
 -S,--syn                     TCP SYN flag                     (default OFF)
 -R,--rst                     TCP RST flag                     (default OFF)
 -P,--psh                     TCP PSH flag                     (default OFF)
 -A,--ack                     TCP ACK flag                     (default OFF)
 -U,--urg                     TCP URG flag                     (default OFF)
 -E,--ece                     TCP ECE flag                     (default OFF)
 -C,--cwr                     TCP CWR flag                     (default OFF)
 -W,--window NUM              TCP Window size                  (default NONE)
    --urg-pointer NUM         TCP URG pointer                  (default NONE)
    --mss NUM                 TCP Maximum Segment Size         (default NONE)
    --wscale NUM              TCP Window Scale                 (default NONE)
    --tstamp NUM:NUM          TCP Timestamp (TSval:TSecr)      (default NONE)
    --sack-ok                 TCP SACK-Permitted               (default OFF)
    --ttcp-cc NUM             T/TCP Connection Count (CC)      (default NONE)
    --ccnew NUM               T/TCP Connection Count (CC.NEW)  (default NONE)
    --ccecho NUM              T/TCP Connection Count (CC.ECHO) (default NONE)
    --sack NUM:NUM            TCP SACK Edges (Left:Right)      (default NONE)
    --md5-signature           TCP MD5 signature included       (default OFF)
    --authentication          TCP-AO authentication included   (default OFF)
    --auth-key-id NUM         TCP-AO authentication key ID     (default 1)
    --auth-next-key NUM       TCP-AO authentication next key   (default 1)
    --nop                     TCP No-Operation                 (default EOL)

IP Options:
 -s,--saddr ADDR              IP source IP address             (default RANDOM)
    --tos NUM                 IP type of service               (default 0x40)
    --id NUM                  IP identification                (default RANDOM)
    --frag-offset NUM         IP fragmentation offset          (default 0)
    --ttl NUM                 IP time to live                  (default 255)
    --protocol PROTO          IP protocol                      (default TCP)

ICMP Options:
    --icmp-type NUM           ICMP type                        (default 8)
    --icmp-code NUM           ICMP code                        (default 0)
    --icmp-gateway ADDR       ICMP redirect gateway            (default RANDOM)
    --icmp-id NUM             ICMP identification              (default RANDOM)
    --icmp-sequence NUM       ICMP sequence #                  (default RANDOM)

EGP Options:
    --egp-type NUM            EGP type                         (default 3)
    --egp-code NUM            EGP code                         (default 3)
    --egp-status NUM          EGP status                       (default 1)
    --egp-as NUM              EGP autonomous system            (default RANDOM)
    --egp-sequence NUM        EGP sequence #                   (default RANDOM)
    --egp-hello NUM           EGP hello interval               (default RANDOM)
    --egp-poll NUM            EGP poll interval                (default RANDOM)

RIP Options:
    --rip-command NUM         RIPv1/v2 command                 (default 2)
    --rip-family NUM          RIPv1/v2 address family          (default 2)
    --rip-address ADDR        RIPv1/v2 router address          (default RANDOM)
    --rip-metric NUM          RIPv1/v2 router metric           (default RANDOM)
    --rip-domain NUM          RIPv2 router domain              (default RANDOM)
    --rip-tag NUM             RIPv2 router tag                 (default RANDOM)
    --rip-netmask ADDR        RIPv2 router subnet mask         (default RANDOM)
    --rip-next-hop ADDR       RIPv2 router next hop            (default RANDOM)
    --rip-authentication      RIPv2 authentication included    (default OFF)
    --rip-auth-key-id NUM     RIPv2 authentication key ID      (default 1)
    --rip-auth-sequence NUM   RIPv2 authentication sequence #  (default RANDOM)

DCCP Options:
    --dccp-data-offset NUM    DCCP data offset                 (default VARY)
    --dccp-cscov NUM          DCCP checksum coverage           (default 0)
    --dccp-ccval NUM          DCCP HC-Sender CCID              (default RANDOM)
    --dccp-type NUM           DCCP type                        (default 0)
    --dccp-extended           DCCP extend for sequence #       (default OFF)
    --dccp-sequence-1 NUM     DCCP sequence #                  (default RANDOM)
    --dccp-sequence-2 NUM     DCCP extended sequence #         (default RANDOM)
    --dccp-sequence-3 NUM     DCCP sequence # low              (default RANDOM)
    --dccp-service NUM        DCCP service code                (default RANDOM)
    --dccp-acknowledge-1 NUM  DCCP acknowledgment # high       (default RANDOM)
    --dccp-acknowledge-2 NUM  DCCP acknowledgment # low        (default RANDOM)
    --dccp-reset-code NUM     DCCP reset code                  (default RANDOM)

RSVP Options:
    --rsvp-flags NUM          RSVP flags                       (default 1)
    --rsvp-type NUM           RSVP message type                (default 1)
    --rsvp-ttl NUM            RSVP time to live                (default 254)
    --rsvp-session-addr ADDR  RSVP SESSION destination address (default RANDOM)
    --rsvp-session-proto NUM  RSVP SESSION protocol ID         (default 1)
    --rsvp-session-flags NUM  RSVP SESSION flags               (default 1)
    --rsvp-session-port NUM   RSVP SESSION destination port    (default RANDOM)
    --rsvp-hop-addr ADDR      RSVP HOP neighbor address        (default RANDOM)
    --rsvp-hop-iface NUM      RSVP HOP logical interface       (default RANDOM)
    --rsvp-time-refresh NUM   RSVP TIME refresh interval       (default 360)
    --rsvp-error-addr ADDR    RSVP ERROR node address          (default RANDOM)
    --rsvp-error-flags NUM    RSVP ERROR flags                 (default 2)
    --rsvp-error-code NUM     RSVP ERROR code                  (default 2)
    --rsvp-error-value NUM    RSVP ERROR value                 (default 8)
    --rsvp-scope NUM          RSVP SCOPE # of address(es)      (default 1)
    --rsvp-address ADDR,...   RSVP SCOPE address(es)           (default RANDOM)
    --rsvp-style-option NUM   RSVP STYLE option vector         (default 18)
    --rsvp-sender-addr ADDR   RSVP SENDER TEMPLATE address     (default RANDOM)
    --rsvp-sender-port NUM    RSVP SENDER TEMPLATE port        (default RANDOM)
    --rsvp-tspec-traffic      RSVP TSPEC service traffic       (default OFF)
    --rsvp-tspec-guaranteed   RSVP TSPEC service guaranteed    (default OFF)
    --rsvp-tspec-r NUM        RSVP TSPEC token bucket rate     (default RANDOM)
    --rsvp-tspec-b NUM        RSVP TSPEC token bucket size     (default RANDOM)
    --rsvp-tspec-p NUM        RSVP TSPEC peak data rate        (default RANDOM)
    --rsvp-tspec-m NUM        RSVP TSPEC minimum policed unit  (default RANDOM)
    --rsvp-tspec-M NUM        RSVP TSPEC maximum packet size   (default RANDOM)
    --rsvp-adspec-ishop NUM   RSVP ADSPEC IS HOP count         (default RANDOM)
    --rsvp-adspec-path NUM    RSVP ADSPEC path b/w estimate    (default RANDOM)
    --rsvp-adspec-m NUM       RSVP ADSPEC minimum path latency (default RANDOM)
    --rsvp-adspec-mtu NUM     RSVP ADSPEC composed MTU         (default RANDOM)
    --rsvp-adspec-guaranteed  RSVP ADSPEC service guaranteed   (default OFF)
    --rsvp-adspec-Ctot NUM    RSVP ADSPEC ETE composed value C (default RANDOM)
    --rsvp-adspec-Dtot NUM    RSVP ADSPEC ETE composed value D (default RANDOM)
    --rsvp-adspec-Csum NUM    RSVP ADSPEC SLR point composed C (default RANDOM)
    --rsvp-adspec-Dsum NUM    RSVP ADSPEC SLR point composed D (default RANDOM)
    --rsvp-adspec-controlled  RSVP ADSPEC service controlled   (default OFF)
    --rsvp-confirm-addr ADDR  RSVP CONFIRM receiver address    (default RANDOM)

IPSEC Options:
    --ipsec-ah-length NUM     IPSec AH header length           (default NONE)
    --ipsec-ah-spi NUM        IPSec AH SPI                     (default RANDOM)
    --ipsec-ah-sequence NUM   IPSec AH sequence #              (default RANDOM)
    --ipsec-esp-spi NUM       IPSec ESP SPI                    (default RANDOM)
    --ipsec-esp-sequence NUM  IPSec ESP sequence #             (default RANDOM)

EIGRP Options:
    --eigrp-opcode NUM        EIGRP opcode                     (default 1)
    --eigrp-flags NUM         EIGRP flags                      (default RANDOM)
    --eigrp-sequence NUM      EIGRP sequence #                 (default RANDOM)
    --eigrp-acknowledge NUM   EIGRP acknowledgment #           (default RANDOM)
    --eigrp-as NUM            EIGRP autonomous system          (default RANDOM)
    --eigrp-type NUM          EIGRP type                       (default 258)
    --eigrp-length NUM        EIGRP length                     (default NONE)
    --eigrp-k1 NUM            EIGRP parameter K1 value         (default 1)
    --eigrp-k2 NUM            EIGRP parameter K2 value         (default 0)
    --eigrp-k3 NUM            EIGRP parameter K3 value         (default 1)
    --eigrp-k4 NUM            EIGRP parameter K4 value         (default 0)
    --eigrp-k5 NUM            EIGRP parameter K5 value         (default 0)
    --eigrp-hold NUM          EIGRP parameter hold time        (default 360)
    --eigrp-ios-ver NUM.NUM   EIGRP IOS release version        (default 12.4)
    --eigrp-rel-ver NUM.NUM   EIGRP PROTO release version      (default 1.2)
    --eigrp-next-hop ADDR     EIGRP [in|ex]ternal next-hop     (default RANDOM)
    --eigrp-delay NUM         EIGRP [in|ex]ternal delay        (default RANDOM)
    --eigrp-bandwidth NUM     EIGRP [in|ex]ternal bandwidth    (default RANDOM)
    --eigrp-mtu NUM           EIGRP [in|ex]ternal MTU          (default 1500)
    --eigrp-hop-count NUM     EIGRP [in|ex]ternal hop count    (default RANDOM)
    --eigrp-load NUM          EIGRP [in|ex]ternal load         (default RANDOM)
    --eigrp-reliability NUM   EIGRP [in|ex]ternal reliability  (default RANDOM)
    --eigrp-daddr ADDR/CIDR   EIGRP [in|ex]ternal address(es)  (default RANDOM)
    --eigrp-src-router ADDR   EIGRP external source router     (default RANDOM)
    --eigrp-src-as NUM        EIGRP external autonomous system (default RANDOM)
    --eigrp-tag NUM           EIGRP external arbitrary tag     (default RANDOM)
    --eigrp-proto-metric NUM  EIGRP external protocol metric   (default RANDOM)
    --eigrp-proto-id NUM      EIGRP external protocol ID       (default 2)
    --eigrp-ext-flags NUM     EIGRP external flags             (default RANDOM)
    --eigrp-address ADDR      EIGRP multicast sequence address (default RANDOM)
    --eigrp-multicast NUM     EIGRP multicast sequence #       (default RANDOM)
    --eigrp-authentication    EIGRP authentication included    (default OFF)
    --eigrp-auth-key-id NUM   EIGRP authentication key ID      (default 1)

OSPF Options:
    --ospf-type NUM           OSPF type                        (default 1)
    --ospf-length NUM         OSPF length                      (default NONE)
    --ospf-router-id ADDR     OSPF router ID                   (default RANDOM)
    --ospf-area-id ADDR       OSPF area ID                     (default 0.0.0.0)
 -1,--ospf-option-MT          OSPF multi-topology / TOS-based  (default RANDOM)
 -2,--ospf-option-E           OSPF external routing capability (default RANDOM)
 -3,--ospf-option-MC          OSPF multicast capable           (default RANDOM)
 -4,--ospf-option-NP          OSPF NSSA supported              (default RANDOM)
 -5,--ospf-option-L           OSPF LLS data block contained    (default RANDOM)
 -6,--ospf-option-DC          OSPF demand circuits supported   (default RANDOM)
 -7,--ospf-option-O           OSPF Opaque-LSA                  (default RANDOM)
 -8,--ospf-option-DN          OSPF DOWN bit                    (default RANDOM)
    --ospf-netmask ADDR       OSPF router subnet mask          (default RANDOM)
    --ospf-hello-interval NUM OSPF HELLO interval              (default RANDOM)
    --ospf-hello-priority NUM OSPF HELLO router priority       (default 1)
    --ospf-hello-dead NUM     OSPF HELLO router dead interval  (default 360)
    --ospf-hello-design ADDR  OSPF HELLO designated router     (default RANDOM)
    --ospf-hello-backup ADDR  OSPF HELLO backup designated     (default RANDOM)
    --ospf-neighbor NUM       OSPF HELLO # of neighbor(s)      (default NONE)
    --ospf-address ADDR,...   OSPF HELLO neighbor address(es)  (default RANDOM)
    --ospf-dd-mtu NUM         OSPF DD MTU                      (default 1500)
    --ospf-dd-dbdesc-MS       OSPF DD master/slave bit option  (default RANDOM)
    --ospf-dd-dbdesc-M        OSPF DD more bit option          (default RANDOM)
    --ospf-dd-dbdesc-I        OSPF DD init bit option          (default RANDOM)
    --ospf-dd-dbdesc-R        OSPF DD out-of-band resync       (default RANDOM)
    --ospf-dd-sequence NUM    OSPF DD sequence #               (default RANDOM)
    --ospf-dd-include-lsa     OSPF DD include LSA header       (default OFF)
    --ospf-lsa-age NUM        OSPF LSA age                     (default 360)
    --ospf-lsa-do-not-age     OSPF LSA do not age              (default OFF)
    --ospf-lsa-type NUM       OSPF LSA type                    (default 1)
    --ospf-lsa-id ADDR        OSPF LSA ID address              (default RANDOM)
    --ospf-lsa-router ADDR    OSPF LSA advertising router      (default RANDOM)
    --ospf-lsa-sequence NUM   OSPF LSA sequence #              (default RANDOM)
    --ospf-lsa-metric NUM     OSPF LSA metric                  (default RANDOM)
    --ospf-lsa-flag-B         OSPF Router-LSA border router    (default RANDOM)
    --ospf-lsa-flag-E         OSPF Router-LSA external router  (default RANDOM)
    --ospf-lsa-flag-V         OSPF Router-LSA virtual router   (default RANDOM)
    --ospf-lsa-flag-W         OSPF Router-LSA wild router      (default RANDOM)
    --ospf-lsa-flag-NT        OSPF Router-LSA NSSA translation (default RANDOM)
    --ospf-lsa-link-id ADDR   OSPF Router-LSA link ID          (default RANDOM)
    --ospf-lsa-link-data ADDR OSPF Router-LSA link data        (default RANDOM)
    --ospf-lsa-link-type NUM  OSPF Router-LSA link type        (default 1)
    --ospf-lsa-attached ADDR  OSPF Network-LSA attached router (default RANDOM)
    --ospf-lsa-larger         OSPF ASBR/NSSA-LSA ext. larger   (default OFF)
    --ospf-lsa-forward ADDR   OSPF ASBR/NSSA-LSA forward       (default RANDOM)
    --ospf-lsa-external ADDR  OSPF ASBR/NSSA-LSA external      (default RANDOM)
    --ospf-vertex-router      OSPF Group-LSA type router       (default RANDOM)
    --ospf-vertex-network     OSPF Group-LSA type network      (default RANDOM)
    --ospf-vertex-id ADDR     OSPF Group-LSA vertex ID         (default RANDOM)
    --ospf-lls-extended-LR    OSPF LLS Extended option LR      (default OFF)
    --ospf-lls-extended-RS    OSPF LLS Extended option RS      (default OFF)
    --ospf-authentication     OSPF authentication included     (default OFF)
    --ospf-auth-key-id NUM    OSPF authentication key ID       (default 1)
    --ospf-auth-sequence NUM  OSPF authentication sequence #   (default RANDOM)

Some considerations while running this program:
 1. There is no limitation of using as many options as possible.
 2. Report t50 bugs at https://gitlab.com/fredericopissarra/t50.git.
 3. Some header fields with default values MUST be set to '0' for RANDOM.
 4. Mandatory arguments to long options are mandatory for short options too.
 5. Be nice when using t50, the author DENIES its use for DoS/DDoS purposes.
 6. Running t50 with '--protocol T50' option sends ALL protocols sequentially.
[xtrnaw7@t540p /var/tmp/jwm/src/t50-5.8.0]$





tcpdump

"tcpdump, a powerful command-line packet analyzer; and libpcap, a portable C/C++ library for network traffic capture."


tcpdump usage

[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$ /var/tmp/jwm/sbin/tcpdump -h
tcpdump version 4.9.0
libpcap version 1.0.0
OpenSSL 1.0.2k-fips  26 Jan 2017
Usage: tcpdump [-aAbdDefhHIKlLnNOpqStuUvxX#] [ -B size ] [ -c count ]
        [ -C file_size ] [ -E algo:secret ] [ -F file ] [ -G seconds ]
        [ -i interface ] [ -M secret ] [ --number ]
        [ -Q in|out|inout ]
        [ -r file ] [ -s snaplen ] [ -T type ] [ --version ] [ -V file ]
        [ -w file ] [ -W filecount ] [ -y datalinktype ] [ -z postrotate-command ]
        [ -Z user ] [ expression ]
[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$





tcptrack

 tcptrack  - Monitor TCP connections on the network

tcptrack usage
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./tcptrack -h
Usage: ./tcptrack [-dfhvp] [-r
] -i [] [-T









testssl.sh

testssl.sh is a free command line tool which checks a server's service on any port for the support of TLS/SSL ciphers, protocols as well as recent cryptographic flaws and more.

testssl.sh usage [xtrnaw7@t540p /var/tmp/jwm]$  src/testssl/testssl.sh  --help

     "testssl.sh [options] <URI>"    or    "testssl.sh <options>"


"testssl.sh <options>", where <options> is:

     --help                        what you're looking at
     -b, --banner                  displays banner + version of testssl.sh
     -v, --version                 same as previous
     -V, --local                   pretty print all local ciphers
     -V, --local <pattern>         which local ciphers with <pattern> are available? If pattern is not a number: word match

     <pattern>                     is always an ignore case word pattern of cipher hexcode or any other string in the name, kx or bits

"testssl.sh <URI>", where <URI> is:

     <URI>                         host|host:port|URL|URL:port   port 443 is default, URL can only contain HTTPS protocol)

"testssl.sh [options] <URI>", where [options] is:

     -t, --starttls <protocol>     Does a default run against a STARTTLS enabled <protocol,
                                   protocol is <ftp|smtp|pop3|imap|xmpp|telnet|ldap|postgres|mysql> (latter 4 require supplied openssl)
     --xmpphost <to_domain>        For STARTTLS enabled XMPP it supplies the XML stream to-'' domain -- sometimes needed
     --mx <domain/host>            Tests MX records from high to low priority (STARTTLS, port 25)
     --file <fname|fname.gmap>     Mass testing option: Reads command lines from <fname>, one line per instance.
                                   Comments via # allowed, EOF signals end of <fname>. Implicitly turns on "--warnings batch".
                                   Alternatively: nmap output in greppable format (-oG) (1x port per line allowed)
     --mode <serial|parallel>      Mass testing to be done serial (default) or parallel (--parallel is shortcut for the latter)

single check as <options>  ("testssl.sh  URI" does everything except -E):
     -e, --each-cipher             checks each local cipher remotely
     -E, --cipher-per-proto        checks those per protocol
     -s, --std, --standard         tests certain lists of cipher suites by strength
     -p, --protocols               checks TLS/SSL protocols (including SPDY/HTTP2)
     -S, --server-defaults         displays the server's default picks and certificate info
     -P, --server-preference       displays the server's picks: protocol+cipher
     -x, --single-cipher <pattern> tests matched <pattern> of ciphers
                                   (if <pattern> not a number: word match)
     -c, --client-simulation       test client simulations, see which client negotiates with cipher and protocol
     -h, --header, --headers       tests HSTS, HPKP, server/app banner, security headers, cookie, reverse proxy, IPv4 address

     -U, --vulnerable              tests all (of the following) vulnerabilities (if applicable)
     -H, --heartbleed              tests for Heartbleed vulnerability
     -I, --ccs, --ccs-injection    tests for CCS injection vulnerability
     -T, --ticketbleed             tests for Ticketbleed vulnerability in BigIP loadbalancers
     -R, --renegotiation           tests for renegotiation vulnerabilities
     -C, --compression, --crime    tests for CRIME vulnerability (TLS compression issue)
     -B, --breach                  tests for BREACH vulnerability (HTTP compression issue)
     -O, --poodle                  tests for POODLE (SSL) vulnerability
     -Z, --tls-fallback            checks TLS_FALLBACK_SCSV mitigation
     -W, --sweet32                 tests 64 bit block ciphers (3DES, RC2 and IDEA): SWEET32 vulnerability
     -A, --beast                   tests for BEAST vulnerability
     -L, --lucky13                 tests for LUCKY13
     -F, --freak                   tests for FREAK vulnerability
     -J, --logjam                  tests for LOGJAM vulnerability
     -D, --drown                   tests for DROWN vulnerability
     -f, --pfs, --fs, --nsa        checks (perfect) forward secrecy settings
     -4, --rc4, --appelbaum        which RC4 ciphers are being offered?

tuning / connect options (most also can be preset via environment variables):
     --fast                        omits some checks: using openssl for all ciphers (-e), show only first
                                   preferred cipher
     --bugs                        enables the "-bugs" option of s_client, needed e.g. for some buggy F5s
     --assume-http                 if protocol check fails it assumes HTTP protocol and enforces HTTP checks
     --ssl-native                  fallback to checks with OpenSSL where sockets are normally used
     --openssl <PATH>              use this openssl binary (default: look in $PATH, $RUN_DIR of testssl.sh)
     --proxy <host:port|auto>      connect via the specified HTTP proxy, auto: autodetermination from $env ($http(s)_proxy)
     -6                            also use IPv6. Works only with supporting OpenSSL version and IPv6 connectivity
     --ip <ip>                     a) tests the supplied <ip> v4 or v6 address instead of resolving host(s) in URI
                                   b) arg "one" means: just test the first DNS returns (useful for multiple IPs)
     -n, --nodns                   do not try any DNS lookup
     --sneaky                      leave less traces in target logs: user agent, referer

output options (can also be preset via environment variables):
     --warnings <batch|off|false>  "batch" doesn't ask for a confirmation, "off" or "false" skips connection warnings
     --openssl-timeout <seconds>   useful to avoid hangers. <seconds> to wait before openssl connect will be terminated
     --quiet                       don't output the banner. By doing this you acknowledge usage terms normally appearing in the banner
     --wide                        wide output for tests like RC4, BEAST. PFS also with hexcode, kx, strength, RFC name
     --show-each                   for wide outputs: display all ciphers tested -- not only succeeded ones
     --mapping <openssl|           openssl: use the OpenSSL cipher suite name as the primary name cipher suite name form (default)
                rfc|                 rfc: use the RFC cipher suite name as the primary name cipher suite name form
                no-openssl|          no-openssl: don't display the OpenSSL cipher suite name, display RFC names only
                no-rfc>              no-rfc: don't display the RFC cipher suite name, display OpenSSL names only
     --color <0|1|2>               0: no escape or other codes,  1: b/w escape codes,  2: color (default)
     --colorblind                  swap green and blue in the output
     --debug <0-6>                 1: screen output normal but keeps debug output in /tmp/.  2-6: see "grep -A 5 '^DEBUG=' testssl.sh"

file output options (can also be preset via environment variables)
     --log, --logging              logs stdout to <NODE>-p<port#><YYYYMMDD-HHMM>.log in current working directory (cwd)
     --logfile <logfile>           logs stdout to <dir/NODE>-p<port#><YYYYMMDD-HHMM>.log if <logfile> is a dir or to a specified <logfile>
     --json                        additional output of findings to flat JSON file <NODE>-p<port#><YYYYMMDD-HHMM>.json in cwd
     --jsonfile <jsonfile>         additional output to the specified flat JSON file or directory, similar to --logfile
     --json-pretty                 additional JSON structured output of findings to a file <NODE>-p<port#><YYYYMMDD-HHMM>.json in cwd
     --jsonfile-pretty <jsonfile>  additional JSON structured output to the specified file or directory, similar to --logfile
     --csv                         additional output of findings to CSV file <NODE>-p<port#><YYYYMMDD-HHMM>.csv in cwd or directory
     --csvfile <csvfile>           additional output as CSV to the specified file or directory, similar to --logfile
     --html                        additional output as HTML to file <NODE>-p<port#><YYYYMMDD-HHMM>.html
     --htmlfile <htmlfile>         additional output as HTML to the specifed file or directory, similar to --logfile
     --hints                       additional hints to findings
     --severity <severity>         severities with lower level will be filtered for CSV+JSON, possible values <LOW|MEDIUM|HIGH|CRITICAL>
     --append                      if <logfile>, <csvfile>, <jsonfile> or <htmlfile> exists rather append then overwrite. Omits any header


Options requiring a value can also be called with '=' e.g. testssl.sh -t=smtp --wide --openssl=/usr/bin/openssl <URI>.
<URI> always needs to be the last parameter.


[xtrnaw7@t540p /var/tmp/jwm]$ 


testssl example
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ testssl.sh  www.heise.de

###########################################################
    testssl.sh       3.0beta from https://testssl.sh/dev/

      This program is free software. Distribution and
             modification under GPLv2 permitted.
      USAGE w/o ANY WARRANTY. USE IT AT YOUR OWN RISK!

       Please file bugs @ https://testssl.sh/bugs/

###########################################################

 Using "OpenSSL 1.0.2-chacha (1.0.2i-dev)" [~183 ciphers]
 on t540p:/var/tmp/jwm/testssl.sh-2.9dev/bin/openssl.Linux.x86_64
 (built: "Jun 22 19:32:29 2016", platform: "linux-x86_64")


 Start 2018-08-18 19:22:13        -->> 193.99.144.85:443 (www.heise.de) <<--

 Further IP addresses:   2a02:2e0:3fe:1001:7777:772e:2:85
 rDNS (193.99.144.85):   www.heise.de.
 Service detected:       HTTP


 Testing protocols via sockets except NPN+ALPN

 SSLv2      not offered (OK)
 SSLv3      not offered (OK)
 TLS 1      offered
 TLS 1.1    offered
 TLS 1.2    offered (OK)
 TLS 1.3    not offered
 NPN/SPDY   not offered
 ALPN/HTTP2 not offered

 Testing cipher categories

 NULL ciphers (no encryption)                  not offered (OK)
 Anonymous NULL Ciphers (no authentication)    not offered (OK)
 Export ciphers (w/o ADH+NULL)                 not offered (OK)
 LOW: 64 Bit + DES encryption (w/o export)     not offered (OK)
 Weak 128 Bit ciphers (SEED, IDEA, RC[2,4])    not offered (OK)
 Triple DES Ciphers (Medium)                   not offered (OK)
 High encryption (AES+Camellia, no AEAD)       offered (OK)
 Strong encryption (AEAD ciphers)              offered (OK)


 Testing robust (perfect) forward secrecy, (P)FS -- omitting Null Authentication/Encryption, 3DES, RC4

 PFS is offered (OK)          ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256 ECDHE-RSA-AES128-SHA
 Elliptic curves offered:     prime256v1 secp384r1


 Testing server preferences

 Has server cipher order?     yes (OK)
 Negotiated protocol          TLSv1.2
 Negotiated cipher            ECDHE-RSA-AES256-GCM-SHA384, 384 bit ECDH (P-384)
 Cipher order
    TLSv1:     ECDHE-RSA-AES256-SHA CAMELLIA256-SHA ECDHE-RSA-AES128-SHA AES128-SHA CAMELLIA128-SHA
    TLSv1.1:   ECDHE-RSA-AES256-SHA CAMELLIA256-SHA ECDHE-RSA-AES128-SHA AES128-SHA CAMELLIA128-SHA
    TLSv1.2:   ECDHE-RSA-AES256-GCM-SHA384 ECDHE-RSA-AES256-SHA384 ECDHE-RSA-AES256-SHA AES256-GCM-SHA384 CAMELLIA256-SHA ECDHE-RSA-AES128-GCM-SHA256 ECDHE-RSA-AES128-SHA256
               ECDHE-RSA-AES128-SHA AES128-GCM-SHA256 AES128-SHA256 AES128-SHA CAMELLIA128-SHA


 Testing server defaults (Server Hello)

 TLS extensions (standard)    "renegotiation info/#65281" "server name/#0" "EC point formats/#11"
 Session Ticket RFC 5077 hint (no lifetime advertised)
 SSL Session ID support       yes
 Session Resumption           Tickets: yes, ID: yes
 TLS clock skew               Random values, no fingerprinting possible
 Signature Algorithm          SHA256 with RSA
 Server key size              RSA 2048 bits
 Server key usage             Digital Signature, Key Encipherment
 Server extended key usage    TLS Web Server Authentication, TLS Web Client Authentication
 Serial / Fingerprints        169680B77D03783630D249E46E55DA13 / SHA1 EFDFF177036ABA3A8EDF588DDC0A7D2EA1A6D99F
                              SHA256 C829786C4CE014977F5830BB7D74FE42ABA1C3D31F63DEFEB6FBF45500E12627
 Common Name (CN)             www.heise.de
 subjectAltName (SAN)         www.heise.de heise.de
 Issuer                       COMODO RSA Domain Validation Secure Server CA (COMODO CA Limited from GB)
 Trust (hostname)             Ok via SAN and CN (same w/o SNI)
 Chain of trust               Ok  
 EV cert (experimental)       no
 Certificate Validity (UTC)   598 >= 60 days (2018-01-08 01:00 --> 2020-04-08 01:59)
 # of certificates provided   3
 Certificate Revocation List  http://crl.comodoca.com/COMODORSADomainValidationSecureServerCA.crl
 OCSP URI                     http://ocsp.comodoca.com
 OCSP stapling                not offered
 OCSP must staple extension   --
 DNS CAA RR (experimental)    not offered
 Certificate Transparency     --


 Testing HTTP header response @ "/"

 HTTP Status Code             200 OK
 HTTP clock skew              -5 sec from localtime
 Strict Transport Security    2592000 s = 30 days is too short ( >=15465600 seconds recommended), just this domain
 Public Key Pinning           --
 Server banner                nginx
 Application banner           --
 Cookie(s)                    (none issued at "/")
 Security headers             X-Frame-Options DENY
 Reverse Proxy banner         --


 Testing vulnerabilities

 Heartbleed (CVE-2014-0160)                not vulnerable (OK), no heartbeat extension
 CCS (CVE-2014-0224)                       not vulnerable (OK)
 Ticketbleed (CVE-2016-9244), experiment.  not vulnerable (OK), no session ticket extension
 ROBOT                                     not vulnerable (OK)
 Secure Renegotiation (CVE-2009-3555)      not vulnerable (OK)
 Secure Client-Initiated Renegotiation     not vulnerable (OK)
 CRIME, TLS (CVE-2012-4929)                not vulnerable (OK)
 BREACH (CVE-2013-3587)                    potentially NOT ok, uses gzip HTTP compression. - only supplied "/" tested
                                           Can be ignored for static pages or if no secrets in the page
 POODLE, SSL (CVE-2014-3566)               not vulnerable (OK)
 TLS_FALLBACK_SCSV (RFC 7507)              Probably OK. But received non-RFC-compliant "handshake failure" instead of "inappropriate fallback"
 SWEET32 (CVE-2016-2183, CVE-2016-6329)    not vulnerable (OK)
 FREAK (CVE-2015-0204)                     not vulnerable (OK)
 DROWN (CVE-2016-0800, CVE-2016-0703)      not vulnerable on this host and port (OK)
                                           make sure you don't use this certificate elsewhere with SSLv2 enabled services
                                           https://censys.io/ipv4?q=C829786C4CE014977F5830BB7D74FE42ABA1C3D31F63DEFEB6FBF45500E12627 could help you to find out
 LOGJAM (CVE-2015-4000), experimental      not vulnerable (OK): no DH EXPORT ciphers, no DH key detected
 BEAST (CVE-2011-3389)                     TLS1: ECDHE-RSA-AES256-SHA CAMELLIA256-SHA ECDHE-RSA-AES128-SHA AES128-SHA CAMELLIA128-SHA
                                           VULNERABLE -- but also supports higher protocols  TLSv1.1 TLSv1.2 (likely mitigated)
 LUCKY13 (CVE-2013-0169), experimental     potentially VULNERABLE, uses cipher block chaining (CBC) ciphers with TLS. Check patches
 RC4 (CVE-2013-2566, CVE-2015-2808)        no RC4 ciphers detected (OK)


 Testing 364 ciphers via OpenSSL plus sockets against the server, ordered by encryption strength

Hexcode  Cipher Suite Name (OpenSSL)       KeyExch.   Encryption  Bits     Cipher Suite Name (RFC)
-----------------------------------------------------------------------------------------------------------------------------
 xc030   ECDHE-RSA-AES256-GCM-SHA384       ECDH 384   AESGCM      256      TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384             
 xc028   ECDHE-RSA-AES256-SHA384           ECDH 384   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384             
 xc014   ECDHE-RSA-AES256-SHA              ECDH 384   AES         256      TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA                
 x9d     AES256-GCM-SHA384                 RSA        AESGCM      256      TLS_RSA_WITH_AES_256_GCM_SHA384                   
 x84     CAMELLIA256-SHA                   RSA        Camellia    256      TLS_RSA_WITH_CAMELLIA_256_CBC_SHA                 
 xc02f   ECDHE-RSA-AES128-GCM-SHA256       ECDH 384   AESGCM      128      TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256             
 xc027   ECDHE-RSA-AES128-SHA256           ECDH 384   AES         128      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256             
 xc013   ECDHE-RSA-AES128-SHA              ECDH 384   AES         128      TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA                
 x9c     AES128-GCM-SHA256                 RSA        AESGCM      128      TLS_RSA_WITH_AES_128_GCM_SHA256                   
 x3c     AES128-SHA256                     RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA256                   
 x2f     AES128-SHA                        RSA        AES         128      TLS_RSA_WITH_AES_128_CBC_SHA                      
 x41     CAMELLIA128-SHA                   RSA        Camellia    128      TLS_RSA_WITH_CAMELLIA_128_CBC_SHA                 


 Running client simulations via sockets

 Android 4.2.2                TLSv1.0 ECDHE-RSA-AES256-SHA, 384 bit ECDH (P-384)
 Android 4.4.2                TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 384 bit ECDH (P-384)
 Android 5.0.0                TLSv1.2 ECDHE-RSA-AES256-SHA, 384 bit ECDH (P-384)
 Android 6.0                  TLSv1.2 ECDHE-RSA-AES256-SHA, 256 bit ECDH (P-256)
 Android 7.0                  TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Chrome 57 Win 7              TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Chrome 65 Win 7              TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Firefox 53 Win 7             TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Firefox 59 Win 7             TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 IE 6 XP                      No connection
 IE 7 Vista                   TLSv1.0 ECDHE-RSA-AES256-SHA, 256 bit ECDH (P-256)
 IE 8 Win 7                   TLSv1.0 ECDHE-RSA-AES256-SHA, 256 bit ECDH (P-256)
 IE 8 XP                      No connection
 IE 11 Win 7                  TLSv1.2 ECDHE-RSA-AES256-SHA384, 256 bit ECDH (P-256)
 IE 11 Win 8.1                TLSv1.2 ECDHE-RSA-AES256-SHA384, 256 bit ECDH (P-256)
 IE 11 Win Phone 8.1          TLSv1.2 ECDHE-RSA-AES256-SHA, 256 bit ECDH (P-256)
 IE 11 Win 10                 TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Edge 13 Win 10               TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Edge 13 Win Phone 10         TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Edge 15 Win 10               TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Opera 17 Win 7               TLSv1.2 ECDHE-RSA-AES256-SHA, 256 bit ECDH (P-256)
 Safari 9 iOS 9               TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Safari 9 OS X 10.11          TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Safari 10 OS X 10.12         TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Apple ATS 9 iOS 9            TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Tor 17.0.9 Win 7             TLSv1.0 ECDHE-RSA-AES256-SHA, 256 bit ECDH (P-256)
 Java 6u45                    TLSv1.0 AES128-SHA
 Java 7u25                    TLSv1.0 ECDHE-RSA-AES128-SHA, 256 bit ECDH (P-256)
 Java 8u161                   TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 Java 9.0.4                   TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)
 OpenSSL 1.0.1l               TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 384 bit ECDH (P-384)
 OpenSSL 1.0.2e               TLSv1.2 ECDHE-RSA-AES256-GCM-SHA384, 256 bit ECDH (P-256)

 Done 2018-08-18 19:23:16 [  65s] -->> 193.99.144.85:443 (www.heise.de) <<--


[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


Screenshots













tiptop

tiptop can be used to monitor hardware counter.

"Hardware performance monitoring counters have recently received a lot of attention. They have been used by diverse communities to understand and improve the quality of computing systems: for example, architects use them to extract application characteristics and propose new hardware mechanisms; compiler writers study how generated code behaves on particular hardware; software developers identify critical regions of their applications and evaluate design choices to select the best performing implementation. We propose that counters be used by all categories of users, in particular non-experts, and we advocate that a few simple metrics derived from these counters are relevant and useful. For example, a low IPC (number of executed instructions per cycle) indicates that the hardware is not performing at its best; a high cache miss ratio can suggest several causes, such as conflicts between processes in a multicore environment."

tiptop usage
Usage: ./src/tiptop [option]
    -b             run in batch mode
    -c             use command line instead of process name
    --cpu-min m    minimum %CPU to display a process
    -d delay       delay in seconds between refreshes
    -E filename    file where errors are logged
    --epoch        add epoch at beginning of each line
    -h --help      print this message
    -H             show threads
    -K --kernel    show kernel activity
    -i             also display idle processes
    --list-screens display list of available screens
    -n num         max number of refreshes
    -o outfile     output file in batch mode
    --only-conf    Disable default screen, only configuration
    -p --pid pid|name  only display task with this PID/name
    -S num         screen number to display
    --sticky       keep final status of dead processes
    --timestamp    add timestamp at beginning of each line
    -u userid      only show user's processes
    -U             show user name
    -v             print version and exit
    --version      print legalese and exit
    -W path        Used configuration file pointed by path
    -w pid|name    watch this process (highlighted)







trace-cmd

"The trace-cmd(1) command interacts with the Ftrace tracer that is built inside the Linux kernel. It interfaces with the Ftrace specific files found in the debugfs file system under the tracing directory. A COMMAND must be specified to tell trace-cmd what to do. "

trace-cmd usage
[xtrnaw7@t540p /var/tmp/jwm/src/trace-cmd-v2.7]$  ../../bin/trace-cmd -h

trace-cmd version 2.7.

usage:
  trace-cmd [COMMAND] ...

  commands:
     record - record a trace into a trace.dat file
     start - start tracing without recording into a file
     extract - extract a trace from the kernel
     stop - stop the kernel from recording trace data
     restart - restart the kernel trace data recording
     show - show the contents of the kernel tracing buffer
     reset - disable all kernel tracing and clear the trace buffers
     clear - clear the trace buffers
     report - read out the trace stored in a trace.dat file
     stream - Start tracing and read the output directly
     profile - Start profiling and read the output directly
     hist - show a historgram of the trace.dat information
     stat - show the status of the running tracing (ftrace) system
     split - parse a trace.dat file into smaller file(s)
     options - list the plugin options available for trace-cmd report
     listen - listen on a network socket for trace clients
     list - list the available events, plugins or options
     restore - restore a crashed record
     snapshot - take snapshot of running trace
     stack - output, enable or disable kernel stack tracing
     check-events - parse trace event formats

[xtrnaw7@t540p /var/tmp/jwm/src/trace-cmd-v2.7]$



trace-cmd examples
xx
xx


see also Using the ftrace interface with shell



wavemon

wavemon is a wireless device monitoring application that allows you to watch
signal and noise levels, packet statistics, device configuration and network
parameters of your wireless network hardware. It should work (though with
varying features) with all devices supported by the Linux kernel.

wavemon usage
[xtrnaw7@t540p /var/tmp/jwm/bin]$ ./wavemon -h
usage: wavemon [ -hgv ] [ -i ifname ]
  -g            Ensure screen is sufficiently dimensioned
  -h            This help screen
  -i <ifname>   Use specified network interface (default: auto)
  -v            Print version details
[xtrnaw7@t540p /var/tmp/jwm/bin]$









zmap


ZMap is a fast single packet network scanner designed for Internet-wide network surveys


zmap usage
[xtrnaw7@t540p /var/tmp/jwm]$ ./bin/zmap -h
Usage: zmap [OPTION]... [SUBNETS]...
A fast Internet-wide scanner.

Basic arguments:
  -p, --target-port=port        port number to scan (for TCP and UDP scans)
  -o, --output-file=name        Output file
  -b, --blocklist-file=path     File of subnets to exclude, in CIDR notation,
                                  e.g. 192.168.0.0/16
  -w, --allowlist-file=path     File of subnets to constrain scan to, in CIDR
                                  notation, e.g. 192.168.0.0/16
  -I, --list-of-ips-file=path   List of individual addresses to scan in random
                                  order. Use --white-list file unless >1
                                  million IPs

Scan options:
  -r, --rate=pps                Set send rate in packets/sec
  -B, --bandwidth=bps           Set send rate in bits/second (supports suffixes
                                  G, M and K)
      --batch=pps               Set the number of packets to send per iteration
  -n, --max-targets=n           Cap number of targets to probe (as a number or
                                  a percentage of the address space)
  -t, --max-runtime=secs        Cap length of time for sending packets
  -N, --max-results=n           Cap number of results to return
  -P, --probes=n                Number of probes to send to each IP
                                  (default=`1')
  -c, --cooldown-time=secs      How long to continue receiving after sending
                                  last probe  (default=`8')
  -e, --seed=n                  Seed used to select address permutation
      --retries=n               Max number of times to try to send packet if
                                  send fails  (default=`10')
  -d, --dryrun                  Don't actually send packets
      --shards=N                Set the total number of shards  (default=`1')
      --shard=n                 Set which shard this scan is (0 indexed)
                                  (default=`0')

Network options:
  -s, --source-port=port|range  Source port(s) for scan packets
  -S, --source-ip=ip|range      Source address(es) for scan packets
  -G, --gateway-mac=addr        Specify gateway MAC address
      --source-mac=addr         Source MAC address
  -i, --interface=name          Specify network interface to use
  -X, --iplayer                 Sends IP packets instead of Ethernet (for VPNs)

Probe Modules:
  -M, --probe-module=name       Select probe module  (default=`tcp_synscan')
      --probe-args=args         Arguments to pass to probe module
      --probe-ttl=n             Set TTL value for probe IP packets
                                  (default=`255')
      --list-probe-modules      List available probe modules

Data Output:
  -f, --output-fields=fields    Fields that should be output in result set
  -O, --output-module=name      Select output module  (default=`default')
      --output-args=args        Arguments to pass to output module
      --output-filter=filter    Specify a filter over the response fields to
                                  limit what responses get sent to the output
                                  module
      --list-output-modules     List available output modules
      --list-output-fields      List all fields that can be output by selected
                                  probe module

Logging and Metadata:
  -v, --verbosity=n             Level of log detail (0-5)  (default=`3')
  -l, --log-file=name           Write log entries to file
  -L, --log-directory=directory Write log entries to a timestamped file in this
                                  directory
  -m, --metadata-file=name      Output file for scan metadata (JSON)
  -u, --status-updates-file=name
                                Write scan progress updates to CSV file
  -q, --quiet                   Do not print status updates
      --disable-syslog          Disables logging messages to syslog
      --notes=notes             Inject user-specified notes into scan metadata
      --user-metadata=json      Inject user-specified JSON metadata into scan
                                  metadata

Additional options:
  -C, --config=filename         Read a configuration file, which can specify
                                  any of these options
                                  (default=`/etc/zmap/zmap.conf')
      --max-sendto-failures=n   Maximum NIC sendto failures before scan is
                                  aborted  (default=`-1')
      --min-hitrate=n           Minimum hitrate that scan can hit before scan
                                  is aborted  (default=`0.0')
  -T, --sender-threads=n        Threads used to send packets  (default=`1')
      --cores=STRING            Comma-separated list of cores to pin to
      --ignore-invalid-hosts    Deprecated; use --ignore-blocklist-errors
                                  instead
      --ignore-blocklist-errors Ignore invalid entries in allowlist/blocklist
                                  file. Equivalent to --ignore-invalid-hosts
  -h, --help                    Print help and exit
  -V, --version                 Print version and exit

Examples:
    zmap -p 80 (scan the Internet for hosts on tcp/80 and output to stdout)
    zmap -N 5 -B 10M -p 80 (find 5 HTTP servers, scanning at 10 Mb/s)
    zmap -p 80 10.0.0.0/8 192.168.0.0/16 -o (scan both subnets on tcp/80)
    zmap -p 80 1.2.3.4 10.0.0.3 (scan 1.2.3.4, 10.0.0.3 on tcp/80)

Probe-module (tcp_synscan) Help:
Probe module that sends a TCP SYN packet to a specific port. Possible
classifications are: synack and rst. A SYN-ACK packet is considered a success
and a reset packet is considered a failed response.

Output-module (csv) Help:
By default, ZMap prints out unique, successfulIP addresses (e.g., SYN-ACK from
a TCP SYN scan) in ASCII form (e.g., 192.168.1.5) to stdout or the specified
output file. Internally this is handled by the "csv" output module and is
equivalent to running zmap --output-module=csv --output-fields=saddr
--output-filter="success = 1 && repeat = 0".
[xtrnaw7@t540p /var/tmp/jwm]$




zmap examples
[JWM session] [root@t540p /var/tmp/jwm]# zmap -C ./etc/zmap/zmap.conf  -i enp0s25 -p 80 192.168.1.0/24
Dec 24 11:42:35.613 [INFO] zmap: output module: csv
Dec 24 11:42:35.613 [INFO] csv: no output file selected, will use stdout
Dec 24 11:42:35.632 [INFO] recv: Data link layer Ethernet
 0:00 0%; send: 0 0 p/s (0 p/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
 0:00 0%; send: 4 5.98 Kp/s (199 p/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
192.168.1.1
192.168.1.251
192.168.1.151
192.168.1.253
192.168.1.249
 0:01 13%; send: 256 done (5.79 Kp/s avg); recv: 5 5 p/s (4 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:02 25%; send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (2 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:03 38%; send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (1 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:04 50%; send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (1 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:05 62% (4s left); send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:06 75% (3s left); send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:07 87% (2s left); send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
 0:08 100% (1s left); send: 256 done (5.79 Kp/s avg); recv: 5 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 1.95%
Dec 24 11:42:44.634 [INFO] zmap: completed
[JWM session] [root@t540p /var/tmp/jwm]#


[xtrnaw7@t540p /var/tmp/jwm]$ sudo bin/zmap -i enp0s25 -p 80
Dec 24 11:15:57.924 [INFO] zmap: output module: csv
Dec 24 11:15:57.924 [INFO] csv: no output file selected, will use stdout
Dec 24 11:15:57.945 [INFO] recv: Data link layer Ethernet
 0:00 0%; send: 4 1 p/s (181 p/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
 0:00 0%; send: 73 9.69 Kp/s (2.50 Kp/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
 0:01 0%; send: 10057 9.98 Kp/s (9.77 Kp/s avg); recv: 0 0 p/s (0 p/s avg); drops: 0 p/s (0 p/s avg); hitrate: 0.00%
51.38.65.14
213.231.172.95
69.136.143.225
78.206.18.54
37.44.128.79
18.189.15.94
92.123.73.22
115.29.4.231
103.72.153.208
112.125.197.141
92.204.176.37
122.152.212.100
104.20.174.53
23.41.198.21
193.206.41.141
153.126.154.52
64.85.247.58
84.228.227.198
176.88.203.148
54.77.19.159
155.159.213.245
104.18.131.82
95.101.195.88
...





Compiling JWM / Linux



Note:

Please check the hints in the section Hints for Compiling the tools  and the hints in the table Tools_installed_in_JWM_Linux  if you get an error while compiling the tools.


If no working version of JWM / Linux for your Linux distribution exists you can compile a new version yourself. To do that download one of the existing JWM / Linux archives (it does not matter which) and unpack the archive in the directory /var/tmp.

Start a JWM / Linux session (see here)

Then change to the directory with JWM / Linux and issue

cd compile_scripts
./make_tools.sh cleanup lib
./make_tools.sh preparecompile all
./make_tools.sh


(see Example output of compiling the tools in parallel sessions)

The script then compiles all tools. This is done in multiple parallel sessions. The default configuration is to start all processes in parallel -- to change this behaviour you can change it  with the parameter -w and -W (these are parameter for execute_scripts.sh; make_tools.sh will forward them to execute_scripts.sh):

     -W timeout[/intervall]
              "timeout" is the timeout for background processes and
              "intervall" is the wait intervall for background processes.
              Use "-1" or "none" for the timeout value to disable the
              timeout.
              Current values:
                Timeout: 1h (= 3600 second(s) )
                Intervall: 2s (= 2 second(s) )
              Use a trailing "m" for times in minutes or a trailing "h"
              for times in hours; "s" is for seconds which is the default
              if neither "m" nor "h" is used.
              Use "default" for any value to use the default value.
              Use " -W /intervall" to only change the intervall.
              You can also use "," to separate the values.
              This parameter is only used if the commands are executed
              in parallel (parameter "-d")
              Long format: --timeout

      -w noOfBackgroundprocesses[/startIntervall[/maxStartTime]]
              "noOfBackgroundprocesses" is the max. number of background
              processes running at the same time, "startIntervall" is the
              wait intervall and "maxStartTime" is the timeout for starting
              the background processes.
              Use "-1" or "none" for an unlimited number of parallel
              background processes.
              Use "-1" or "none" for the timeout value to disable
              the timeout.
              Current values:
                Max. number of parallel running background processes: -1
                Wait intervall: 5s (= 5 second(s) )
                Timeout value: 5m (= 300 second(s) )
              Use a trailing "m" for times in minutes or a trailing "h"
              for times in hours; "s" is for seconds which is the default
              if neither "m" nor "h" is used.
              Use "default" for any value to use the default value.
              Use " -w /startIntervall" to only change the start intervall.
              Use " -w //maxStartTime" to only change the timeout
              You can also use "," to separate the values.             
              This parameter is only used if the commands are executed
              in parallel (parameter "-d")
              Long format: --noOfbackgroundProcesses


e.g to use up to 6 but not more parallel processes use

cd compile_scripts
./make_tools.sh cleanup lib
./make_tools.sh preparecompile all
./make_tools.sh -w 6



To compile the tools in a single session in sequential order use:

cd compile_scripts
./make_tools.sh cleanup lib
./make_tools.sh preparecompile all
./make_tools.sh +d


(see Example output of compiling the tools sequential)

Note:

make_tools.sh and all other compile scripts for JWM / Linux are in the directory ${JWM_DIR}/compile_scripts.


The compile scripts write a log file for each compile process in the directory ${JWM_DIR}/workdir, the name of the logfile is

./compile_<toolname>.sh.<PID>.log

(PID is the process id of the compile process)

The compile scripts also copies the new binaries and libraries to the directories ${JWM_DIR}/bin, ${JWM_DIR}/sbin, or ${JWM_DIR}/lib  (some manual; some via "make install"). If a tool contains manual pages these are copied to ${JWM_DIR}/man/man#.


To compile a single tool use the script

./compile_<toolname>.sh

where <toolname> is the name of the tool to compile. E.g. to compile the tool cdpr do:

[xtrnaw7@t540p jwm]$ cd compile_scripts/
[xtrnaw7@t540p compile_scripts]$  ./make_tools.sh preparecompile cdpr
[xtrnaw7@t540p compile_scripts]$ ./compile_cdpr.sh

 ----------------------------------------------------------------------
[compile_cdpr.sh] Start compiling the tool cdpr at So 8. Jun 18:29:32 CEST 2014 ...

rm -f cdpr
gcc -Wall -W -O2 cdpr.c cdprs.c conffile.c -lpcap -o cdpr
cdpr.c: In function ‘dump_ipv6’:
cdpr.c:109:26: warning: variable ‘p_ipv6’ set but not used [-Wunused-but-set-variable]
     register const char *p_ipv6;
                          ^
rm -f cdpr



To compile a tool even if it's already compiled you can use the parameter -f for the compile script e.g.

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$ ./compile_cdpr.sh
JWM_DIR is "/var/tmp/jwm"
[compile_cdpr.sh] The tool "cdpr" is already compiled

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$ ./compile_cdpr.sh  -f
JWM_DIR is "/var/tmp/jwm"

 ----------------------------------------------------------------------
[compile_cdpr.sh] Start compiling the tool cdpr at Sun Aug 26 10:08:33 CEST 2018 ...

*** Compiling the tool cdpr-2.4 ...
rm -f cdpr
gcc -Wall -W -O2 -I../../include/ cdpr.c cdprs.c conffile.c -lpcap -L../../lib -o cdpr
cdpr.c: In function ‘dump_ipv6’:
cdpr.c:109:26: warning: variable ‘p_ipv6’ set but not used [-Wunused-but-set-variable]
     register const char *p_ipv6;
                          ^~~~~~
rm -f cdpr
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$


or use make_tools.sh with the parameter forcecompile, e.g

[xtrnaw7@t540p /var/tmp/jwm]$ ./compile_scripts/make_tools.sh compile cdpr
JWM_DIR is "/var/tmp/jwm"
 ... no general errors found.
JWM_DIR is "/var/tmp/jwm"
[compile_cdpr.sh] The tool "cdpr" is already compiled


[xtrnaw7@t540p /var/tmp/jwm]$ ./compile_scripts/make_tools.sh forcecompile cdpr
JWM_DIR is "/var/tmp/jwm"
 ... no general errors found.
JWM_DIR is "/var/tmp/jwm"

 ----------------------------------------------------------------------
[compile_cdpr.sh] Start compiling the tool cdpr at Mon Oct  3 15:43:28 CEST 2016 ...

*** Compiling the tool cdpr-2.4 ...
rm -f cdpr
gcc -Wall -W -O2 -I../../include/ cdpr.c cdprs.c conffile.c -lpcap -L../../lib -o cdpr
cdpr.c: In function ‘dump_ipv6’:
cdpr.c:109:26: warning: variable ‘p_ipv6’ set but not used [-Wunused-but-set-variable]
     register const char *p_ipv6;
                          ^
rm -f cdpr
[xtrnaw7@t540p /var/tmp/jwm]$



To change the target directory for JWM / Linux (that is /var/tmp/jwm) create the new directory and unpack the tar archive in that directory.
Before calling make_tools.sh there edit the include script jwm_env and change the value for the variable JWM_DIR in that script.

Note that not all tools compile out of the box on every Linux distribution. Therefor the compile scripts use the file ${JWM_DIR}/NO_COMPILE_LIST to decide if a tool should be compiled in a specific distribution or not.

The file NO_COMPILE_LIST is a simple text file with the following format:

# This file lists the packages that should not be compiled
# on some distributions
#
# format:
#   lines beginning with # are ignored
#   all other lines should have the format
#
# Distribution_name Release architecture : <packages that should not be compiled>
#
# Distribution_name is the output of the command "lsb_release -s -d"
# Release is the output of the command "uname -r"
# Architecture is the output of the command "uname -m"
#
# All lines must start in column 1!
#
# e.g. to disable the compile of numatop and powertop on Linux Mint 14 Nadia add the line:
#
# Linux Mint 14 Nadia 3.5.0-41-generic x86_64 : numatop powertop
#
# partial OS descriptions can also be used, e.g.
#
# to disable the compile of numatop for all versions of Linux Mint use
#
# Linux Mint : numatop
#
# to disable the compile of pchar and powertop in all Linux distributions with kernel 3.19.8 use
#
#  3.19.8- : pchar powertop
#
Red Hat Enterprise Linux Workstation release 6.4 (Santiago) 2.6.32-358.11.1.el6.x86_64 x86_64 : powertop latencytop numatop
Enterprise Linux Enterprise Linux Server release 5.4 (Carthage) 2.6.18-164.el5 x86_64 : powertop latencytop numatop
openSUSE 11.2 (x86_64) 2.6.31.5-0.1-desktop x86_64 : powertop latencytop numatop pchar
#


To add a tool to the no compile list for your distribution issue:

./make_tools.sh nocompile <toolname>

The compile scripts  save the current compile status so that the already compiled tools do not get compiled again if make_tools.sh is called a second time. To force the recompile of an already compiled tool use

./make_tools.sh preparecompile <toolname>

To get the compile status for all tools use

./check_compile_status.sh

e.g.

check_compile_status.sh output
[JWM session] [xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$ ./check_compile_status.sh
JWM_DIR is "/var/tmp/jwm"

[check_compile_status.sh] The compile status is:

Tool                 Compile status  (newest) Logfile                                                                                     compile script      
---------------------------------------------------------------------------------------------------------------------------------------------------------------
atop                 compiled        Size: 13822, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_atop.sh.3903.log                 ./compile_atop.sh   
bmon                 compiled        Size: 10338, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_bmon.sh.3903.log                 ./compile_bmon.sh   
bonnie++             compiled        Size: 6806, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_bonnie++.sh.3903.log              ./compile_bonnie++.sh
busybox              compiled        Size: 22064, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_busybox.sh.3903.log              ./compile_busybox.sh
bvi                  compiled        Size: 1729, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_bvi.sh.3903.log                   ./compile_bvi.sh    
bwm_ng               compiled        Size: 18666, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_bwm_ng.sh.3903.log               ./compile_bwm_ng.sh 
cdpr                 compiled        Size: 796, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_cdpr.sh.3903.log                   ./compile_cdpr.sh   
cpulimit             compiled        Size: 590, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_cpulimit.sh.3903.log               ./compile_cpulimit.sh
cpumon               compiled        Size: 1574, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_cpumon.sh.3903.log                ./compile_cpumon.sh 
cpustat              compiled        Size: 851, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_cpustat.sh.3903.log                ./compile_cpustat.sh
darkstat             compiled        Size: 3986, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_darkstat.sh.3903.log              ./compile_darkstat.sh
dhtest               compiled        Size: 736, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_dhtest.sh.3903.log                 ./compile_dhtest.sh 
dmidecode            compiled        Size: 2276, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_dmidecode.sh.3903.log             ./compile_dmidecode.sh
dstat                compiled        Size: 510, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_dstat.sh.3903.log                  ./compile_dstat.sh  
eventstat            compiled        Size: 861, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_eventstat.sh.3903.log              ./compile_eventstat.sh
fiemap               compiled        Size: 681, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_fiemap.sh.3903.log                 ./compile_fiemap.sh 
fio                  compiled        Size: 114012, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_fio.sh.3903.log                 ./compile_fio.sh    
fnotifystat          compiled        Size: 4072, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_fnotifystat.sh.3903.log           ./compile_fnotifystat.sh
forkstat             compiled        Size: 897, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_forkstat.sh.3903.log               ./compile_forkstat.sh
fspy                 compiled        Size: 3070, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_fspy.sh.3903.log                  ./compile_fspy.sh   
hdperf               compiled        Size: 595, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_hdperf.sh.3903.log                 ./compile_hdperf.sh 
health-check         compiled        Size: 2215, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_health-check.sh.3903.log          ./compile_health-check.sh
horst                compiled        Size: 6180, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_horst.sh.3903.log                 ./compile_horst.sh  
hostscope            compiled        Size: 7933, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_hostscope.sh.3903.log             ./compile_hostscope.sh
hping2               compiled        Size: 9542, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_hping2.sh.3903.log                ./compile_hping2.sh 
htop                 compiled        Size: 30885, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_htop.sh.3903.log                 ./compile_htop.sh   
ibmonitor            compiled        Size: 517, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_ibmonitor.sh.3903.log              ./compile_ibmonitor.sh
ifstat               compiled        Size: 2802, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_ifstat.sh.3903.log                ./compile_ifstat.sh 
iftop                compiled        Size: 10023, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_iftop.sh.3903.log                ./compile_iftop.sh  
inotify              compiled        Size: 16134, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_inotify.sh.3903.log              ./compile_inotify.sh
IntelPCM             compiled        Size: 3942, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_IntelPCM.sh.3903.log              ./compile_IntelPCM.sh
iozone               compiled        Size: 13509, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_iozone.sh.3903.log               ./compile_iozone.sh 
ipaudit              compiled        Size: 7557, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_ipaudit.sh.3903.log               ./compile_ipaudit.sh
ipband               compiled        Size: 7164, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_ipband.sh.3903.log                ./compile_ipband.sh 
iperf                compiled        Size: 33590, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_iperf.sh.3903.log                ./compile_iperf.sh  
iptraf-ng            compiled        Size: 6112, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_iptraf-ng.sh.3903.log             ./compile_iptraf-ng.sh
iptraf               compiled        Size: 32874, Date: Aug 26 10:15, Name: /var/tmp/jwm/workdir/compile_iptraf.sh.3903.log               ./compile_iptraf.sh 
iptstate             compiled        Size: 2756, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_iptstate.sh.3903.log              ./compile_iptstate.sh
jnettop              compiled        Size: 19608, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_jnettop.sh.3903.log              ./compile_jnettop.sh
justniffer           compiled        Size: 30337, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_justniffer.sh.3903.log           ./compile_justniffer.sh
latencytop           compiled        Size: 4026, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_latencytop.sh.3903.log            ./compile_latencytop.sh
memstat              compiled        Size: 595, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_memstat.sh.3903.log                ./compile_memstat.sh
mtr                  compiled        Size: 7492, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_mtr.sh.3903.log                   ./compile_mtr.sh    
netdata              compiled        Size: 116383, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_netdata.sh.3903.log             ./compile_netdata.sh
nethogs              compiled        Size: 2006, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_nethogs.sh.3903.log               ./compile_nethogs.sh
netio                compiled        Size: 3354, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_netio.sh.3903.log                 ./compile_netio.sh  
netperf              compiled        Size: 18480, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_netperf.sh.3903.log              ./compile_netperf.sh
netsniff-ng          compiled        Size: 6820, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_netsniff-ng.sh.3903.log           ./compile_netsniff-ng.sh
ngrep                compiled        Size: 5624, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_ngrep.sh.3903.log                 ./compile_ngrep.sh  
nicstat              compiled        Size: 1059, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_nicstat.sh.3903.log               ./compile_nicstat.sh
nload                compiled        Size: 11014, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_nload.sh.3903.log                ./compile_nload.sh  
nmap                 compiled        Size: 140566, Date: Aug 26 10:18, Name: /var/tmp/jwm/workdir/compile_nmap.sh.3903.log                ./compile_nmap.sh   
nmon                 compiled        Size: 620, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_nmon.sh.3903.log                   ./compile_nmon.sh   
numatop              compiled        Size: 1867, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_numatop.sh.3903.log               ./compile_numatop.sh
oprofile             compiled        Size: 90824, Date: Aug 26 10:18, Name: /var/tmp/jwm/workdir/compile_oprofile.sh.3903.log             ./compile_oprofile.sh
p0f                  compiled        Size: 1077, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_p0f.sh.3903.log                   ./compile_p0f.sh    
pagemon              compiled        Size: 928, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_pagemon.sh.3903.log                ./compile_pagemon.sh
pchar                compiled        Size: 14457, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_pchar.sh.3903.log                ./compile_pchar.sh  
pigz                 compiled        Size: 3686, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_pigz.sh.3903.log                  ./compile_pigz.sh   
pktstat              compiled        Size: 13163, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_pktstat.sh.3903.log              ./compile_pktstat.sh
powerstat            compiled        Size: 1093, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_powerstat.sh.3903.log             ./compile_powerstat.sh
powertop             compiled        Size: 15313, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_powertop.sh.3903.log             ./compile_powertop.sh
procdump             compiled        Size: 1520, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_procdump.sh.3903.log              ./compile_procdump.sh
prtdiag              compiled        Size: 507, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_prtdiag.sh.3903.log                ./compile_prtdiag.sh
screen               compiled        Size: 7556, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_screen.sh.3903.log                ./compile_screen.sh 
smartmontools        compiled        Size: 27070, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_smartmontools.sh.3903.log        ./compile_smartmontools.sh
smemstat             compiled        Size: 882, Date: Aug 26 10:16, Name: /var/tmp/jwm/workdir/compile_smemstat.sh.3903.log               ./compile_smemstat.sh
stress-ng            compiled        Size: 9979, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_stress-ng.sh.3903.log             ./compile_stress-ng.sh
stress               compiled        Size: 7213, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_stress.sh.3903.log                ./compile_stress.sh 
sysfsutils           compiled        Size: 41020, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_sysfsutils.sh.3903.log           ./compile_sysfsutils.sh
sysstat              compiled        Size: 18836, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_sysstat.sh.3903.log              ./compile_sysstat.sh
t50                  compiled        Size: 8202, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_t50.sh.3903.log                   ./compile_t50.sh    
tcpdump              compiled        Size: 39963, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_tcpdump.sh.3903.log              ./compile_tcpdump.sh
tcptrack             compiled        Size: 13048, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_tcptrack.sh.3903.log             ./compile_tcptrack.sh
tiptop               compiled        Size: 6978, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_tiptop.sh.3903.log                ./compile_tiptop.sh 
tracebox             compiled        Size: 88323, Date: Aug 26 10:18, Name: /var/tmp/jwm/workdir/compile_tracebox.sh.3903.log             ./compile_tracebox.sh
unfs3                compiled        Size: 6087, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_unfs3.sh.3903.log                 ./compile_unfs3.sh  
wavemon              compiled        Size: 4665, Date: Aug 26 10:17, Name: /var/tmp/jwm/workdir/compile_wavemon.sh.3903.log               ./compile_wavemon.sh

All packages will be compiled in this distribution.

To compile a single tool use the compile script from the last column in the table above.

Prior to recompiling an already compiled tool you must set the tool to not compiled again using ./make_tools.sh preparecompile <toolname>

Prior to compiling a tool on the ignore list you must first remove the tool from the no compile list  /var/tmp/jwm/NO_COMPILE_LIST

To temporary disable compiling a tool execute  ./make_tools.sh alreadycompiled <toolname>
(This will mark the tool compiled without compiling it)

To disable compiling a tool permanent for this distribution execute  ./make_tools.sh nocompile <toolname>
(This will add the tool to the no compile list for this distribution)

[JWM session] [xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$




make_tools.sh usage


The usage help for the script make_tools.sh is

[JWM session] [xtrnaw7@t540p compile_scripts]$ ./make_tools.sh --help
JWM_DIR is "/var/tmp/jwm"

Usage: ./make_tools.sh [action] {action_parameter}
       ./make_tools.sh <toolname>
       ./make_tools.sh [parameter_for_execute_scripts.sh]

Without a parameter or without a known action ./make_tools.sh starts the compile process
for all tools.
The compile process uses parallel background processes to compile the tools. To compile
the tools in sequential order use the parameter "+d".

Known actions are:

    status           - list the compile status

    compile <toolname>
                     - compile the tool <toolname>

    <toolname>       - compile the tool <toolname>

    alreadycompiled <toolname>
                     - temporary suppress the compiling of the tool <toolname>

    nocompile <toolname> {...} {<toolname#>}
                     - add the tools <toolname#> to the no compile list for this distribution

    preparecompile <toolname> {...} {<toolname#>}
                     - prepare the tools <toolname#> for re-compiling;
                       use "preparecompile all" to prepare all tools for recompiling

    forcecompile <toolname> {...} {<toolname#>}
                     - compile the tools <toolname#> even if already compiled

    cleanup [lib|bin|sbin]
                     - delete all files in the bin, sbin, and lib directory


To get the status of the compile process use "./check_compile_status.sh"

Checking the prerequisites for compiling ...
 ... no general errors found.





How to add another tool


First create the new source directory in ${JWM_DIR}/src (the name of the directory must use the format <toolname>-<version>).
Then copy the source of the tool to the directory just created.

Next create a compile script for the tool

cd ./compile_scripts
cp compile_tool.template ./compile_<toolname>.sh


And last edit the new compile script compile_<toolname>.sh : Add the neccessary commands to compile and install the tool in the file after the line

# add the code to compile the tool here

hostscope
    set -e  ; trap "trap_error_for_compile_scripts" ERR
    cd ${CURRENT_TOOL}*

# ----------------------------------------------------------------------
# add the code to compile the tool here; the current directory is the
# source directory
#


# ----------------------------------------------------------------------

    set +e  ; trap "" ERR


Some hints:

Compile scripts for tools must have the extension ".sh" ; compile scripts for libraries must start with "compile_lib" and must NOT have the extension ".sh".

Use "make clean" before the compilation and after the installation to cleanup the source directory.

If the standard script configure is used to create the makefile for the tool add the variable  ${CONFIGURE_PARMS} to the parameter of the configure script.
Note: The value of the variable CONFIGURE_PARMS  in the make script for JWM / LInux is --prefix=${JWM_DIR}.

If the makefile supports the installation (make install) use it. If not add the neccessary cp commands to copy the binaries and man pages (if applicable) to the bin/sbin or man directories.

After everything is done compile the tool to check the configuration

cd ./compile_scripts
./compile_<toolname>.sh


If  the script successfully compiles and installs the tool in the JWM / Linux directories you're done.



How to add another OS library


To add another OS library to JWM / Linux add the name of the library to the file

${JWM_DIR}/compile_scripts/OS_LIBS

All libraries listed in that file will be copied to the directory ${JWM_DIR}/lib by the make script for JWM / Linux (lines beginning with a "#" are ignored).

To add a specific version of a library insert the fullname , e.g. libtinfo.so.5.9; to add all versions of a library add only the library name  without version, e.g. libtinfo.

The libraries are searched in these directories (in this order for each library):

        ${LIBC_PATH}
        /usr/${LIBC_PATH}
        /lib64
        /lib
        /usr/lib64
        /usr/lib
        /usr/local/lib
        /usr/local/lib64

 
Unfortunately not all distributions now use the directories /lib and /lib64 for the OS libraries . For example in Mint 19 the directories for the libraries are

xtrnaw7@mint19:/var/tmp/jwm/compile_scripts$  ls -ld /lib/x86_64-linux-gnu/  /usr/lib/x86_64-linux-gnu/
drwxr-xr-x   4 root root 12288 Aug 18 22:21 /lib/x86_64-linux-gnu/
drwxr-xr-x 105 root root 69632 Aug 22 21:53 /usr/lib/x86_64-linux-gnu/
xtrnaw7@mint19:/var/tmp/jwm/compile_scripts$


Therefor I added code to detect the directories used for the OS libraries (this is the value of the variable LIBC_PATH in the list of directories above):

# get the path to the libc
  LIBC_PATH="$( ldd $( which bash ) | grep libc.so | awk '{ print $3 };' )"
  LIBC_PATH="${LIBC_PATH%/*}"




The OS libraries are copied by make_tools.sh. To manual copy the OS libraries you can use the script start_compiling with the parameter --nocompile.

start_compiling usage

[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$ ./start_compiling.sh -h
[22.08.2018 21:38 ] ### start_compiling.sh started at Wed Aug 22 21:38:12 CEST 2018
 start_compiling.sh

 Function: start script for compiling the tools from JWM for Linux
 
 Usage:    start_compiling.sh [-v|--verbose] [-q|--quiet] [-f|--force] [-y|--yes] [-n|--no] [-l|--logfile filename]
               [-d{:dryrun_prefix}|--dryrun{:dryrun_prefix}] [-D|--debugshell] [-t fn|--tracefunc fn] [-L]
               [-T|--tee] [-V|--version] [--var name=value] [--appendlog] [--nologrotate] [--noSTDOUTlog]
               [--nocleanup] [--nocompile]

 Parameter:
   --nocompile - only copy libraries, do not compile libraries

   -h - print the script usage; use -h and -v one or more times to print more help text
       
   -v - verbose mode; use -v -v to also print the runtime system messages
        (or set the environment variables VERBOSE to 0 and VERBOSE_LEVEL to the level)
   -q - quiet mode (or set the environment variable QUIET to 0)
   -f - force execution (or set the environment variable FORCE to 0 )
   -y - answer yes to all questions
   -n - answer no to all questions
   -l - logfile to use; use -l none to not use a logfile at all
        the default logfile is /var/tmp/start_compiling.sh.log
        also supported is the format "-l:filename"
   -d - dryrun mode, default dryrun_prefix is "echo  "
        Use the parameter "-d:<dryrun_prefix>" or the syntax
        "PREFIX=<new dryrun_prefix> /var/tmp/jwm/compile_scripts/start_compiling.sh"
        to change the dryrun prefix
        The script will run in dryrun mode if the environment variable PREFIX
        is set. To disable that behaviour use the parameter "+d"
   -D - start a debug shell and continue the script afterwards
   -t - trace the function fn
        also supported is the format "-t:fn[,...,fn#]"
   -L - list all defined functions and end the script
        also supported is the format "-l:filename"
   -T - copy STDOUT and STDERR to the file /var/tmp/start_compiling.sh.21509.tee.log
        using tee; set the environment variable __TEE_OUTPUT_FILE before
        calling the script to change the file used for the output of tee
   -V - print the script version and exit; use "-v -V" to print the
        template version also
   --var
      - set the variable "name" to the value "value"
        also supported is the format "--var:<varname>=<value>"
   --appendlog
      - append the messages to the logfile (default: overwrite an existing logfile)
        This parameter also sets --nologrotate
   --nologrotate
      - do not create a backup of an existing logfile
   --noSTDOUTlog
      - do not write STDOUT/STDERR to a file if /dev/tty is not a a device
   --nocleanup
       - do no house keeping at script end

Current environment: ksh version: 93 | change function code supported: yes | tracing feature using $0 supported: yes

[22.08.2018 21:38 ] ### The logfile used was /var/tmp/start_compiling.sh.log
[22.08.2018 21:38 ] ### start_compiling.sh ended at Wed Aug 22 21:38:12 CEST 2018
[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$

 


start_compiling.sh sample output
[22.08.2018 21:35 ] ### start_compiling.sh started at Wed Aug 22 21:35:37 CEST 2018
[22.08.2018 21:35 ] ### The logfile used is /var/tmp/start_compiling.sh.log
JWM_DIR is "/var/tmp/jwm"
[22.08.2018 21:35 ./start_compiling.sh] Executing "compile_libpcap" now ...
[22.08.2018 21:35 ./start_compiling.sh] Executing "compile_libprotobuf" now ...
[22.08.2018 21:38 ./start_compiling.sh] The directory with libc is "/lib64"
[22.08.2018 21:38 ./start_compiling.sh] Searching for the OS libraries listed in "/var/tmp/jwm/compile_scripts/OS_LIBS" :
libdb-5
libtinfo
libnuma
liblua
liblua5.2
liblua-5.1
liblua-5.2
liblua-5.3
libnl
libconfuse
libnl-3
libnl-route-3
libnl-genl-3
libnetfilter_conntrack
libnfnetlink
libboost_regex
libboost_regex-mt
libboost_iostreams
libboost_iostreams-mt
libboost_program_options
libboost_program_options-mt
liburcu
libcli
libnet
libsctp1

[22.08.2018 21:38 ./start_compiling.sh] The libraries will be searched in these directories (in this order):
/lib64 /usr/lib64 /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib /usr/local/lib64

[22.08.2018 21:38 ./start_compiling.sh] Removing the existing libraries now ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libdb-5" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libtinfo" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libnuma" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "liblua" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libnl" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libconfuse" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libnetfilter_conntrack" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libnfnetlink" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libboost_regex" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libboost_iostreams" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libboost_program_options" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "liburcu" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libcli" ...
[22.08.2018 21:38 ./start_compiling.sh] Deleting existing versions of "libnet" ...

[22.08.2018 21:38 ./start_compiling.sh] Copying the OS libraries listed in the file "/var/tmp/jwm/compile_scripts/OS_LIBS" ...

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libdb-5" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libdb-5.so*" in "/lib64" are:
/lib64/libdb-5.so

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libdb-5.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libdb-5.so is a symbolic link: "lrwxrwxrwx 1 root root 12 Dec 20  2017 /lib64/libdb-5.so -> libdb-5.3.so"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libdb-5.so" to "/var/tmp/jwm/lib/libdb-5.3.so" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libdb-5.so" -> "libdb-5.3.so" ...

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libtinfo" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libtinfo.so*" in "/lib64" are:
/lib64/libtinfo.so
/lib64/libtinfo.so.5
/lib64/libtinfo.so.5.9
/lib64/libtinfo.so.6
/lib64/libtinfo.so.6.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libtinfo.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libtinfo.so is a symbolic link: "lrwxrwxrwx 1 root root 13 May 10 11:14 /lib64/libtinfo.so -> libtinfo.so.6"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libtinfo.so" to "/var/tmp/jwm/lib/libtinfo.so.6" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libtinfo.so" -> "libtinfo.so.6" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libtinfo.so.5" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libtinfo.so.5 is a symbolic link: "lrwxrwxrwx 1 root root 15 May 10 11:14 /lib64/libtinfo.so.5 -> libtinfo.so.5.9"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libtinfo.so.5" to "/var/tmp/jwm/lib/libtinfo.so.5.9" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libtinfo.so.5" -> "libtinfo.so.5.9" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libtinfo.so.5.9" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libtinfo.so.5.9 is a file: "-rwxr-xr-x 1 root root 173520 May 10 11:14 /lib64/libtinfo.so.5.9"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libtinfo.so.5.9" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 173520 May 10 11:14 /var/tmp/jwm/lib/libtinfo.so.5.9"

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libtinfo.so.6" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libtinfo.so.6 is a symbolic link: "lrwxrwxrwx 1 root root 15 May 10 11:14 /lib64/libtinfo.so.6 -> libtinfo.so.6.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libtinfo.so.6" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 182144 May 10 11:14 /var/tmp/jwm/lib/libtinfo.so.6"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libtinfo.so.6" -> "libtinfo.so.6.0" ...
ln: failed to create symbolic link '/var/tmp/jwm/lib/libtinfo.so.6': File exists

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libtinfo.so.6.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libtinfo.so.6.0 is a file: "-rwxr-xr-x 1 root root 182144 May 10 11:14 /lib64/libtinfo.so.6.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libtinfo.so.6.0" to "/var/tmp/jwm/lib/libtinfo.so.6.0" ...

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnuma" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnuma.so*" in "/lib64" are:
/lib64/libnuma.so
/lib64/libnuma.so.1
/lib64/libnuma.so.1.0.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnuma.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnuma.so is a symbolic link: "lrwxrwxrwx 1 root root 16 Aug  4  2017 /lib64/libnuma.so -> libnuma.so.1.0.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnuma.so" to "/var/tmp/jwm/lib/libnuma.so.1.0.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnuma.so" -> "libnuma.so.1.0.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnuma.so.1" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnuma.so.1 is a symbolic link: "lrwxrwxrwx 1 root root 16 Aug  4  2017 /lib64/libnuma.so.1 -> libnuma.so.1.0.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnuma.so.1" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 46496 Aug  4  2017 /var/tmp/jwm/lib/libnuma.so.1.0.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnuma.so.1" -> "libnuma.so.1.0.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnuma.so.1.0.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnuma.so.1.0.0 is a file: "-rwxr-xr-x 1 root root 46496 Aug  4  2017 /lib64/libnuma.so.1.0.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnuma.so.1.0.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 46496 Aug  4  2017 /var/tmp/jwm/lib/libnuma.so.1.0.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "liblua" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "liblua.so*" in "/lib64" are:
/lib64/liblua.so

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/liblua.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/liblua.so is a symbolic link: "lrwxrwxrwx 1 root root 13 Dec  4  2017 /lib64/liblua.so -> liblua-5.3.so"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/liblua.so" to "/var/tmp/jwm/lib/liblua-5.3.so" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/liblua.so" -> "liblua-5.3.so" ...

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "liblua5.2" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "liblua5.2" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "liblua-5.1" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "liblua-5.1" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "liblua-5.2" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "liblua-5.2" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "liblua-5.3" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "liblua-5.3.so*" in "/lib64" are:
/lib64/liblua-5.3.so

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/liblua-5.3.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/liblua-5.3.so is a file: "-rwxr-xr-x 1 root root 242424 Dec  4  2017 /lib64/liblua-5.3.so"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/liblua-5.3.so" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 242424 Dec  4  2017 /var/tmp/jwm/lib/liblua-5.3.so"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnl" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "libnl" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libconfuse" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libconfuse.so*" in "/lib64" are:
/lib64/libconfuse.so
/lib64/libconfuse.so.1
/lib64/libconfuse.so.1.1.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libconfuse.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libconfuse.so is a symbolic link: "lrwxrwxrwx 1 root root 19 Aug  3  2017 /lib64/libconfuse.so -> libconfuse.so.1.1.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libconfuse.so" to "/var/tmp/jwm/lib/libconfuse.so.1.1.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libconfuse.so" -> "libconfuse.so.1.1.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libconfuse.so.1" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libconfuse.so.1 is a symbolic link: "lrwxrwxrwx 1 root root 19 Aug  3  2017 /lib64/libconfuse.so.1 -> libconfuse.so.1.1.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libconfuse.so.1" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 57200 Aug  3  2017 /var/tmp/jwm/lib/libconfuse.so.1.1.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libconfuse.so.1" -> "libconfuse.so.1.1.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libconfuse.so.1.1.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libconfuse.so.1.1.0 is a file: "-rwxr-xr-x 1 root root 57200 Aug  3  2017 /lib64/libconfuse.so.1.1.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libconfuse.so.1.1.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 57200 Aug  3  2017 /var/tmp/jwm/lib/libconfuse.so.1.1.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnl-3" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnl-3.so*" in "/lib64" are:
/lib64/libnl-3.so
/lib64/libnl-3.so.200
/lib64/libnl-3.so.200.26.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-3.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-3.so is a symbolic link: "lrwxrwxrwx 1 root root 19 Oct  9  2017 /lib64/libnl-3.so -> libnl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnl-3.so" to "/var/tmp/jwm/lib/libnl-3.so.200.26.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnl-3.so" -> "libnl-3.so.200.26.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-3.so.200" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-3.so.200 is a symbolic link: "lrwxrwxrwx 1 root root 19 Oct  9  2017 /lib64/libnl-3.so.200 -> libnl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnl-3.so.200" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 141344 Oct  9  2017 /var/tmp/jwm/lib/libnl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnl-3.so.200" -> "libnl-3.so.200.26.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-3.so.200.26.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-3.so.200.26.0 is a file: "-rwxr-xr-x 1 root root 141344 Oct  9  2017 /lib64/libnl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnl-3.so.200.26.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 141344 Oct  9  2017 /var/tmp/jwm/lib/libnl-3.so.200.26.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnl-route-3" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnl-route-3.so*" in "/lib64" are:
/lib64/libnl-route-3.so
/lib64/libnl-route-3.so.200
/lib64/libnl-route-3.so.200.26.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-route-3.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-route-3.so is a symbolic link: "lrwxrwxrwx 1 root root 25 Oct  9  2017 /lib64/libnl-route-3.so -> libnl-route-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnl-route-3.so" to "/var/tmp/jwm/lib/libnl-route-3.so.200.26.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnl-route-3.so" -> "libnl-route-3.so.200.26.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-route-3.so.200" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-route-3.so.200 is a symbolic link: "lrwxrwxrwx 1 root root 25 Oct  9  2017 /lib64/libnl-route-3.so.200 -> libnl-route-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnl-route-3.so.200" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 488680 Oct  9  2017 /var/tmp/jwm/lib/libnl-route-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnl-route-3.so.200" -> "libnl-route-3.so.200.26.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-route-3.so.200.26.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-route-3.so.200.26.0 is a file: "-rwxr-xr-x 1 root root 488680 Oct  9  2017 /lib64/libnl-route-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnl-route-3.so.200.26.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 488680 Oct  9  2017 /var/tmp/jwm/lib/libnl-route-3.so.200.26.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnl-genl-3" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnl-genl-3.so*" in "/lib64" are:
/lib64/libnl-genl-3.so
/lib64/libnl-genl-3.so.200
/lib64/libnl-genl-3.so.200.26.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-genl-3.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-genl-3.so is a symbolic link: "lrwxrwxrwx 1 root root 24 Oct  9  2017 /lib64/libnl-genl-3.so -> libnl-genl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnl-genl-3.so" to "/var/tmp/jwm/lib/libnl-genl-3.so.200.26.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnl-genl-3.so" -> "libnl-genl-3.so.200.26.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-genl-3.so.200" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-genl-3.so.200 is a symbolic link: "lrwxrwxrwx 1 root root 24 Oct  9  2017 /lib64/libnl-genl-3.so.200 -> libnl-genl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnl-genl-3.so.200" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 28816 Oct  9  2017 /var/tmp/jwm/lib/libnl-genl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnl-genl-3.so.200" -> "libnl-genl-3.so.200.26.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnl-genl-3.so.200.26.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnl-genl-3.so.200.26.0 is a file: "-rwxr-xr-x 1 root root 28816 Oct  9  2017 /lib64/libnl-genl-3.so.200.26.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnl-genl-3.so.200.26.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 28816 Oct  9  2017 /var/tmp/jwm/lib/libnl-genl-3.so.200.26.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnetfilter_conntrack" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnetfilter_conntrack.so*" in "/lib64" are:
/lib64/libnetfilter_conntrack.so
/lib64/libnetfilter_conntrack.so.3
/lib64/libnetfilter_conntrack.so.3.6.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnetfilter_conntrack.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnetfilter_conntrack.so is a symbolic link: "lrwxrwxrwx 1 root root 31 Aug  3  2017 /lib64/libnetfilter_conntrack.so -> libnetfilter_conntrack.so.3.6.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnetfilter_conntrack.so" to "/var/tmp/jwm/lib/libnetfilter_conntrack.so.3.6.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnetfilter_conntrack.so" -> "libnetfilter_conntrack.so.3.6.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnetfilter_conntrack.so.3" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnetfilter_conntrack.so.3 is a symbolic link: "lrwxrwxrwx 1 root root 31 Aug  3  2017 /lib64/libnetfilter_conntrack.so.3 -> libnetfilter_conntrack.so.3.6.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnetfilter_conntrack.so.3" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 128504 Aug  3  2017 /var/tmp/jwm/lib/libnetfilter_conntrack.so.3.6.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnetfilter_conntrack.so.3" -> "libnetfilter_conntrack.so.3.6.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnetfilter_conntrack.so.3.6.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnetfilter_conntrack.so.3.6.0 is a file: "-rwxr-xr-x 1 root root 128504 Aug  3  2017 /lib64/libnetfilter_conntrack.so.3.6.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnetfilter_conntrack.so.3.6.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 128504 Aug  3  2017 /var/tmp/jwm/lib/libnetfilter_conntrack.so.3.6.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnfnetlink" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnfnetlink.so*" in "/lib64" are:
/lib64/libnfnetlink.so
/lib64/libnfnetlink.so.0
/lib64/libnfnetlink.so.0.2.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnfnetlink.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnfnetlink.so is a symbolic link: "lrwxrwxrwx 1 root root 21 Aug  3  2017 /lib64/libnfnetlink.so -> libnfnetlink.so.0.2.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnfnetlink.so" to "/var/tmp/jwm/lib/libnfnetlink.so.0.2.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnfnetlink.so" -> "libnfnetlink.so.0.2.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnfnetlink.so.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnfnetlink.so.0 is a symbolic link: "lrwxrwxrwx 1 root root 21 Aug  3  2017 /lib64/libnfnetlink.so.0 -> libnfnetlink.so.0.2.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnfnetlink.so.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 27208 Aug  3  2017 /var/tmp/jwm/lib/libnfnetlink.so.0.2.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnfnetlink.so.0" -> "libnfnetlink.so.0.2.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnfnetlink.so.0.2.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnfnetlink.so.0.2.0 is a file: "-rwxr-xr-x 1 root root 27208 Aug  3  2017 /lib64/libnfnetlink.so.0.2.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnfnetlink.so.0.2.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 27208 Aug  3  2017 /var/tmp/jwm/lib/libnfnetlink.so.0.2.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libboost_regex" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libboost_regex.so*" in "/lib64" are:
/lib64/libboost_regex.so
/lib64/libboost_regex.so.1.64.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libboost_regex.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libboost_regex.so is a symbolic link: "lrwxrwxrwx 1 root root 24 Jul 18 18:51 /lib64/libboost_regex.so -> libboost_regex.so.1.64.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libboost_regex.so" to "/var/tmp/jwm/lib/libboost_regex.so.1.64.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libboost_regex.so" -> "libboost_regex.so.1.64.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libboost_regex.so.1.64.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libboost_regex.so.1.64.0 is a file: "-rwxr-xr-x 1 root root 1090040 Jul 18 18:53 /lib64/libboost_regex.so.1.64.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libboost_regex.so.1.64.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 1090040 Jul 18 18:53 /var/tmp/jwm/lib/libboost_regex.so.1.64.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libboost_regex-mt" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "libboost_regex-mt" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libboost_iostreams" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libboost_iostreams.so*" in "/lib64" are:
/lib64/libboost_iostreams.so
/lib64/libboost_iostreams.so.1.64.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libboost_iostreams.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libboost_iostreams.so is a symbolic link: "lrwxrwxrwx 1 root root 28 Jul 18 18:51 /lib64/libboost_iostreams.so -> libboost_iostreams.so.1.64.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libboost_iostreams.so" to "/var/tmp/jwm/lib/libboost_iostreams.so.1.64.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libboost_iostreams.so" -> "libboost_iostreams.so.1.64.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libboost_iostreams.so.1.64.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libboost_iostreams.so.1.64.0 is a file: "-rwxr-xr-x 1 root root 106696 Jul 18 18:53 /lib64/libboost_iostreams.so.1.64.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libboost_iostreams.so.1.64.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 106696 Jul 18 18:53 /var/tmp/jwm/lib/libboost_iostreams.so.1.64.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libboost_iostreams-mt" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "libboost_iostreams-mt" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libboost_program_options" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libboost_program_options.so*" in "/lib64" are:
/lib64/libboost_program_options.so
/lib64/libboost_program_options.so.1.64.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libboost_program_options.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libboost_program_options.so is a symbolic link: "lrwxrwxrwx 1 root root 34 Jul 18 18:51 /lib64/libboost_program_options.so -> libboost_program_options.so.1.64.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libboost_program_options.so" to "/var/tmp/jwm/lib/libboost_program_options.so.1.64.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libboost_program_options.so" -> "libboost_program_options.so.1.64.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libboost_program_options.so.1.64.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libboost_program_options.so.1.64.0 is a file: "-rwxr-xr-x 1 root root 506224 Jul 18 18:53 /lib64/libboost_program_options.so.1.64.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libboost_program_options.so.1.64.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 506224 Jul 18 18:53 /var/tmp/jwm/lib/libboost_program_options.so.1.64.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libboost_program_options-mt" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "libboost_program_options-mt" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "liburcu" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "liburcu.so*" in "/lib64" are:
/lib64/liburcu.so
/lib64/liburcu.so.6
/lib64/liburcu.so.6.0.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/liburcu.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/liburcu.so is a symbolic link: "lrwxrwxrwx 1 root root 16 Aug  5  2017 /lib64/liburcu.so -> liburcu.so.6.0.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/liburcu.so" to "/var/tmp/jwm/lib/liburcu.so.6.0.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/liburcu.so" -> "liburcu.so.6.0.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/liburcu.so.6" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/liburcu.so.6 is a symbolic link: "lrwxrwxrwx 1 root root 16 Aug  5  2017 /lib64/liburcu.so.6 -> liburcu.so.6.0.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/liburcu.so.6" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 32320 Aug  5  2017 /var/tmp/jwm/lib/liburcu.so.6.0.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/liburcu.so.6" -> "liburcu.so.6.0.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/liburcu.so.6.0.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/liburcu.so.6.0.0 is a file: "-rwxr-xr-x 1 root root 32320 Aug  5  2017 /lib64/liburcu.so.6.0.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/liburcu.so.6.0.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 32320 Aug  5  2017 /var/tmp/jwm/lib/liburcu.so.6.0.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libcli" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libcli.so*" in "/lib64" are:
/lib64/libcli.so
/lib64/libcli.so.1.9
/lib64/libcli.so.1.9.7

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libcli.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libcli.so is a symbolic link: "lrwxrwxrwx 1 root root 24 Aug  3  2017 /lib64/libcli.so -> /usr/lib64/libcli.so.1.9"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libcli.so" to "/var/tmp/jwm/lib/libcli.so.1.9" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libcli.so" -> "libcli.so.1.9" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libcli.so.1.9" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libcli.so.1.9 is a symbolic link: "lrwxrwxrwx 1 root root 26 Aug  3  2017 /lib64/libcli.so.1.9 -> /usr/lib64/libcli.so.1.9.7"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libcli.so.1.9" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 40736 Aug  3  2017 /var/tmp/jwm/lib/libcli.so.1.9"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libcli.so.1.9" -> "libcli.so.1.9.7" ...
ln: failed to create symbolic link '/var/tmp/jwm/lib/libcli.so.1.9': File exists

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libcli.so.1.9.7" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libcli.so.1.9.7 is a file: "-rwxr-xr-x 1 root root 40736 Aug  3  2017 /lib64/libcli.so.1.9.7"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libcli.so.1.9.7" to "/var/tmp/jwm/lib/libcli.so.1.9.7" ...

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libnet" ...

[22.08.2018 21:38 ./start_compiling.sh] Libraries found for "libnet.so*" in "/lib64" are:
/lib64/libnet.so
/lib64/libnet.so.1
/lib64/libnet.so.1.7.0

[22.08.2018 21:38 ./start_compiling.sh] Procssing the libraries found in "/lib64" now ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnet.so" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnet.so is a symbolic link: "lrwxrwxrwx 1 root root 15 Aug  3  2017 /lib64/libnet.so -> libnet.so.1.7.0"
[22.08.2018 21:38 ./start_compiling.sh] Copying "/lib64/libnet.so" to "/var/tmp/jwm/lib/libnet.so.1.7.0" ...
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnet.so" -> "libnet.so.1.7.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnet.so.1" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnet.so.1 is a symbolic link: "lrwxrwxrwx 1 root root 15 Aug  3  2017 /lib64/libnet.so.1 -> libnet.so.1.7.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnet.so.1" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 97944 Aug  3  2017 /var/tmp/jwm/lib/libnet.so.1.7.0"
[22.08.2018 21:38 ./start_compiling.sh] Creating the link "/var/tmp/jwm/lib/libnet.so.1" -> "libnet.so.1.7.0" ...

[22.08.2018 21:38 ./start_compiling.sh] Processing the library "/lib64/libnet.so.1.7.0" ...
[22.08.2018 21:38 ./start_compiling.sh] /lib64/libnet.so.1.7.0 is a file: "-rwxr-xr-x 1 root root 97944 Aug  3  2017 /lib64/libnet.so.1.7.0"
[22.08.2018 21:38 ./start_compiling.sh] The library "/lib64/libnet.so.1.7.0" was already copied: "-rwxr-xr-x 1 xtrnaw7 xtrnaw7 97944 Aug  3  2017 /var/tmp/jwm/lib/libnet.so.1.7.0"

[22.08.2018 21:38 ./start_compiling.sh] ----------------------------------------
[22.08.2018 21:38 ./start_compiling.sh] Searching the library "libsctp1" ...

[22.08.2018 21:38 ./start_compiling.sh] WARNING: Library "libsctp1" NOT found!

[22.08.2018 21:38 ./start_compiling.sh] Libraries found are:
 libdb-5.3.so libtinfo.so.6 libtinfo.so.5.9 libtinfo.so.6.0 libnuma.so.1.0.0 liblua-5.3.so libconfuse.so.1.1.0 libnl-3.so.200.26.0 libnl-route-3.so.200.26.0 libnl-genl-3.so.200.26.0 libnetfilter_conntrack.so.3.6.0 libnfnetlink.so.0.2.0 libboost_regex.so.1.64.0 libboost_iostreams.so.1.64.0 libboost_program_options.so.1.64.0 liburcu.so.6.0.0 libcli.so.1.9 libcli.so.1.9.7 libnet.so.1.7.0


[22.08.2018 21:38 ./start_compiling.sh] Libraries NOT found are:
 liblua5.2 liblua-5.1 liblua-5.2 libnl libboost_regex-mt libboost_iostreams-mt libboost_program_options-mt libsctp1

[xtrnaw7@t540p /var/tmp/jwm/compile_scripts]$






The logfile for start_compiling.sh is  /var/tmp/start_compiling.sh.log


In case of strange errors for a lot of tools while compiling the tools please first check this log file and check also the contents of the directory lib in JWM (lib64 is only a symbolic link to lib).




Check for missing libarires


To check for missing libaries you can use the script  ./compile_scripts/check_for_missing_libs.sh. This script uses ldd for every executable found to check the required libraries.

The usage for check_for_missing_libs.sh is:

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ ./compile_scripts/check_for_missing_libs.sh  --help
[19.11.2016 10:05 ] ### check_for_missing_libs.sh started at Sat Nov 19 10:05:59 CET 2016
[19.11.2016 10:05 ] ### The logfile used is /var/tmp/check_for_missing_libs.sh.log
 check_for_missing_libraries

 Function: check all binaries found for missing libraries
 
 Usage:    check_for_missing_libraries [-v|--verbose] [-q|--quiet] [-L libpath] [-f|--force] [directroy]

 Parameter:
   -v - verbose mode
   -q - quiet mode
   -f - force execution
   -L libpath -- directory for LD_LIBRARY_PATH; default: /var/tmp/jwm/lib and ../lib
      if these directories exist; use -L none to disable this behaviour

[19.11.2016 10:05 ] ### The logfile used was /var/tmp/check_for_missing_libs.sh.log
[19.11.2016 10:05 ] ### check_for_missing_libs.sh ended at Sat Nov 19 10:05:59 CET 2016
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$


Usage examples:

check for missing libraries in the OS
[bernd@oc8260701612 /var/tmp/jwm/htdocs]$ /var/tmp/jwm/compile_scripts/check_for_missing_libs.sh -L none ../bin ../sbin
[19.11.2016 10:25 ] ### check_for_missing_libs.sh started at Sat Nov 19 10:25:44 CET 2016
[19.11.2016 10:25 ] ### The logfile used is /var/tmp/check_for_missing_libs.sh.log
[19.11.2016 10:25 ] The list of directories to search for files is:
 ../bin ../sbin
[19.11.2016 10:25 ] Searching files in the directory "../bin" ...
[19.11.2016 10:25 ] 72 executable file(s) found in the directory "../bin"
[19.11.2016 10:25 ] Checking the files in the directory "../bin" ...
.
[19.11.2016 10:25 ] ERROR: Some libraries for ./justniffer are missing:
    libboost_regex.so.1.62.0 => not found
    libboost_iostreams.so.1.62.0 => not found
    libboost_program_options.so.1.62.0 => not found

[19.11.2016 10:25 ] ERROR: Some libraries for ./testlibsysfs are missing:
    libsysfs.so.2 => not found

[19.11.2016 10:25 ] Searching files in the directory "../sbin" ...
[19.11.2016 10:25 ] 42 executable files found in the directory "../sbin"
[19.11.2016 10:25 ] Checking the files in the directory "../sbin" ...
.
[19.11.2016 10:25 ] ERROR: Some libraries for ./hostscoped are missing:
    libprotobuf-lite.so.9 => not found

[19.11.2016 10:25 ] ERROR: Some libraries for ./fnotifystat are missing:
./fnotifystat: /lib64/libc.so.6: version `GLIBC_2.13' not found (required by ./fnotifystat)

[19.11.2016 10:25 ] ERROR: Some libraries for ./health-check are missing:
./health-check: /lib64/libc.so.6: version `GLIBC_2.13' not found (required by ./health-check)


[19.11.2016 10:25 ] ERROR: Binaries found with missing libs are:
 
/var/tmp/jwm/bin/./justniffer
/var/tmp/jwm/bin/./testlibsysfs
/var/tmp/jwm/sbin/./hostscoped
/var/tmp/jwm/sbin/./fnotifystat
/var/tmp/jwm/sbin/./health-check

[19.11.2016 10:25 ] ### The logfile used was /var/tmp/check_for_missing_libs.sh.log
[19.11.2016 10:25 ] ### check_for_missing_libs.sh ended at Sat Nov 19 10:25:50 CET 2016
[bernd@oc8260701612 /var/tmp/jwm/htdocs]$
 


-> these libaries should be in the lib directory in JWM / Linux


Check for missing libraries in the JWM / Linux environment
[bernd@oc8260701612 /var/tmp/jwm/htdocs]$ /var/tmp/jwm/compile_scripts/check_for_missing_libs.sh  ../bin ../sbin
[19.11.2016 10:26 ] ### check_for_missing_libs.sh started at Sat Nov 19 10:26:03 CET 2016
[19.11.2016 10:26 ] ### The logfile used is /var/tmp/check_for_missing_libs.sh.log
[19.11.2016 10:26 ] The directories with additional libraries are
:/var/tmp/jwm/lib
[19.11.2016 10:26 ] The list of directories to search for files is:
 ../bin ../sbin
[19.11.2016 10:26 ] Searching files in the directory "../bin" ...
[19.11.2016 10:26 ] 72 executable file(s) found in the directory "../bin"
[19.11.2016 10:26 ] Checking the files in the directory "../bin" ...
.
[19.11.2016 10:26 ] Searching files in the directory "../sbin" ...
[19.11.2016 10:26 ] 42 executable files found in the directory "../sbin"
[19.11.2016 10:26 ] Checking the files in the directory "../sbin" ...
.
[19.11.2016 10:26 ] ERROR: Some libraries for ./fnotifystat are missing:
./fnotifystat: /lib64/libc.so.6: version `GLIBC_2.13' not found (required by ./fnotifystat)

[19.11.2016 10:26 ] ERROR: Some libraries for ./health-check are missing:
./health-check: /lib64/libc.so.6: version `GLIBC_2.13' not found (required by ./health-check)


[19.11.2016 10:26 ] ERROR: Binaries found with missing libs are:
 
/var/tmp/jwm/sbin/./fnotifystat
/var/tmp/jwm/sbin/./health-check

[19.11.2016 10:26 ] ### The logfile used was /var/tmp/check_for_missing_libs.sh.log
[19.11.2016 10:26 ] ### check_for_missing_libs.sh ended at Sat Nov 19 10:26:09 CET 2016
[bernd@oc8260701612 /var/tmp/jwm/htdocs]$
 




Create your own tar archive

To create a customized version of JWM / Linux just unpack the tar archive; do your changes and create a new compressed tar archive using the script

./create_archive.sh

included in the archive.

create_archive.sh deletes temporary files from JWM / Linux and creates the new compressed tar archive in the directory with the sub directory jwm, e.g:

[xtrnaw7@t540p /var/tmp/jwm]$ ./create_archive.sh
JWM_DIR is "/var/tmp/jwm"
cp: omitting directory ‘./htdocs/cgi-bin’
Doing cleanup ...
Deleting the file(s) "data/darkstat/*" ...
Deleting the file(s) "workdir/*.log" ...
Deleting the file(s) "netdata/var/cache/netdata/*" ...
Deleting the file(s) "netdata/var/log/netdata/*" ...
Deleting the file(s) "netdata/var/run/*" ...
Deleting the file(s) "netdata.tar.gz" ...
Deleting the file(s) "busybox.tar.gz" ...
Creating the archive "jwml_v227_Fedora_release_23_(Twenty_Three)_4.8.13-100.fc23.x86_64_x86_64_2016-12-29.tar.gz" ...
Archive "jwml_v227_Fedora_release_23_(Twenty_Three)_4.8.13-100.fc23.x86_64_x86_64_2016-12-29.tar.gz" created:
-rw-rw-r-- 1 xtrnaw7 xtrnaw7 2069292891 Dec 29 08:31 /var/tmp/jwml_v227_Fedora_release_23_(Twenty_Three)_4.8.13-100.fc23.x86_64_x86_64_2016-12-29.tar.gz
[xtrnaw7@t540p /var/tmp/jwm]$


Note:

I use create_archive.sh to create the public version of JWM / Linux . Therefor there is code in the script to copy some files from/to the JWM directory:

# copy the HTML files from the develop script (note: works on my notebook only; not used for distributed tar archives /bs)
#
[ -r /data/develop/jwm_linux/htdocs/JWM_Linux_documentation.html ] && cp /data/develop/jwm_linux/htdocs/* ./htdocs/

# copy the HTML file to my local copy of the Webserver contentsn (note: works on my notebook only)
#
[ -r /data/www/myhomepage/htdocs/linux/JWM_Linux_documentation.html ] &&  cp ./htdocs/* /data/www/myhomepage/htdocs/linux/

You can ignore this code - it does nothing if the directories used do not exist



Hints for Compiling the tools





Compiling justniffer with a boost staging area

To compile justniffer with a boost staging area do:

Download the source of the current version for boost from http://www.boost.org/

Unpack the source directory using tar or unzip

Change to the directory with the boost source, e.g

cd /data/develop/boost_1_62_0

 and execute these commands

./bootstrap

./b2

Please note that these commands will take a long time.

Now you can compile justniffer using this boost staging are:

Change to the directory with the justniffer source and execute

export BOOST_ROOT=/data/develop/boost_1_62_0  ; ./configure --build="$( uname -i )"

(replace /data/develop/boost_1_62.0 with your boost staging area)

If everything is fine there should now be a working justniffer binary in the directory ./src. Be aware that this binary requires some of the libraries from the boost staging area; to get the list of these libraries use

ldd src/justniffer

e.g.

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ ldd bin/justniffer  | grep boost
    libboost_regex.so.1.58.0 => /lib64/libboost_regex.so.1.58.0 (0x00007f8902c00000)
    libboost_iostreams.so.1.58.0 => /lib64/libboost_iostreams.so.1.58.0 (0x00007f89029e7000)
    libboost_program_options.so.1.58.0 => /lib64/libboost_program_options.so.1.58.0 (0x00007f8902770000)
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$



You can also use the script ${JWM_DIR}/scripts/compile_justniffer_with_boost.sh to bootstrap boost and compile justniffer.

Usage:

Download and unpack the boost source archive, change to the source directory with justniffer and execute

${JWM_DIR}/scripts/compile_justniffer_with_boost.sh [boost_staging_area]

e.g

cd /var/tmp/jwm/src/justniffer-0.5.15
/var/tmp/jwm/scripts/compile_justniffer_with_boost.sh /data/develop/boost_1_62.0



Notes:

The script does the boost bootstrap only if not already done for the boost staging area. If executed in a JWM / Linux environment the script will copy the justniffier binary created to ${JWM_DIR}/sbin and the required boost libraries to ${JWM_DIR}/lib.


Strange error messages while linking a binary


If there are strange error messages while linking a tool try to delete all *.a files  in the directory ${JWM_DIR}/lib; do "make clean" and afterwards a "make" again.



Error message : "undefined reference to clock_gettime"


If you get an error like "undefined reference to clock_gettime" while compiling one of the tools use the following workaround:

Change to the source directory for the tool and append

 -lrt

to the LDFLAGS entry in the make file.


Afterwards compile and install the tool using

make
make install


Or use

export LIBS=-lrt
./configure --prefix=${JWM_DIR}
make
make install





Error message : "error: ‘GENL_ID_GENERATE’ undeclared"

Error message example:

GENL_ID_GENERATE_undeclared


proto_nlmsg.c: In function ‘nlmsg_genl_type2str’:
proto_nlmsg.c:245:7: error: ‘GENL_ID_GENERATE’ undeclared (first use in this function)
  case GENL_ID_GENERATE: return "id gen";
       ^~~~~~~~~~~~~~~~
proto_nlmsg.c:245:7: note: each undeclared identifier is reported only once for each function it appears in

GENL_ID_GENERATE is  defined in  the file /usr/include/linux/genetlink.h in current Linux versions. But it looks like it's missing in some of the newer Linux versions.

To get arround this error add the statement

#define GENL_ID_GENERATE    0

to the file in which the definition is used.



Error message: //lib64/libtinfo.so.5: error adding symbols: DSO missing from command line


In most cases their are additional error messages like

/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: bmon-out_curses.o: undefined reference to symbol 'acs_map'

/opt/rh/devtoolset-7/root/usr/libexec/gcc/x86_64-redhat-linux/7/ld: bvi.o: undefined reference to symbol 'keypad'

To get around this error you must explicitly link the libtinfo library

For most tools this can be done with the commands

 export LDFLAGS="-ltinfo"
./configure ${CONFIGURE_PARMS}

But not all tools are using configure to configure the LDFLAGS . In this case you must check the Makefile for the variable with the LDFLAGS. This can be CFLAGS or any other variable (see the compile scripts in the directory compile_scripts in JWM for examples)


Error message:  ... undefined reference to `__builtin_bswap16'

In most cases this means that the compiler used is to old

Use gcc --version to check the compiler version:

[xtrnaw7@centos69 compile_scripts]$  gcc --version
gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-23)
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Install and use new version of gcc to fix the error

(see also Required GCC version)



Error message: ... error: called object ‘major’ is not a function or function pointer


Sample error messages  are

photosyst.c:1465:19: error: called object ‘major’ is not a function or function pointer
     dmp->major  = major(statbuf.st_rdev);
                   ^~~~~
photosyst.c:1420:25: note: declared here
 lvmmapname(unsigned int major, unsigned int minor,
            ~~~~~~~~~~~~~^~~~~
photosyst.c:1466:19: error: called object ‘minor’ is not a function or function pointer
     dmp->minor  = minor(statbuf.st_rdev);


major, minor, and makedev are macros defined in the file <sys/sysmacros.h>. This include file was formerly included in <sys/types.h>. But that include was removed in newer versions of glibc.

So for programs using the macros from that file the additional include

#include <sys/sysmacros.h>

is required.

Notes:

In some versions of types.h the file sysmacro.h is still included like this

/* BSD defines `major', `minor', and `makedev' in this header.
   However, these symbols are likely to collide with user code, so we are
   going to stop defining them here in an upcoming release.  Code that needs
   these macros should include <sys/sysmacros.h> directly.  Code that does
   not need these macros should #undef them after including this header.  */
# define __SYSMACROS_DEPRECATED_INCLUSION
# include <sys/sysmacros.h>
# undef __SYSMACROS_DEPRECATED_INCLUSION


For an explanation why the include was removed see here: https://sourceware.org/ml/libc-alpha/2015-11/msg00253.html


Error message: error: /lib64/libncurses.so.5: undefined symbol: _nc_putchar

This error message means that the library libtinfo.so.5 from  JWM Linux does not match the ncurses library of your Linux distribution.

To get around this error just unset the LD_LIBRARY_PATH if in a JWM Linux session, e.g.:


[JWM session] [root@beod21 jwm]# bin/atop -V
bin/atop: symbol lookup error: /lib64/libncurses.so.5: undefined symbol: _nc_putchar
[JWM session] [root@beod21 jwm]#
[JWM session] [root@beod21 jwm]# ldd bin/atop
        linux-vdso.so.1 =>  (0x00007ffcb959f000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f09b7d71000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f09b7b5b000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f09b7859000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f09b7651000)
        libtinfo.so.5 => /opt/LinuxTools/jwm/lib/libtinfo.so.5 (0x00007f09b7430000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f09b7063000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f09b6e5f000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f09b7f98000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f09b6c43000)
[JWM session] [root@beod21 jwm]#

[JWM session] [root@beod21 jwm]# LD_LIBRARY_PATH= bin/atop  -V
Version: 2.3.0 - 2017/03/25 09:59:59     <gerlof.langeveld@atoptool.nl>
[JWM session] [root@beod21 jwm]#

[JWM session] [root@beod21 jwm]# LD_LIBRARY_PATH= ldd  bin/atop
        linux-vdso.so.1 =>  (0x00007ffc155dc000)
        libncurses.so.5 => /lib64/libncurses.so.5 (0x00007f2c95e7f000)
        libz.so.1 => /lib64/libz.so.1 (0x00007f2c95c69000)
        libm.so.6 => /lib64/libm.so.6 (0x00007f2c95967000)
        librt.so.1 => /lib64/librt.so.1 (0x00007f2c9575f000)
        libtinfo.so.5 => /lib64/libtinfo.so.5 (0x00007f2c95535000)
        libc.so.6 => /lib64/libc.so.6 (0x00007f2c95168000)
        libdl.so.2 => /lib64/libdl.so.2 (0x00007f2c94f64000)
        /lib64/ld-linux-x86-64.so.2 (0x00007f2c960a6000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x00007f2c94d48000)
[JWM session] [root@beod21 jwm]#


For a final solution just replace the file libtinfo.so.5 in the lib directory of JWM / Linux with the libtinfo.so.5 from the running Linux installation.


Error message: /usr/bin/ld: /tmp/ccEmVwXe.o:(.bss+0xc): multiple definition of `timeout'; /tmp/cchQVu2e.o:(.bss+0xc): first defined here


Error message like this are created by gcc 10.x for a lot of "old" tools

The reason for this error is:

"Previous versions of gcc were more lenient about multiple definitions of uninitialised global variables. In the latest gcc, they changed the default of -fcommon to -fno-common, which does not allow such duplicates.

To be honest, I'd always assumed that it worked the way -fno-common does, so I was kind of surprised to find out that gcc actually tolerated multiple definitions in the first place and that this has become an issue.

Header guards usually only protect declarations, not definitions (which will normally be in the .c file, not the header)"

Source:   https://www.linuxquestions.org/questions/programming-9/multiple-definition-errors-when-linking-on-arch-using-gcc-10-1-0-a-4175675444/


To fix the error add the option -fcommon to the arguments for gcc.


Error message:  ... ld: cannot find -ltinfo


The library libtinfo.so is part of the ncurses package. If ncurses is installed but the library does not exist you do (at least in Slackware):

ln -s /usr/lib64/libncurses.so /usr/lib64/libtinfo.so

(see https://www.linuxquestions.org/questions/slackware-14/missing-libtinfo-so-5-on-14-2b-4175568815/)



Error message: "...  has no member named ‘emplace_back’ ..."


"Your compiler is not supporting C++11. The emplace_back member function of std::vector<T> has been added since C++11, as you can see.

Depending on your compiler version, you probably just need some flags to tell the compiler to turn on C++11 features. You can do that on GCC and Clang with:

-std=c++11 -stdlib=libc++

Otherwise you might need to update your compiler version to a more recent one."

Source: https://stackoverflow.com/questions/19789353/c-compiler-class-stdvectorstdvectorchar-has-no-member-named-empla

Note:

The parameter -stdlib is not supported by some gcc versions - in this case  the parameter -std=c++11 is sufficient



Binaries for other OS

For some network tests it's neccessary to have the same tool available on the other machine. Therefor I added the binaries for iperf and netcat for AIX and Solaris (SPARC and x86) to the JWM / Linux archive


The tools are in the directory ${JWM_DIR}/other_os:

[as of 03.10.2018]

Tools for other OS
[xtrnaw7@t540p /var/tmp/jwm/other_os]$ ls -ltr
total 2072
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 120982 Oct  3 14:17 iperf_for_AIX
-rwxr-xr-x 1 xtrnaw7 xtrnaw7  41302 Oct  3 14:17 netcat_for_AIX
-rwxr-xr-x 1 xtrnaw7 xtrnaw7  75716 Oct  3 14:18 iperf_for_Solaris_x86
-rwxr-xr-x 1 xtrnaw7 xtrnaw7  94220 Oct  3 14:19 iperf.sol10_for_SPARC
-rwxr-xr-x 1 xtrnaw7 xtrnaw7  87755 Oct  3 14:19 iperf.sol9_for_SPARC
-rwxr-xr-x 1 xtrnaw7 xtrnaw7  26820 Oct  3 14:19 netcat_for_Solaris_SPARC
-rwxr-xr-x 1 xtrnaw7 xtrnaw7  32808 Oct  3 14:19 netcat_for_Solaris_x86
lrwxrwxrwx 1 xtrnaw7 xtrnaw7     17 Oct  3 15:01 netio -> ../src/netio/bin/
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 115876 Oct  3 15:02 netperf_for_Solaris_x86
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 477600 Oct  3 15:03 netperf_for_Solaris_SPARC
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 198658 Oct  3 15:08 netperf_for_AIX
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 208062 Oct  3 15:08 netserver_for_AIX
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 490212 Oct  3 15:09 netserver_for_Solaris_SPARC
-rwxr-xr-x 1 xtrnaw7 xtrnaw7 121284 Oct  3 15:09 netserver_for_Solaris_x86
[xtrnaw7@t540p /var/tmp/jwm/other_os]$ file *
iperf_for_AIX:               executable (RISC System/6000 V3.1) or obj module
iperf_for_Solaris_x86:       ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, stripped
iperf.sol10_for_SPARC:       ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, not stripped
iperf.sol9_for_SPARC:        ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, not stripped
netcat_for_AIX:              executable (RISC System/6000 V3.1) or obj module
netcat_for_Solaris_SPARC:    ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, stripped
netcat_for_Solaris_x86:      ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, not stripped
netio:                       symbolic link to ../src/netio/bin/
netperf_for_AIX:             executable (RISC System/6000 V3.1) or obj module
netperf_for_Solaris_SPARC:   ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, with debug_info, not stripped
netperf_for_Solaris_x86:     ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, stripped
netserver_for_AIX:           executable (RISC System/6000 V3.1) or obj module
netserver_for_Solaris_SPARC: ELF 32-bit MSB executable, SPARC, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, with debug_info, not stripped
netserver_for_Solaris_x86:   ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /usr/lib/ld.so.1, stripped
[xtrnaw7@t540p /var/tmp/jwm/other_os]$





Some howtos for Linux internal tools


This section contains some hints and docs for performance or monitoring tools that are already part of most Linux installations.



Using the ftrace interface with shell commands


 
Source: http://www.slideshare.net/brendangregg/linux-performance-analysis-new-tools-and-old-secrets

Static tracing of a trace point
[root@t540p tracing]# cd /sys/kernel/debug/tracing/

[root@t540p tracing]# echo 1 >events/block/block_rq_insert/enable

[root@t540p tracing]# cat trace_pipe
     kworker/7:2-4043  [007] d...  5604.169528: block_rq_insert: 0,0 R 8 (4a 01 00 00 10 00 00 00 08 00) 0 + 0 [kworker/7:2]
     kworker/7:2-4043  [007] d...  5606.220093: block_rq_insert: 0,0 R 8 (4a 01 00 00 10 00 00 00 08 00) 0 + 0 [kworker/7:2]
     kworker/4:0-30144 [004] d...  5606.732733: block_rq_insert: 8,0 WS 0 () 51814224 + 8 [kworker/4:0]
     kworker/4:0-30144 [004] d...  5606.732749: block_rq_insert: 8,0 WS 0 () 51814232 + 8 [kworker/4:0]
     kworker/4:0-30144 [004] d...  5606.732756: block_rq_insert: 8,0 WS 0 () 51814240 + 8 [kworker/4:0]
     kworker/4:0-30144 [004] d...  5606.732763: block_rq_insert: 8,0 WS 0 () 51814248 + 8 [kworker/4:0]
     kworker/4:0-30144 [004] d...  5606.732770: block_rq_insert: 8,0 WS 0 () 51814256 + 8 [kworker/4:0]
     kworker/4:0-30144 [004] d...  5606.732776: block_rq_insert: 8,0 WS 0 () 51814264 + 8 [kworker/4:0]
...
     kworker/2:2-3902  [002] d...  5824.004721: block_rq_insert: 8,0 WS 0 () 51819152 + 8 [kworker/2:2]
     kworker/2:2-3902  [002] d...  5824.004728: block_rq_insert: 8,0 WS 0 () 51819160 + 8 [kworker/2:2]
     jbd2/dm-1-8-30090 [000] d...  5824.005462: block_rq_insert: 8,0 FWS 0 () 0 + 0 [jbd2/dm-1-8]
     kworker/0:1-5567  [000] d...  5824.020757: block_rq_insert: 8,0 WFS 0 () 51819168 + 8 [kworker/0:1]
^C
[root@t540p tracing]# echo 0 >events/block/block_rq_insert/enable

[root@t540p tracing]#

Dynamic function tracing

[root@t540p tracing]# cd /sys/kernel/debug/tracing/

[root@t540p tracing]# echo tcp_retransmit_skb >set_ftrace_filter

[root@t540p tracing]# echo function > current_tracer

[root@t540p tracing]# more trace_pipe
          <idle>-0     [005] ..s.  6151.862706: tcp_retransmit_skb <-tcp_retransmit_timer
          <idle>-0     [005] ..s.  6153.668904: tcp_retransmit_skb <-tcp_retransmit_timer
          <idle>-0     [005] ..s.  6157.281293: tcp_retransmit_skb <-tcp_retransmit_timer


[root@t540p tracing]# echo nop >current_tracer

[root@t540p tracing]# ehco >set_ftrace_filter
bash: ehco: command not found...
Similar command is: 'echo'

[root@t540p tracing]# echo >set_ftrace_filter

[root@t540p tracing]#


List available tracer for dynamic tracing:

[root@t540p tracing]# pwd
/sys/kernel/debug/tracing
[root@t540p tracing]# cat available_tracers
blk function_graph wakeup_dl wakeup_rt wakeup function nop
[root@t540p tracing]#


This feature is also available for events (cat available_events) and filter functions ( cat available_filter_functions )


For a short intro in the tracing features see /sys/kernel/debug/tracing/README:

tracing mini-HOWTO:

# echo 0 > tracing_on : quick way to disable tracing
# echo 1 > tracing_on : quick way to re-enable tracing

 Important files:
  trace                        - The static contents of the buffer
                                 To clear the buffer write into this file: echo > trace

  trace_pipe                   - A consuming read to see the contents of the buffer

  current_tracer               - function and latency tracers

  available_tracers            - list of configured tracers for current_tracer

  buffer_size_kb               - view and modify size of per cpu buffer

  buffer_total_size_kb         - view total size of all cpu buffers

  trace_clock                -change the clock used to order events
       local:   Per cpu clock but may not be synced across CPUs
      global:   Synced across CPUs but slows tracing down.
     counter:   Not a clock, but just an increment
      uptime:   Jiffy counter from time of boot
        perf:   Same clock that perf events use
     x86-tsc:   TSC cycle counter

  trace_marker           - Writes into this file writes into the kernel buffer

  tracing_cpumask        - Limit which CPUs to trace

  instances              - Make sub-buffers with: mkdir instances/foo
                           Remove sub-buffer with rmdir

  trace_options          - Set format or modify how tracing happens
                           Disable an option by adding a suffix 'no' to the
                           option name

  saved_cmdlines_size    - echo command number in here to store comm-pid list

  available_filter_functions - list of functions that can be filtered on

  set_ftrace_filter          - echo function name in here to only trace these functions
             accepts: func_full_name, *func_end, func_begin*, *func_middle*
             modules: Can select a group via module
              Format: :mod:<module-name>
             example: echo :mod:ext3 > set_ftrace_filter
            triggers: a command to perform when function is hit
              Format: <function>:<trigger>[:count]
             trigger: traceon, traceoff
                      enable_event:<system>:<event>
                      disable_event:<system>:<event>
                      stacktrace
                      snapshot
                      dump
                      cpudump
             example: echo do_fault:traceoff > set_ftrace_filter
                      echo do_trap:traceoff:3 > set_ftrace_filter
             The first one will disable tracing every time do_fault is hit
             The second will disable tracing at most 3 times when do_trap is hit
               The first time do trap is hit and it disables tracing, the
               counter will decrement to 2. If tracing is already disabled,
               the counter will not decrement. It only decrements when the
               trigger did work
             To remove trigger without count:
               echo '!<function>:<trigger> > set_ftrace_filter
             To remove trigger with a count:
               echo '!<function>:<trigger>:0 > set_ftrace_filter

  set_ftrace_notrace        - echo function name in here to never trace.
            accepts: func_full_name, *func_end, func_begin*, *func_middle*
            modules: Can select a group via module command :mod:
            Does not accept triggers

  set_ftrace_pid            - Write pid(s) to only function trace those pids
                              (function)

  set_graph_function        - Trace the nested calls of a function (function_graph)

  set_graph_notrace         - Do not trace the nested calls of a function (function_graph)

  max_graph_depth           - Trace a limited depth of nested calls (0 is unlimited)

  snapshot                  - Like 'trace' but shows the content of the static
                              snapshot buffer. Read the contents for more information

  stack_trace               - Shows the max stack trace when active

  stack_max_size            - Shows current max stack size that was traced
                              Write into this file to reset the max size (trigger a new trace)

  stack_trace_filter        - Like set_ftrace_filter but limits what stack_trace traces

  events/                   - Directory containing all trace event subsystems:
      enable                - Write 0/1 to enable/disable tracing of all events

  events/<system>/          - Directory containing all trace events for <system>:
      enable                - Write 0/1 to enable/disable tracing of all <system> events
      filter                - If set, only events passing filter are traced

  events/<system>/<event>/  - Directory containing control files for <event>:
      enable                - Write 0/1 to enable/disable tracing of <event>
      filter                - If set, only events passing filter are traced
      trigger                - If set, a command to perform when event is hit
            Format: <trigger>[:count][if <filter>]
           trigger: traceon, traceoff
                    enable_event:<system>:<event>
                    disable_event:<system>:<event>
                    stacktrace
                    snapshot
           example: echo traceoff > events/block/block_unplug/trigger
                    echo traceoff:3 > events/block/block_unplug/trigger
                    echo 'enable_event:kmem:kmalloc:3 if nr_rq > 1' > \
                          events/block/block_unplug/trigger
           The first disables tracing every time block_unplug is hit.
           The second disables tracing the first 3 times block_unplug is hit.
           The third enables the kmalloc event the first 3 times block_unplug
             is hit and has value of greater than 1 for the 'nr_rq' event field.
           Like function triggers, the counter is only decremented if it
            enabled or disabled tracing.
           To remove a trigger without a count:
             echo '!<trigger> > <system>/<event>/trigger
           To remove a trigger with a count:
             echo '!<trigger>:0 > <system>/<event>/trigger
           Filters can be ignored when removing a trigger.




see also

https://lwn.net/Articles/365835/        Debugging the kernel using Ftrace - part 1

https://lwn.net/Articles/366796/        Debugging the kernel using Ftrace - part 2

https://lwn.net/Articles/410200/         trace-cmd: A front-end for Ftrace

https://jvns.ca/blog/2017/03/19/getting-started-with-ftrace/            ftrace: trace your kernel functions!



Using nmcli to view the WLAN status

You may use the Linux binary nmcli to view the WLAN status:

nmcli dev wifi

e.g






Sample output of the compile scripts



Example output of compiling the tools in parallel sessions


Sample output
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ time compile_scripts/make_tools.sh 
JWM_DIR is "/var/tmp/jwm"
 ... no general errors found.
All packages will be compiled in this distribution.
[25.10.2016 14:01:15] execute_scripts.sh v1.0.1 started at Tue Oct 25 14:01:15 CEST 2016.
[25.10.2016 14:01:15] No config file ("execute_scripts.conf") found (use -C to create a default config file)
[25.10.2016 14:01:15] Using the log file "/var/tmp/execute_scripts.LOG" 
[25.10.2016 14:01:15] 
[25.10.2016 14:01:15] Will process 56 executable(s). (Parameter -I and/or -i)
[25.10.2016 14:01:15]   Duplicates are NOT removed from the list of executables (Parameter -r to change)
[25.10.2016 14:01:15] Using the start script "/var/tmp/jwm/compile_scripts/start_compiling.sh" (Parameter -s) 
[25.10.2016 14:01:15] Using the stop script "/var/tmp/jwm/compile_scripts/check_compile_status.sh"  (Parameter -z) 
[25.10.2016 14:01:15] The working directory is "/var/tmp/jwm/workdir/". (Parameter -o)
[25.10.2016 14:01:15] Start and stop comment lines will be added to the logfiles (Parameter -k to change)
[25.10.2016 14:01:15] 
[25.10.2016 14:01:15] The executables will run parallel in the background (Parameter -d)
[25.10.2016 14:01:15] 
[25.10.2016 14:01:15] The maximum number of parallel background processes is -1 (Parameter -w -1,x,x -1 = not limited).
[25.10.2016 14:01:15]   The wait intervall for starting the background processes is 5 second(s) (Parameter -w x,5s,x); 
[25.10.2016 14:01:15]   the timeout for starting the background processes is 300 second(s) (Parameter -w x,x,5m -1 = not limited).
[25.10.2016 14:01:15] 
[25.10.2016 14:01:15] Waiting up to 7200 second(s) for the background processes to finish (Parameter -W 2h,x, -1 = not limited).
[25.10.2016 14:01:15]   The wait intervall for waiting for the background processes to finish is 30 second(s) (Parameter -W x,30 )
[25.10.2016 14:01:15] 
[25.10.2016 14:01:15] The logfiles of the executables will not be printed after the executable finished (Parameter -D no_of_logfile_lines=0)
 
*** Enter <l><return> to list the executables to execute, <x> to list the regex for executables not to execute, <p> to view the script parameter
*** <y><return> to start or <n><return> to abort. Default is <n>:  y
[25.10.2016 14:01:20] Starting processing ...
[25.10.2016 14:01:20] Executing the start script "/var/tmp/jwm/compile_scripts/start_compiling.sh" ... 
JWM_DIR is "/var/tmp/jwm"
Executing "compile_libpcap" now ...
Executing "compile_libprotobuf" now ...
Copying the OS libraries listed in the file "/var/tmp/jwm/compile_scripts/OS_LIBS" ...
  Deleting existing versions of "libtinfo" ...
  Searching the library "libtinfo" ...
    library found in the directory "/lib64" . Now copying the library to the JWM / Linux library directory ...
/var/tmp/jwm/lib/./libtinfo.so.5
/var/tmp/jwm/lib/./libtinfo.so
/var/tmp/jwm/lib/./libtinfo.so.5.9
336 blocks
  Deleting existing versions of "libnuma" ...
  Searching the library "libnuma" ...
    library found in the directory "/lib64" . Now copying the library to the JWM / Linux library directory ...
/var/tmp/jwm/lib/./libnuma.so.1
/var/tmp/jwm/lib/./libnuma.so
/var/tmp/jwm/lib/./libnuma.so.1.0.0
91 blocks
  Deleting existing versions of "liblua" ...
  Searching the library "liblua" ...
    library found in the directory "/lib64" . Now copying the library to the JWM / Linux library directory ...
/var/tmp/jwm/lib/./liblua-5.2.so
/var/tmp/jwm/lib/./liblua-5.3.so
/var/tmp/jwm/lib/./liblua.so
886 blocks
  Deleting existing versions of "libnl" ...
  Searching the library "libnl" ...
[25.10.2016 14:03:16]   Number of running processes are: 0
[25.10.2016 14:03:16]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_IntelPerformanceCounterMonitor.sh" ... ( 1 from 56; 0 already started) 
[25.10.2016 14:03:16]     The log file is "/var/tmp/jwm/workdir//compile_IntelPerformanceCounterMonitor.sh.16370.log" 
[25.10.2016 14:03:16]   Number of running processes are: 1
[25.10.2016 14:03:16]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_atop.sh" ... ( 2 from 56; 1 already started) 
[25.10.2016 14:03:16]     The log file is "/var/tmp/jwm/workdir//compile_atop.sh.16370.log" 
[25.10.2016 14:03:16]   Number of running processes are: 2
[25.10.2016 14:03:16]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_bonnie++.sh" ... ( 3 from 56; 2 already started) 
[25.10.2016 14:03:16]     The log file is "/var/tmp/jwm/workdir//compile_bonnie++.sh.16370.log" 
[25.10.2016 14:03:16]   Number of running processes are: 3
[25.10.2016 14:03:16]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_busybox.sh" ... ( 4 from 56; 3 already started) 
[25.10.2016 14:03:16]     The log file is "/var/tmp/jwm/workdir//compile_busybox.sh.16370.log" 
[25.10.2016 14:03:16]   Number of running processes are: 4
[25.10.2016 14:03:16]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_bvi.sh" ... ( 5 from 56; 4 already started) 
[25.10.2016 14:03:16]     The log file is "/var/tmp/jwm/workdir//compile_bvi.sh.16370.log" 
[25.10.2016 14:03:16]   Number of running processes are: 5
[25.10.2016 14:03:16]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_bwm_ng.sh" ... ( 6 from 56; 5 already started) 
[25.10.2016 14:03:16]     The log file is "/var/tmp/jwm/workdir//compile_bwm_ng.sh.16370.log" 
[25.10.2016 14:03:16]   Number of running processes are: 6

....

[25.10.2016 14:03:23]   Number of running processes are: 39
[25.10.2016 14:03:23]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_tiptop.sh" ... ( 55 from 56; 54 already started) 
[25.10.2016 14:03:23]     The log file is "/var/tmp/jwm/workdir//compile_tiptop.sh.16370.log" 
[25.10.2016 14:03:23]   Number of running processes are: 40
[25.10.2016 14:03:23]   ---- Processing the executable "/var/tmp/jwm/compile_scripts/compile_tracebox.sh" ... ( 56 from 56; 55 already started) 
[25.10.2016 14:03:23]     The log file is "/var/tmp/jwm/workdir//compile_tracebox.sh.16370.log" 
[25.10.2016 14:03:23] The loop to start the 56 background processes ended at Tue Oct 25 14:03:23 CEST 2016, the runtime is 0:00:00.
[25.10.2016 14:03:23] 
[25.10.2016 14:03:23] Starting the loop to wait for the background processes at Tue Oct 25 14:03:23 CEST 2016 ...
[25.10.2016 14:03:23]   Waiting up to 7200 seconds for the background processes to finish ...
[25.10.2016 14:03:24]     Process "4728" for /var/tmp/jwm/compile_scripts/compile_tracebox.sh is still running
[25.10.2016 14:03:24]       The log file is "/var/tmp/jwm/workdir//compile_tracebox.sh.16370.log" 
[25.10.2016 14:03:24]     Process "4363" for /var/tmp/jwm/compile_scripts/compile_tiptop.sh is still running

...


[25.10.2016 14:04:07]     Process "26174" for /var/tmp/jwm/compile_scripts/compile_bonnie++.sh finished
[25.10.2016 14:04:07]       The log file is "/var/tmp/jwm/workdir//compile_bonnie++.sh.16370.log" 
[25.10.2016 14:04:07]     Process "26068" for /var/tmp/jwm/compile_scripts/compile_IntelPerformanceCounterMonitor.sh is still running
[25.10.2016 14:04:07]       The log file is "/var/tmp/jwm/workdir//compile_IntelPerformanceCounterMonitor.sh.16370.log" 
[25.10.2016 14:04:07]   11 background processes (from 56) are still running
[25.10.2016 14:04:07]   Waiting for 30 second(s) now (total wait time until now: 30 seconds; max. timeout is 7200 seconds ; remaining wait time is 7170 seconds) ...
[25.10.2016 14:04:37]     Process "4728" for /var/tmp/jwm/compile_scripts/compile_tracebox.sh is still running
[25.10.2016 14:04:37]       The log file is "/var/tmp/jwm/workdir//compile_tracebox.sh.16370.log" 

...

[25.10.2016 14:05:08]   Waiting for 30 second(s) now (total wait time until now: 90 seconds; max. timeout is 7200 seconds ; remaining wait time is 7110 seconds) ...
[25.10.2016 14:05:38]     Process "32720" for /var/tmp/jwm/compile_scripts/compile_oprofile.sh finished
[25.10.2016 14:05:38]       The log file is "/var/tmp/jwm/workdir//compile_oprofile.sh.16370.log" 
[25.10.2016 14:05:38]     Process "32038" for /var/tmp/jwm/compile_scripts/compile_nmap.sh finished
[25.10.2016 14:05:38]       The log file is "/var/tmp/jwm/workdir//compile_nmap.sh.16370.log" 
[25.10.2016 14:05:38] The loop to wait for the background processes ended at Tue Oct 25 14:05:38 CEST 2016, the runtime is 0:02:00.
[25.10.2016 14:05:38] 
[25.10.2016 14:05:38] Executing the stop script "/var/tmp/jwm/compile_scripts/check_compile_status.sh" ... 
JWM_DIR is "/var/tmp/jwm"

[check_compile_status.sh] The compile status is:

Tool                 Compile status  (newest) Logfile                                                                                     compile script      
---------------------------------------------------------------------------------------------------------------------------------------------------------------
atop                 compiled        Size: 2311, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_atop.sh.16370.log                 ./compile_atop.sh   
bonnie++             compiled        Size: 4417, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_bonnie++.sh.16370.log             ./compile_bonnie++.sh
busybox              compiled        Size: 212273, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_busybox.sh.16370.log            ./compile_busybox.sh
bvi                  compiled        Size: 1642, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_bvi.sh.16370.log                  ./compile_bvi.sh    
bwm_ng               compiled        Size: 7796, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_bwm_ng.sh.16370.log               ./compile_bwm_ng.sh 
cdpr                 compiled        Size: 791, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_cdpr.sh.16370.log                  ./compile_cdpr.sh   
cpulimit             compiled        Size: 590, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_cpulimit.sh.16370.log              ./compile_cpulimit.sh
cpumon               compiled        Size: 1054, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_cpumon.sh.16370.log               ./compile_cpumon.sh 
darkstat             compiled        Size: 3986, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_darkstat.sh.16370.log             ./compile_darkstat.sh
dhtest               compiled        Size: 1654, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_dhtest.sh.16370.log               ./compile_dhtest.sh 
dmidecode            compiled        Size: 2276, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_dmidecode.sh.16370.log            ./compile_dmidecode.sh
dstat                compiled        Size: 499, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_dstat.sh.16370.log                 ./compile_dstat.sh  
fio                  compiled        Size: 11177, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_fio.sh.16370.log                 ./compile_fio.sh    
fspy                 compiled        Size: 2999, Date: Oct 25 14:03, Name:jwml_v226_Fedora_release_23_(Twenty_Three)_4.7.7-100.fc23.x86_64_x86_64_2016-10-26.tar.gz /var/tmp/jwm/workdir/compile_fspy.sh.16370.log                 ./compile_fspy.sh   
hdperf               compiled        Size: 595, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_hdperf.sh.16370.log                ./compile_hdperf.sh 
hostscope            compiled        Size: 7595, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_hostscope.sh.16370.log            ./compile_hostscope.sh
hping2               compiled        Size: 8893, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_hping2.sh.16370.log               ./compile_hping2.sh 
htop                 compiled        Size: 22957, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_htop.sh.16370.log                ./compile_htop.sh   
ibmonitor            compiled        Size: 517, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_ibmonitor.sh.16370.log             ./compile_ibmonitor.sh
ifstat               compiled        Size: 2802, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_ifstat.sh.16370.log               ./compile_ifstat.sh 
iftop                compiled        Size: 10010, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_iftop.sh.16370.log               ./compile_iftop.sh  
inotify              compiled        Size: 16141, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_inotify.sh.16370.log             ./compile_inotify.sh
IntelPerformanceCounterMonitor compiled        Size: 4052, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_IntelPerformanceCounterMonitor.sh.16370.log ./compile_IntelPerformanceCounterMonitor.sh
iozone               compiled        Size: 10632, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_iozone.sh.16370.log              ./compile_iozone.sh 
ipaudit              compiled        Size: 7557, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_ipaudit.sh.16370.log              ./compile_ipaudit.sh
ipband               compiled        Size: 6636, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_ipband.sh.16370.log               ./compile_ipband.sh 
iperf                compiled        Size: 18074, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_iperf.sh.16370.log               ./compile_iperf.sh  
iptraf               compiled        Size: 31045, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_iptraf.sh.16370.log              ./compile_iptraf.sh 
jnet                 compiled        Size: 18193, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_jnet.sh.16370.log                ./compile_jnet.sh   
latencytop           compiled        Size: 3201, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_latencytop.sh.16370.log           ./compile_latencytop.sh
monit                compiled        Size: 92893, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_monit.sh.16370.log               ./compile_monit.sh  
mtr                  compiled        Size: 8200, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_mtr.sh.16370.log                  ./compile_mtr.sh    
netdata              compiled        Size: 67993, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_netdata.sh.16370.log             ./compile_netdata.sh
nethogs              compiled        Size: 2603, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_nethogs.sh.16370.log              ./compile_nethogs.sh
netio                compiled        Size: 3286, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_netio.sh.16370.log                ./compile_netio.sh  
netperf              compiled        Size: 8568, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_netperf.sh.16370.log              ./compile_netperf.sh
ngrep                compiled        Size: 6155, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_ngrep.sh.16370.log                ./compile_ngrep.sh  
nicstat              compiled        Size: 1073, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_nicstat.sh.16370.log              ./compile_nicstat.sh
nload                compiled        Size: 11010, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_nload.sh.16370.log               ./compile_nload.sh  
nmap                 compiled        Size: 119781, Date: Oct 25 14:05, Name: /var/tmp/jwm/workdir/compile_nmap.sh.16370.log               ./compile_nmap.sh   
nmon                 compiled        Size: 588, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_nmon.sh.16370.log                  ./compile_nmon.sh   
numatop              compiled        Size: 1828, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_numatop.sh.16370.log              ./compile_numatop.sh
oprofile             compiled        Size: 92742, Date: Oct 25 14:05, Name: /var/tmp/jwm/workdir/compile_oprofile.sh.16370.log            ./compile_oprofile.sh
p0f                  compiled        Size: 1077, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_p0f.sh.16370.log                  ./compile_p0f.sh    
pchar                compiled        Size: 13856, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_pchar.sh.16370.log               ./compile_pchar.sh  
pigz                 compiled        Size: 1955, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_pigz.sh.16370.log                 ./compile_pigz.sh   
pktstat              compiled        Size: 13124, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_pktstat.sh.16370.log             ./compile_pktstat.sh
powertop             compiled        Size: 14351, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_powertop.sh.16370.log            ./compile_powertop.sh
prtdiag              compiled        Size: 507, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_prtdiag.sh.16370.log               ./compile_prtdiag.sh
saidar               compiled        Size: 56305, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_saidar.sh.16370.log              ./compile_saidar.sh 
screen               compiled        Size: 7445, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_screen.sh.16370.log               ./compile_screen.sh 
smartmontools        compiled        Size: 17118, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_smartmontools.sh.16370.log       ./compile_smartmontools.sh
sysstat              compiled        Size: 16281, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_sysstat.sh.16370.log             ./compile_sysstat.sh
t50                  compiled        Size: 1127, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_t50.sh.16370.log                  ./compile_t50.sh    
tiptop               compiled        Size: 6753, Date: Oct 25 14:03, Name: /var/tmp/jwm/workdir/compile_tiptop.sh.16370.log               ./compile_tiptop.sh 
tracebox             compiled        Size: 88506, Date: Oct 25 14:04, Name: /var/tmp/jwm/workdir/compile_tracebox.sh.16370.log            ./compile_tracebox.sh

All packages will be compiled in this distribution.

To compile a single tool use the compile script from the last column in the table above.

Prior to recompiling an already compiled tool you must set the tool to not compiled again using ./make_tools.sh preparecompile <toolname>

Prior to compiling a tool on the ignore list you must first remove the tool from the no compile list  /var/tmp/jwm/NO_COMPILE_LIST

To temporary disable compiling a tool execute  ./make_tools.sh alreadycompiled <toolname>
(This will mark the tool compiled without compiling it)jwml_v226_Fedora_release_23_(Twenty_Three)_4.7.7-100.fc23.x86_64_x86_64_2016-10-26.tar.gz

To disable compiling a tool permanent for this distribution execute  ./make_tools.sh nocompile <toolname>
(This will add the tool to the no compile list for this distribution)

[25.10.2016 14:05:38] 
[25.10.2016 14:05:38] All done (56 executable(s) ).
[25.10.2016 14:05:38] 
[25.10.2016 14:05:38] 
 
[25.10.2016 14:05:38] 56 executable(s) executed:
 /var/tmp/jwm/compile_scripts/compile_IntelPerformanceCounterMonitor.sh /var/tmp/jwm/compile_scripts/compile_atop.sh /var/tmp/jwm/compile_scripts/compile_bonnie++.sh /var/tmp/jwm/compile_scripts/compile_busybox.sh /var/tmp/jwm/compile_scripts/compile_bvi.sh /var/tmp/jwm/compile_scripts/compile_bwm_ng.sh /var/tmp/jwm/compile_scripts/compile_cdpr.sh /var/tmp/jwm/compile_scripts/compile_cpulimit.sh /var/tmp/jwm/compile_scripts/compile_cpumon.sh /var/tmp/jwm/compile_scripts/compile_darkstat.sh /var/tmp/jwm/compile_scripts/compile_dhtest.sh /var/tmp/jwm/compile_scripts/compile_dmidecode.sh /var/tmp/jwm/compile_scripts/compile_dstat.sh /var/tmp/jwm/compile_scripts/compile_fio.sh /var/tmp/jwm/compile_scripts/compile_fspy.sh /var/tmp/jwm/compile_scripts/compile_hdperf.sh /var/tmp/jwm/compile_scripts/compile_hostscope.sh /var/tmp/jwm/compile_scripts/compile_hping2.sh /var/tmp/jwm/compile_scripts/compile_htop.sh /var/tmp/jwm/compile_scripts/compile_ibmonitor.sh /var/tmp/jwm/compile_scripts/compile_ifstat.sh /var/tmp/jwm/compile_scripts/compile_iftop.sh /var/tmp/jwm/compile_scripts/compile_inotify.sh /var/tmp/jwm/compile_scripts/compile_iozone.sh /var/tmp/jwm/compile_scripts/compile_ipaudit.sh /var/tmp/jwm/compile_scripts/compile_ipband.sh /var/tmp/jwm/compile_scripts/compile_iperf.sh /var/tmp/jwm/compile_scripts/compile_iptraf.sh /var/tmp/jwm/compile_scripts/compile_jnet.sh /var/tmp/jwm/compile_scripts/compile_latencytop.sh /var/tmp/jwm/compile_scripts/compile_monit.sh /var/tmp/jwm/compile_scripts/compile_mtr.sh /var/tmp/jwm/compile_scripts/compile_netdata.sh /var/tmp/jwm/compile_scripts/compile_nethogs.sh /var/tmp/jwm/compile_scripts/compile_netio.sh /var/tmp/jwm/compile_scripts/compile_netperf.sh /var/tmp/jwm/compile_scripts/compile_ngrep.sh /var/tmp/jwm/compile_scripts/compile_nicstat.sh /var/tmp/jwm/compile_scripts/compile_nload.sh /var/tmp/jwm/compile_scripts/compile_nmap.sh /var/tmp/jwm/compile_scripts/compile_nmon.sh /var/tmp/jwm/compile_scripts/compile_numatop.sh /var/tmp/jwm/compile_scripts/compile_oprofile.sh /var/tmp/jwm/compile_scripts/compile_p0f.sh /var/tmp/jwm/compile_scripts/compile_pchar.sh /var/tmp/jwm/compile_scripts/compile_pigz.sh /var/tmp/jwm/compile_scripts/compile_pktstat.sh /var/tmp/jwm/compile_scripts/compile_powertop.sh /var/tmp/jwm/compile_scripts/compile_prtdiag.sh /var/tmp/jwm/compile_scripts/compile_saidar.sh /var/tmp/jwm/compile_scripts/compile_screen.sh /var/tmp/jwm/compile_scripts/compile_smartmontools.sh /var/tmp/jwm/compile_scripts/compile_sysstat.sh /var/tmp/jwm/compile_scripts/compile_t50.sh /var/tmp/jwm/compile_scripts/compile_tiptop.sh /var/tmp/jwm/compile_scripts/compile_tracebox.sh
 
[25.10.2016 14:05:38] The working directory was "/var/tmp/jwm/workdir/".
 
[25.10.2016 14:05:39] The log file used was "/var/tmp/execute_scripts.LOG" 
[25.10.2016 14:05:39] execute_scripts.sh v1.0.1 started at Tue Oct 25 14:01:15 CEST 2016 and ended at Tue Oct 25 14:05:39 CEST 2016.
[25.10.2016 14:05:39] The RC is 0.

real    4m24.188s
user    11m16.951s
sys    1m33.717s
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




Example output of compiling the tools sequential


Sample output
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ time compile_scripts/make_tools.sh  +d
JWM_DIR is "/var/tmp/jwm"
 ... no general errors found.
All packages will be compiled in this distribution.
[25.10.2016 14:09:43] execute_scripts.sh v1.0.1 started at Tue Oct 25 14:09:43 CEST 2016.
[25.10.2016 14:09:43] No config file ("execute_scripts.conf") found (use -C to create a default config file)
[25.10.2016 14:09:43] Using the log file "/var/tmp/execute_scripts.LOG" 
[25.10.2016 14:09:43] 
[25.10.2016 14:09:43] Will process 56 executable(s). (Parameter -I and/or -i)
[25.10.2016 14:09:43]   Duplicates are NOT removed from the list of executables (Parameter -r to change)
[25.10.2016 14:09:43] Using the start script "/var/tmp/jwm/compile_scripts/start_compiling.sh" (Parameter -s) 
[25.10.2016 14:09:43] Using the stop script "/var/tmp/jwm/compile_scripts/check_compile_status.sh"  (Parameter -z) 
[25.10.2016 14:09:43] The working directory is "/var/tmp/jwm/workdir/". (Parameter -o)
[25.10.2016 14:09:43] Start and stop comment lines will be added to the logfiles (Parameter -k to change)
[25.10.2016 14:09:43] 
[25.10.2016 14:09:43] The executables will run sequential one after the other (Parameter -d to change).
[25.10.2016 14:09:43] 
[25.10.2016 14:09:43] The return code of the executables will be ignored (Parameter -B to change)
[25.10.2016 14:09:43] The last 10 lines of the logfiles of the executables will be printed after the executable finished with RC not equal zero (Parameter -D no_of_logfile_lines=10)
[25.10.2016 14:09:43] The last 5 lines of the logfiles of the executables will be printed after the executable finished with RC nequal zero (Parameter -D no_of_logfile_lines=5)
 
*** Enter <l><return> to list the executables to execute, <x> to list the regex for executables not to execute, <p> to view the script parameter
*** <y><return> to start or <n><return> to abort. Default is <n>:  y
[25.10.2016 14:09:45] Starting processing ...
[25.10.2016 14:09:45] Executing the start script "/var/tmp/jwm/compile_scripts/start_compiling.sh" ... 
JWM_DIR is "/var/tmp/jwm"
Executing "compile_libpcap" now ...
Executing "compile_libprotobuf" now ...
Copying the OS libraries listed in the file "/var/tmp/jwm/compile_scripts/OS_LIBS" ...
  Deleting existing versions of "libtinfo" ...
  Searching the library "libtinfo" ...
    library found in the directory "/lib64" . Now copying the library to the JWM / Linux library directory ...
/var/tmp/jwm/lib/./libtinfo.so.5
/var/tmp/jwm/lib/./libtinfo.so
/var/tmp/jwm/lib/./libtinfo.so.5.9
336 blocks
  Deleting existing versions of "libnuma" ...
  Searching the library "libnuma" ...
    library found in the directory "/lib64" . Now copying the library to the JWM / Linux library directory ...
/var/tmp/jwm/lib/./libnuma.so.1
/var/tmp/jwm/lib/./libnuma.so
/var/tmp/jwm/lib/./libnuma.so.1.0.0
91 blocks
  Deleting existing versions of "liblua" ...
  Searching the library "liblua" ...
    library found in the directory "/lib64" . Now copying the library to the JWM / Linux library directory ...
/var/tmp/jwm/lib/./liblua-5.2.sojwml_v226_Fedora_release_23_(Twenty_Three)_4.7.7-100.fc23.x86_64_x86_64_2016-10-26.tar.gz
/var/tmp/jwm/lib/./liblua-5.3.so
/var/tmp/jwm/lib/./liblua.so
886 blocks
  Deleting existing versions of "libnl" ...
  Searching the library "libnl" ...
 
[25.10.2016 14:11:40] ---- Processing "/var/tmp/jwm/compile_scripts/compile_IntelPerformanceCounterMonitor.sh" ... ( 1 from 56) 
[25.10.2016 14:12:03]   The RC is 0; the log file is "/var/tmp/jwm/workdir//compile_IntelPerformanceCounterMonitor.sh.15571.log"
[25.10.2016 14:12:03] The last 5 line(s) of the logfile "/var/tmp/jwm/workdir//compile_IntelPerformanceCounterMonitor.sh.15571.log" are:
 
[25.10.2016 14:12:03] -------------------------------------

g++ -Wall -g -O3 -Wno-unknown-pragmas -DPCM_USE_PERF -std=c++0x -c pcm-core.cpp -o pcm-core.o
g++ -MM -Wall -g -O3 -Wno-unknown-pragmas -DPCM_USE_PERF -std=c++0x pcm-core.cpp > pcm-core.d
g++ -o pcm-core.x pcm-core.o msr.o cpucounters.o pci.o client_bw.o utils.o -pthread -lrt
rm -rf *.x *.o *~ *.d
# ### ---- Log of the executable "/var/tmp/jwm/compile_scripts/compile_IntelPerformanceCounterMonitor.sh" executed at Tue Oct 25 14:12:03 CEST 2016 --- end ---

[25.10.2016 14:12:03] -------------------------------------
 
 
[25.10.2016 14:12:03] ---- Processing "/var/tmp/jwm/compile_scripts/compile_atop.sh" ... ( 2 from 56) 
[25.10.2016 14:12:05]   The RC is 0; the log file is "/var/tmp/jwm/workdir//compile_atop.sh.15571.log"
[25.10.2016 14:12:05] The last 5 line(s) of the logfile "/var/tmp/jwm/workdir//compile_atop.sh.15571.log" are:
 
...

[25.10.2016 14:17:17] ---- Processing "/var/tmp/jwm/compile_scripts/compile_tracebox.sh" ... ( 56 from 56) 
[25.10.2016 14:17:55]   The RC is 0; the log file is "/var/tmp/jwm/workdir//compile_tracebox.sh.15571.log"
[25.10.2016 14:17:55] The last 5 line(s) of the logfile "/var/tmp/jwm/workdir//compile_tracebox.sh.15571.log" are:
 
[25.10.2016 14:17:55] -------------------------------------

make[1]: Entering directory '/var/tmp/jwm/src/tracebox'
rm -rf .libs _libs
rm -f *.lo
make[1]: Leaving directory '/var/tmp/jwm/src/tracebox'
# ### ---- Log of the executable "/var/tmp/jwm/compile_scripts/compile_tracebox.sh" executed at Tue Oct 25 14:17:55 CEST 2016 --- end ---

[25.10.2016 14:17:55] -------------------------------------
 
[25.10.2016 14:17:55] Executing the stop script "/var/tmp/jwm/compile_scripts/check_compile_status.sh" ... 
JWM_DIR is "/var/tmp/jwm"

[check_compile_status.sh] The compile status is:

Tool                 Compile status  (newest) Logfile                                                                                     compile script      
---------------------------------------------------------------------------------------------------------------------------------------------------------------
atop                 compiled        Size: 2313, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_atop.sh.15571.log                 ./compile_atop.sh   
bonnie++             compiled        Size: 4419, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_bonnie++.sh.15571.log             ./compile_bonnie++.sh
busybox              compiled        Size: 212275, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_busybox.sh.15571.log            ./compile_busybox.sh
bvi                  compiled        Size: 1644, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_bvi.sh.15571.log                  ./compile_bvi.sh    
bwm_ng               compiled        Size: 7798, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_bwm_ng.sh.15571.log               ./compile_bwm_ng.sh 
cdpr                 compiled        Size: 793, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_cdpr.sh.15571.log                  ./compile_cdpr.sh   
cpulimit             compiled        Size: 592, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_cpulimit.sh.15571.log              ./compile_cpulimit.sh
cpumon               compiled        Size: 1056, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_cpumon.sh.15571.log               ./compile_cpumon.sh 
darkstat             compiled        Size: 3988, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_darkstat.sh.15571.log             ./compile_darkstat.sh
dhtest               compiled        Size: 1656, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_dhtest.sh.15571.log               ./compile_dhtest.sh 
dmidecode            compiled        Size: 2278, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_dmidecode.sh.15571.log            ./compile_dmidecode.sh
dstat                compiled        Size: 501, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_dstat.sh.15571.log                 ./compile_dstat.sh  
fio                  compiled        Size: 11179, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_fio.sh.15571.log                 ./compile_fio.sh    
fspy                 compiled        Size: 3001, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_fspy.sh.15571.log                 ./compile_fspy.sh   
hdperf               compiled        Size: 597, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_hdperf.sh.15571.log                ./compile_hdperf.sh 
hostscope            compiled        Size: 7597, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_hostscope.sh.15571.log            ./compile_hostscope.sh
hping2               compiled        Size: 8895, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_hping2.sh.15571.log               ./compile_hping2.sh 
htop                 compiled        Size: 22959, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_htop.sh.15571.log                ./compile_htop.sh   
ibmonitor            compiled        Size: 519, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_ibmonitor.sh.15571.log             ./compile_ibmonitor.sh
ifstat               compiled        Size: 2804, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_ifstat.sh.15571.log               ./compile_ifstat.sh 
iftop                compiled        Size: 10012, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_iftop.sh.15571.log               ./compile_iftop.sh  
inotify              compiled        Size: 16143, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_inotify.sh.15571.log             ./compile_inotify.sh
IntelPerformanceCounterMonitor compiled        Size: 4054, Date: Oct 25 14:12, Name: /var/tmp/jwm/workdir/compile_IntelPerformanceCounterMonitor.sh.15571.log ./compile_IntelPerformanceCounterMonitor.sh
iozone               compiled        Size: 10634, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_iozone.sh.15571.log              ./compile_iozone.sh 
ipaudit              compiled        Size: 7559, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_ipaudit.sh.15571.log              ./compile_ipaudit.sh
ipband               compiled        Size: 6638, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_ipband.sh.15571.log               ./compile_ipband.sh 
iperf                compiled        Size: 18076, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_iperf.sh.15571.log               ./compile_iperf.sh  
iptraf               compiled        Size: 31047, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_iptraf.sh.15571.log              ./compile_iptraf.sh 
jnet                 compiled        Size: 18195, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_jnet.sh.15571.log                ./compile_jnet.sh   
latencytop           compiled        Size: 3203, Date: Oct 25 14:13, Name: /var/tmp/jwm/workdir/compile_latencytop.sh.15571.log           ./compile_latencytop.sh
monit                compiled        Size: 92897, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_monit.sh.15571.log               ./compile_monit.sh  
mtr                  compiled        Size: 8202, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_mtr.sh.15571.log                  ./compile_mtr.sh    
netdata              compiled        Size: 67995, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_netdata.sh.15571.log             ./compile_netdata.sh
nethogs              compiled        Size: 2605, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_nethogs.sh.15571.log              ./compile_nethogs.sh
netio                compiled        Size: 3288, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_netio.sh.15571.log                ./compile_netio.sh  
netperf              compiled        Size: 8570, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_netperf.sh.15571.log              ./compile_netperf.sh
ngrep                compiled        Size: 6157, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_ngrep.sh.15571.log                ./compile_ngrep.sh  
nicstat              compiled        Size: 1075, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_nicstat.sh.15571.log              ./compile_nicstat.sh
nload                compiled        Size: 11012, Date: Oct 25 14:14, Name: /var/tmp/jwm/workdir/compile_nload.sh.15571.log               ./compile_nload.sh  
nmap                 compiled        Size: 119783, Date: Oct 25 14:15, Name: /var/tmp/jwm/workdir/compile_nmap.sh.15571.log               ./compile_nmap.sh   
nmon                 compiled        Size: 590, Date: Oct 25 14:15, Name: /var/tmp/jwm/workdir/compile_nmon.sh.15571.log                  ./compile_nmon.sh   
numatop              compiled        Size: 1830, Date: Oct 25 14:15, Name: /var/tmp/jwm/workdir/compile_numatop.sh.15571.log              ./compile_numatop.sh
oprofile             compiled        Size: 92745, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_oprofile.sh.15571.log            ./compile_oprofile.sh
p0f                  compiled        Size: 1079, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_p0f.sh.15571.log                  ./compile_p0f.sh    
pchar                compiled        Size: 13858, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_pchar.sh.15571.log               ./compile_pchar.sh  
pigz                 compiled        Size: 1957, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_pigz.sh.15571.log                 ./compile_pigz.sh   
pktstat              compiled        Size: 13126, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_pktstat.sh.15571.log             ./compile_pktstat.sh
powertop             compiled        Size: 14354, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_powertop.sh.15571.log            ./compile_powertop.sh
prtdiag              compiled        Size: 509, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_prtdiag.sh.15571.log               ./compile_prtdiag.sh
saidar               compiled        Size: 56308, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_saidar.sh.15571.log              ./compile_saidar.sh 
screen               compiled        Size: 7373, Date: Oct 25 14:16, Name: /var/tmp/jwm/workdir/compile_screen.sh.15571.log               ./compile_screen.sh 
smartmontools        compiled        Size: 17120, Date: Oct 25 14:17, Name: /var/tmp/jwm/workdir/compile_smartmontools.sh.15571.log       ./compile_smartmontools.sh
sysstat              compiled        Size: 16283, Date: Oct 25 14:17, Name: /var/tmp/jwm/workdir/compile_sysstat.sh.15571.log             ./compile_sysstat.sh
t50                  compiled        Size: 1129, Date: Oct 25 14:17, Name: /var/tmp/jwm/workdir/compile_t50.sh.15571.log                  ./compile_t50.sh    
tiptop               compiled        Size: 6755, Date: Oct 25 14:17, Name: /var/tmp/jwm/workdir/compile_tiptop.sh.15571.log               ./compile_tiptop.sh 
tracebox             compiled        Size: 88510, Date: Oct 25 14:17, Name: /var/tmp/jwm/workdir/compile_tracebox.sh.15571.log            ./compile_tracebox.sh

All packages will be compiled in this distribution.

To compile a single tool use the compile script from the last column in the table above.

Prior to recompiling an already compiled tool you must set the tool to not compiled again using ./make_tools.sh preparecompile <toolname>

Prior to compiling a tool on the ignore list you must first remove the tool from the no compile list  /var/tmp/jwm/NO_COMPILE_LIST

To temporary disable compiling a tool execute  ./make_tools.sh alreadycompiled <toolname>
(This will mark the tool compiled without compiling it)

To disable compiling a tool permanent for this distribution execute  ./make_tools.sh nocompile <toolname>
(This will add the tool to the no compile list for this distribution)

[25.10.2016 14:17:55] 
[25.10.2016 14:17:55] All done (56 executable(s) ).
[25.10.2016 14:17:55] 
[25.10.2016 14:17:55] 
 
[25.10.2016 14:17:55] 56 executable(s) executed:
 /var/tmp/jwm/compile_scripts/compile_IntelPerformanceCounterMonitor.sh /var/tmp/jwm/compile_scripts/compile_atop.sh /var/tmp/jwm/compile_scripts/compile_bonnie++.sh /var/tmp/jwm/compile_scripts/compile_busybox.sh /var/tmp/jwm/compile_scripts/compile_bvi.sh /var/tmp/jwm/compile_scripts/compile_bwm_ng.sh /var/tmp/jwm/compile_scripts/compile_cdpr.sh /var/tmp/jwm/compile_scripts/compile_cpulimit.sh /var/tmp/jwm/compile_scripts/compile_cpumon.sh /var/tmp/jwm/compile_scripts/compile_darkstat.sh /var/tmp/jwm/compile_scripts/compile_dhtest.sh /var/tmp/jwm/compile_scripts/compile_dmidecode.sh /var/tmp/jwm/compile_scripts/compile_dstat.sh /var/tmp/jwm/compile_scripts/compile_fio.sh /var/tmp/jwm/compile_scripts/compile_fspy.sh /var/tmp/jwm/compile_scripts/compile_hdperf.sh /var/tmp/jwm/compile_scripts/compile_hostscope.sh /var/tmp/jwm/compile_scripts/compile_hping2.sh /var/tmp/jwm/compile_scripts/compile_htop.sh /var/tmp/jwm/compile_scripts/compile_ibmonitor.sh /var/tmp/jwm/compile_scripts/compile_ifstat.sh /var/tmp/jwm/compile_scripts/compile_iftop.sh /var/tmp/jwm/compile_scripts/compile_inotify.sh /var/tmp/jwm/compile_scripts/compile_iozone.sh /var/tmp/jwm/compile_scripts/compile_ipaudit.sh /var/tmp/jwm/compile_scripts/compile_ipband.sh /var/tmp/jwm/compile_scripts/compile_iperf.sh /var/tmp/jwm/compile_scripts/compile_iptraf.sh /var/tmp/jwm/compile_scripts/compile_jnet.sh /var/tmp/jwm/compile_scripts/compile_latencytop.sh /var/tmp/jwm/compile_scripts/compile_monit.sh /var/tmp/jwm/compile_scripts/compile_mtr.sh /var/tmp/jwm/compile_scripts/compile_netdata.sh /var/tmp/jwm/compile_scripts/compile_nethogs.sh /var/tmp/jwm/compile_scripts/compile_netio.sh /var/tmp/jwm/compile_scripts/compile_netperf.sh /var/tmp/jwm/compile_scripts/compile_ngrep.sh /var/tmp/jwm/compile_scripts/compile_nicstat.sh /var/tmp/jwm/compile_scripts/compile_nload.sh /var/tmp/jwm/compile_scripts/compile_nmap.sh /var/tmp/jwm/compile_scripts/compile_nmon.sh /var/tmp/jwm/compile_scripts/compile_numatop.sh /var/tmp/jwm/compile_scripts/compile_oprofile.sh /var/tmp/jwm/compile_scripts/compile_p0f.sh /var/tmp/jwm/compile_scripts/compile_pchar.sh /var/tmp/jwm/compile_scripts/compile_pigz.sh /var/tmp/jwm/compile_scripts/compile_pktstat.sh /var/tmp/jwm/compile_scripts/compile_powertop.sh /var/tmp/jwm/compile_scripts/compile_prtdiag.sh /var/tmp/jwm/compile_scripts/compile_saidar.sh /var/tmp/jwm/compile_scripts/compile_screen.sh /var/tmp/jwm/compile_scripts/compile_smartmontools.sh /var/tmp/jwm/compile_scripts/compile_sysstat.sh /var/tmp/jwm/compile_scripts/compile_t50.sh /var/tmp/jwm/compile_scripts/compile_tiptop.sh /var/tmp/jwm/compile_scripts/compile_tracebox.sh
 
[25.10.2016 14:17:55] The working directory was "/var/tmp/jwm/workdir/".
 
[25.10.2016 14:17:55] The log file used was "/var/tmp/execute_scripts.LOG" 
[25.10.2016 14:17:55] execute_scripts.sh v1.0.1 started at Tue Oct 25 14:09:43 CEST 2016 and ended at Tue Oct 25 14:17:55 CEST 2016.
[25.10.2016 14:17:55] The RC is 0.

real    8m12.019s
user    7m3.814s
sys    0m58.906s

 



History archive


Old History
Date
Version
Comment
01.12.2019/bs
2.4.0
added netcat (The GNU Netcat) 0.7.1

New versions
new version: ack 3.1.2
new version: busybox 1.31.0
new version: netdata v1.18.1
new version: sysstat 12.0.6
new version: stress-ng 0.10.8
new version: health-check 0.03.01
new version: forkstat 0.02.1
new version: eventstat 0.04.07
new version: smemstat 0.02.05
new version: tcpdump 4.9.3
new version: t50 5.8.5
new version: memconf 3.15
new version: inq 9.1
new version: lynis 2.7.5

01.07.2019 /bs
2.3.0
added sockperf 3.5
added httpry 0.1.8
added trace-cmd 2.7
added nano 3.1
added monitor_systems.sh 1.0.0
added checksec 1.10.0
added ioping 1.1
added scanlogd 2.2.7
added arping 2.19
added dropwatch 1.5

added some binaries (e.g for iperf) for other OS

New versions
new version: stress-ng 0.09.57
new version: lynis 2.7.4
new version: dmidecode 3.2
new version: sysstat tools 12.1.5
new version: forkstat 0.02.09
new version: eventstat 0.04.05
new version: smemstat 0.02.03
new version: iozone 3_487
new version: bwm-ng 0.6.2
new version: busybox 1.30.1
new version: powerstat 0.02.18
new version: collectl 4.3.1
new version: netdata 1.14.0
new version: inxi 3.0.33
new version: atop 2.4.0
new version: stress-ng 0.09.59.1
new version: health-check 0.03.01
new version: nmon 16j
new version: ack 3.0

removed: unfs3

01.09.2018/bs 2.2.11 added testssl.sh 3.0beta
added ack 3 beta

New versions

new version: ack 2.24
new version: CPUhog 2.1.3
new version: cpustat 00.02.05
new version: dhtest 1.5
new version: eventstat 0.04.04
new version: forkstat 0.02.05
new version: health-check  0.03.00
new version: lynis 2.6.7
new version: scriptt_mini.sh
new version: horst 5.1
new version: hostscope 4.0
new version: htop 2.2.0
new version: inxi 3.0.21
new version: inq 9.0.0.0
new version: iozone 3_482
new version: ipscan  3.5.3
new version: oprofile 1.3.0
new version: pigz 2.4
new version: powertop 2.9
new version: procdump 1.0.1
new version: smemstat 0.02.01
new version: stress-ng 0.9.37
new version: t50 5.8.0
new version: smartmontools 6.6
new version: sysstat tools 12.0.1
new version: perftools 19.12.2017
new version: nmap 7.70
new version: netsniff-ng 0.6.4
new version: busybox 1.29.2

removed: saidar

added a patched version of the opensnoop script from the perftools
added the wrapper script  open_snoop_wrapper.sh for the script opensnoop from the perftools
added the wrapper script exec_snoop_wrapper.sh for the script execsnoop from the perftools 

fixes:

start_compiling.sh was rewritten because the script did not process all kind of symbolic links for the libraries correct
fixed a lot of compile scripts in the directory ${JWM_DIR}/compile_scripts so that they can be used with a non-standard compiler in Centos 6.9
the compile scripts printed a wrong error message in case of an error if called direct - fixed
added the "new" directories from Mint 19 to the library search path in start_compiling
the script to start collectl, scripts/collectl, did not work -- fixed

03.01.2018/bs 2.2.10 added the kornshell script template scriptt_mini.sh ( in the directory ${JWM_DIR}/develop)

added procdump 1.0.0
added memstat 1.0.0

New versions

new version: inxi 2.3.53
new version: lynis 2.5.8
new version: health-check 0.02.08
new version: ack 2.20
new version: collectl 4.3.0
new version: htop 2.0.2
new version: hostscope 2.3.0
new version: stress-ng 0.09.07
new version: eventstat 0.04.02
new version: memconf v3.14
new version: netsniff-ng 0.6.3
new version: iperf3 3.6.0

fixed some code in the Perl script for the MAN Server that the new Perl version does not like:

Changes in manServer.pl

[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$ diff /var/tmp/jwm/scripts/manServer.pl /var/tmp/jwm/scripts/manServer.pl.org
585c585
<     s,\\\{,,g;
---
>     s,\\{,,g;
1959c1959
<             elsif ($col =~ m/T\{/) #}
---
>             elsif ($col =~ m/T{/) #}
1961c1961
<                 $col =~ s/T\{//; #}
---
>                 $col =~ s/T{//; #}
[JWM session] [xtrnaw7@t540p /var/tmp/jwm]$




15.10.2017/bs 2.2.9 added wavemon 0.8.0
added tcptrack 1.4.2
added smemstat 0.01.17

New versions
new version: ack 2.18
new version: atop 2.3.0/var/tmp/jwm/workdir/compile_powertop.sh.13646.log
new version: bonnie++ 1.0.4
new version: busybox 1.27.2
new version: collectl 4.2.0
new version: dmidecode 3.1
new version: dstat 0.7.3
new version: eventstat 0.04.01
new version: fiemap
new version: fio 2.1.10
new version: fnotifystat 0.01.17
new version: forkstat 0.0 new version: t50 5.7.02.00
new version: health-check 0.02.06
new version: hostscope 2.1
new version: inq 8.4.0.7__builtin_bswap16
new version: iozone3 471
new version: iperf3 3.2.0
new version: lynis 2.5.5
new version: mtr 0.9.2
new version: netdata 1.8
new version: ngrep 1.47
new version: numatop 1.0.4
new version: oprofile 1.2.0
new version: p0f 3.09
new version: stress-ng 0.08.16
new version: sysstat 11.6.0
new version: t50 5.7.0
new version: tcpdump 4.9.2 

added the column "gcc version" to the table "Linux Distributions tested"

updated execute_on_all_host.sh to version 2.2.3

01.05.2017/bs 2.2.8 added JDiskReport 1.4.1
added horst 5.0
added lxtx
added mpathstat.py 1.1

removed monit ; the link to download monit is now in the  list with links to other performance and monitoring tools 

New versions
new version: nmap 7.40
new version: lynis 2.4.8
new version: busybox 1.26.2
new version: iperf3 3.1.7
new version: inq 8.3.0.6
new version: memconf v3.13
new version: sysstat 11.5.5
new version: netdata 1.6.0
new version: inxi 2.3.8
new version: bmon 4.0

updated execute_scripts.sh to version 1.0.2

add_os_package.sh now also supports Arch Linux Distributions (tested with Antergos and Apricity)
add_os_package.sh now also checks for other kornshell derivates like mksh or pdksh
all compile scripts support now the parameter -f or --force to compile the tool even if it's already compiled

added the tar file ${JWM_DIR}/hostscope_jwm_rhel6.tar with compiled hostscope binaries for Linux distributions on which hostscope can not be compiled

01.01.2017/bs 2.2.7
added CPUhog
added stress 1.04
added stress-ng 0.03.11
added forkstat 0.01.15
added cpustat 0.01.28
added powerstat 0.02.10
added smemstat 0.01.15
added eventstat  0.03.03
added pagemon 0.01.10
added fnotifystat 0.01.16
added health-check 0.02.04
added fiemap
added a simple manServer
added sysfsutils 2.1
added unfs3 09.22
added justniffer 0.5.14
added bmon 3.9
added iptstate 2.2.6
added pt-diskstats 2.2.19
added iptraf-ng  1.1.4
added netsniff-ng 0.6.2+
added nmonchart 31
added the Java Nmon Analyzer

New versions

new version: tecmint_monitor.sh
new version: smartmontools 6.5
new version: netperf 2.7
new version: dhtest 1.4
new version: inxi 3.02 (Update 08.04.2017/bs: This version number is wrong; should be 2.3.4)
new version: sysstat 11.5.3
new version: hostscope 1.0.0 

added a patch to the source for oprofile so that it compiles with GCC-6 also

added the Tools summary table with the tools sorted by usage
added a column with the user interface to the table with the tools
added a column with the release year of the newest version of the tools to the table with the tools
added hints to compile busybox in older Linux versions
added a list with links to other performance tools not included here
added the script jwm.sh
added the script check_for_missing_libs.sh
added the script add_os_packages.sh
added a table with Linux distributions tested

Fixes:

- rearranged the sections in this document: The sections about compiling the tools and adding new tools or libraries are now after the information about the included tools
- fixed some small errors in the scripts
- corrected a nasty bug in the include script jwm_env
- corrected a bug in the compile script for nmon

Be aware that this page now heavily uses the "new" html tag <details></details>. Therefor you should use a browser that supports this tag.

<details> Test
If you can see this text and can NOT hide it by clicking on <details> Test above your browser does not support the tag <details></details>


01.11.2016/bs 2.2.6
added dmidecode 3.0
added prtdiag 1.2
added memconf  3.12
added cdpinfo 1.2
added jnettop 0.13
added nload 0.7.4

added the script netdata.sh for starting or stopping the netdata daemon
added the script darkstat.sh for starting or stopping the darkstat daemon
added the script busybox_httpd.sh for starting or stopping the busybox httpd daemon

New versions

new version: T50 5.6.7-fix1
new version: inq 8.3.0
new version: collectl 4.1.0
new version: lynis 2.40

Fixes:

corrected the description for darkstat

09.10.2016/bs
2.2.5
added ipband
added ibmonitor
added ipscan
added ipaudit
added lynis
added tecmint_monitor.sh

New versions
new version: netdata 1.4.0
new version: tiptop 2.3
new version: pigz 2.3.4
new version: busybox 1.25.0
new version: nmon 16f
new version: collectl 4.0.5
new version: sysstat 11.4.1
new version: iozone 3_465 

15.05.2016/bs
2.2.4
added inxi
added netdata 1.1.0
added Intel Performance Counter Monitor 2.11
added smem

New versions

new version:  nmon 16d
new version: powertop 2.8
new version: numatop 1.0.4
new version: sysstat 11.2.2
new version: inq 8.2.0
new version: htop 2.0.1
new version: dstat 0.7.3
new version: collectl 4.0.4 
 
09.01.2016/bs
2.2.3
added hostscope 0.2.0
added p0f 3.08b


New versions

new version: darkstat 3.0.719
new version: pigz 2.3.3

new version: execute_on_all_hosts.sh  2.0.2
new version: execute_scripts.sh  1.0.1
 

added screenshots for the tools

The compile script now supports partial OS descriptions in the NO_COMPILE_LIST

Fixes:

The script start_compiling now uses "rm -f" to delete existing libraries
The script start_compiling now searches the OS libraries to copy in these directories (the last two directories are new):
   /lib64 /lib /usr/lib64 /usr/lib /usr/local/lib /usr/local/lib64

08.11.2015/bs
2.2.2

New versions

new version: atop 2.2.3
new version: bwm-ng 0.6.1
new version: sysstat 11.1.8
new version: nmon 15h
new version: oprofile 1.1.0
new version: inq 8.1.1.0 (64 Bit only; 32 Bit Version is still 7.6.2.0)

new version: execute_on_all_hosts.sh 2.0.1

added the parameter "forcecompile"  (= compile even if already compiled) to the make script.

10.04.2015/bs
2.2.1
added smartmontools 6.3
corrected: nicstat now compiles out of the box in 32 Bit Linux also

New versions

new version: inq 8.0.2.0 (64 Bit only; 32 Bit Version is still 7.6.2.0)
new version: collectl 4.0.0
new version: sysstat 11.1.4

15.11.2014/bs
2.2.0
added tiptop 2.2
added perftools
added code to copy some unusal OS libraries necessary for the tools to the JWM / Linux lib directory

New versions
new version: ack 2.14
new version: atop 2.1
new version: collectl 3.7.4
new version: oprofile 1.0.0
new version: sysstat 11.1.2

15.08.2014/bs
2.1.0
added pigz 2.3.1

New versions
tnew version: numatop 1.0.3
new version: saidar: 0.9.1

made some minor changes for 32-bit Linux

09.06.2014/bs
2.0.0

added execute_scripts.sh 1.0.0

removed ntopng
removed redis

added busybox 1.22.1
added monit 5.8.1

Fixes

make script completely rewritten -- now it uses the script execute_scripts.sh to compile the tools in parallel sessions

01.06.2014/bs
1.0.4
added netperf 2.6.0
added bonnie++ 1.03

New versions

new version: ack 2.12
new version: cdpr 2.4
new version: collectl 3.7.3
new version: cpumon 2.4
new version: darkstart  3.0718
new version: fio 2.1.7
new version: htop 1.3
new version: iftop 1.0pre4
new version: inq 7.6.2.0
new version: mtr 0.85
new version: nicstat 1.95
new version: numatop 1.02
new version: powertop 2.6.1
new version: sysstat 10.2.1
new version: execute_on_all_hosts.sh v1.2.0 

10.04.2014/bs
1.0.3
moved the directory " oprofile_data" to data/oprofile
added dhtest
added t50
added tracebox

10.02.2014/bs
1.0.2
added cpumon
added bvi
added ntopng and redis-server

05.11.2013/bs
1.0.1
added various tools
cleanup scripts

27.10.2013/bs
1.0.0
first public release
see also the README file in the tar archive






Download


The prebuild version of JWM / Linux can be downloaded here:

http://bnsmb.de/files/public/jwm_linux/


Links to other resources


URL
Description
Comment
http://bnsmb.de my home page

http://bnsmb.de/solaris/JWM_short_online_help.html
JWM for Solaris - my performance and monitoring tools collection for Solaris

http://bnsmb.de/solaris/Rescue_USB_Stick.html
Documentation for my USB Rescue Stick

http://bnsmb.de/solaris/scriptt.html
My script template for kornshell scripts

http://bnsmb.de/solaris/execute_on_all_hosts.html
A kornshell script to execute a command or script on mutliple hosts

http://bnsmb.de/solaris/execute_scripts.html
A kornshell script to execute multiple commands in parallel




http://cromwell-intl.com/linux/performance-tuning/file-systems.html
Filesystem tuning

http://smackerelofopinion.blogspot.de/
The blog of Colin Ian King who wrote some of the tools mentioned here

http://www.slideshare.net/brendangregg/linux-performance-analysis-new-tools-and-old-secrets "Linux Performance Analysis: New Tools and Old Secrets" by Brendan Gregg
http://www.brendangregg.com/linuxperf.html Linux performance material by Brendan Gregg
https://www.dynacont.net/documentation/linux/network_monitoring/ List of tools for network bandwidth monitoring
https://www.deimeke.net/dirk/blog/index.php?/archives/3772-Neuen-GCC-auf-CentOS-installieren-....html
How to install and use a new gcc version (and other tools in newer versions) in RHEL 6.9
this page is in German language



https://blog.packagecloud.io/eng/2016/06/22/monitoring-tuning-linux-networking-stack-receiving-data/ Monitoring and Tuning the Linux Networking Stack: Receiving Data
https://blog.packagecloud.io/eng/2017/02/06/monitoring-tuning-linux-networking-stack-sending-data/
Monitoring and Tuning the Linux Networking Stack: Sending Data



https://okay.com.mx/blog-news/rpm-repositories-for-centos-6-and-7.html
Additional repository for CentOS and RHEL
This respository contains some libraries neccessary for compiling the tools that are (currently) not part of the CentOS /RHEL or epel repositories for version 8.

Note: 

The URL used is misleading -- there are also repositories for CentOS 8.


 


Links to libraries neccessary for JWM


Not all required libs for the tools in JWM / Linux are available in all Linux distributions . This section contains a list of them (well, some of them..) and the URLs to download the source for these libraries:

Library
URL
Comment
libnl3 https://www.infradead.org/~tgr/libnl/



libconfuse https://github.com/martinh/libconfuse/releases
boost http://www.boost.org/
binutils ftp://ftp-stud.fht-esslingen.de/pub/Mirrors/ftp.gnu.org/binutils/; the list of mirrors for the GNU software is here : https://www.gnu.org/prep/ftp Note:
use the option  --enable-host-shared  for the configure script to create the new binutils
libuv
https://libuv.org/
the package libuv-devel is (currently) not available in the repositories for RHEL 8 / CentOS 8 (neither in the OS nor in the epel repositories)



Other tools not included


URL
Description Comment
http://humdi.net/vnstat/ "nStat is a console-based network traffic monitor for Linux and BSD that keeps a log of network traffic for the selected interface(s). It uses the network interface statistics provided by the kernel as information source. This means that vnStat won't actually be sniffing any traffic and also ensures light use of system resources. "
http://bandwidthd.sourceforge.net/ "BandwidthD tracks usage of TCP/IP network subnets and builds html files with graphs to display utilization. Charts are built by individual IPs, and by default display utilization over 2 day, 8 day, 40 day, and 400 day periods. Furthermore, each ip address's utilization can be logged out at intervals of 3.3 minutes, 10 minutes, 1 hour or 12 hours in cdf format, or to a backend database server. HTTP, TCP, UDP, ICMP, VPN, and P2P traffic are color coded. "
http://nicolargo.github.io/glances/ Glances is a cross-platform system monitoring tool written in Python.
https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W51a7ffcf4dfd_4b40_9d82_446ebc23c550/page/Linux%20Performance%20Customer%20Profiler%20Utility%20%28lpcpu%29 "This script captures a lot of potentially interesting performance data (profile information, system information, and some system configuration information) on a single pass approach. Gathering all of this information at once allows the context to be understood for the performance profiling data to be analyzed"
https://sourceforge.net/projects/nnmon/ nnmon is a central database and a web interface for the nmon program's data. Store and view nmon data instantly. It's completely free software and released under GPLv3.
https://sourceforge.net/projects/nmon-webifier These tools are for newly released NMON performance analyzer to help gather, collect, store and present via web graphs the data collected. Graphs can be utilized 'on the fly' as data is updated every 10 minutes for support purposes.
http://people.redhat.com/srostedt/kernelshark/HTML/ "KernelShark is a front end reader of trace-cmd(1) output. "trace-cmd record" and "trace-cmd extract" create a trace.dat (trace-cmd.dat(5)) file. kernelshark can read this file and produce a graph and list view of its data."
https://projects.eclipse.org/projects/tools.tracecompass "Trace Compass is a Java tool for viewing and analyzing any type of logs or traces. Its goal is to provide views, graphs, metrics, etc. to help extract useful information from traces, in a way that is more user-friendly and informative than huge text dumps."
http://www.sysdig.org Sysdig is open source, system-lebel exploration: capture system state and activity from a running Linux instance, then save, filter and analyze
https://github.com/iovisor/bcc
BCC - Tools for BPF-based Linux IO analysis, networking, monitoring, and more

BCC is a toolkit for creating efficient kernel tracing and manipulation programs, and includes several useful tools and examples. It makes use of extended BPF (Berkeley Packet Filters), formally known as eBPF, a new feature that was first added to Linux 3.15. Much of what BCC uses requires Linux 4.1 and above.


https://zmap.io/ The ZMap Project is a collection of open source tools that enable researchers to perform large-scale studies of the hosts and services that compose the public Internet.




Tools not included anymore


This table lists all tools that were part of one of the previous versions of JWM for Linux.

URL
Description
Comment
http://mmonit.com/monit/ monit is a monitoring tool with web interface and more was part of JWM / Linux until v2.2.7
http://www.i-scream.org/libstatgrab/ saidar - rather old top like monitoring tool was part of JWM / Linux until v2.2.10
https://sourceforge.net/projects/iperf/ iperf is a tool for active measurements of the maximum achievable bandwidth on IP networks. It supports tuning of various parameters related to timing, protocols, and buffers. For each test it reports the bandwidth, loss, and other parameters.

iperf does not compile out of the box on most Linux distributions anymore. So there is now only a precompiiled iperf binary in the directory ${JWM_DIR}/bin1 that should work in most Linux distributions.

Note that iperf is deprecated -- you should use iperf3.
was part of JWM / Linux
http://unfs3.sourceforge.net/ unfs3 daemon
was part of JWM / Linux until v2.3.0

https://www.tecmint.com/linux-server-health-monitoring-script/
tecmint_monitor.sh
was part of JWM / Linux until v2.4.0
https://www.percona.com/doc/percona-toolkit/2.1/pt-diskstats.html pt-diskstats
was part of JWM / Linux until v2.4.0
http://www.tracebox.org/ tracebox
was part of JWM / Linux until v2.5.0



back to top