I use a system I call homegit to manage config files and scripts in my home directory on all my machines. The idea is simple: a Git repository rooted at ~ that I push to GitHub. I’ve used this system for 6 years and like it a lot. See below to set it up for yourself!
Be more efficient with this Linux directory navigation trick.
whowatch is a simple, easy-to-use interactive who-like command line program for monitoring processes and users on a Linux system in real time.
In my previous seven articles in this series about systemd, and especially in the most recent article, time and date have come up in multiple contexts. systemd uses calendar time, specifying one or more moments in time to trigger events (such as a backup program), as well as timestamped entries in the journal. It can also use timespans, which define the amount of time between two events but are not directly tied to specific calendar times.
With zero trust, you assume everything on the network is unsafe. You have to check trust explicitly. This stance improves security throughout the SDLC.
About 15 years ago, I mused about the idea of having a "desert island machine". This is where I'd put someone in a room with a box that has a couple of hard drives and a working network connection. HD #1 is blank. HD #2 has a few scraps of a (Linux) OS on it: bootloader, kernel, C library and compiler, that sort of thing. There's a network connection of some sort, and that's about it.
Now you see things like people managing to do the original Super Mario Bros game from the 80s in under five minutes, and I do mean people. There are actual humans frobbing plastic controllers doing this! Just dig around on your favorite giant video-streaming site if you need evidence of this happening.
So here's the pitch: Linux speedruns. By that, I don't mean "speedrunning a game on a Linux box" (like emulation, or something). Nope.
Dmidecode reports information about your system's hardware as described in your system BIOS according to the SMBIOS/DMI standard. 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).
I’ve been using tmux for about six months now and it has become just as essential to my workflow as vim. Pane and window management, copy-mode for navigating output, and session management make it a no-brainer for those who live in the terminal (and especially vim). I’ve compiled a list of tmux commands I use daily to help me work more efficiently.
In this tutorial, we are going to discuss about some good alternatives to Top command line task manager program.
Features
Typically, you would connect to your server with an SSH client like PuTTY and after logging in you are dropped into a shell like Bash where you can enter commands and interact with the operating system. For most purposes, this simple setup suffices. However, in certain scenarios, you may need, or at least benefit, from expanding the capabilities of such a session with a terminal multiplexer like tmux. Just like the operating system running on your phone or computer can execute and display, side by side, multiple applications on its graphical user interface, so can tmux do with text-based programs and shell sessions.
Webmin is a web-based interface for system administration for Unix. Using any modern web browser, you can setup user accounts, Apache, DNS, file sharing and much more. Webmin removes the need to manually edit Unix configuration files like /etc/passwd, and lets you manage a system from the console or remotely. See the standard modules page for a list of all the functions built into Webmin.
Periodically runs a command in the console while temporarily clearing the screen content; it makes it easy to check differences between the output of two subsequent commands; it provides "diff" functionality to highlight the changing characters between outputs.
The classical Unix utility that provides a rolling display of top cpu using processes.
Python program that reports memory usage; it can report the "proportional set size" (PSS), a meaningful representation of the amount of memory used by libraries and applications in a virtual memory system; it has built-in chart generation.
Sysdig captures system calls and events from the Linux kernel. You can save, filter, and analyze the data with our CLI or our desktop app. Think of sysdig as strace + tcpdump + htop + iftop + lsof + wireshark for your entire system.
A top
-like utility to monitor the sources of power consumption; allows to turn on/off many components; quite useful to track possible power-related issues.
ngrep
applies the grep
logic to the network layer, allowing to match regular expressions against data payloads of packets; it recognizes IPv4/6, TCP, UDP, ICMPv4/6, IGMP and Raw across Ethernet, PPP, SLIP, FDDI, Token Ring and null interfaces.
A command to open multiple log files in a single terminal window and monitor them in real-time.
An interactive process viewer for Unix; improves the UI of top
, by adding real-time meters and colors.
"A Python program with a top like UI used to show of behalf of which process is the I/O going on".
A comprehensive system information script; provides information about CPU, graphics, audio and network devices, drives and partitions, sensors; implemented as a Bash script.
A program to turn CLI tools into web applications; basically, it runs a command and starts a server so that the output can be displayed in a web page.
A comprehensive and detailed system monitoring tool; monitored parameters include: CPU, memory, load, process list, network interfaces, disk I/O, sensors, filesystems, docker, system info, uptime.
"looks for coreutils basic commands (cp
, mv
, dd
, tar
, gzip/gunzip
, cat
, etc.) currently running on your system and displays the percentage of copied data. It can also show estimated time and throughput".
ttyload is a lightweight utility which is intended to offer a color-coded graph of load averages over time on Linux and other Unix-like systems. It enables a graphical tracking of system load average in a terminal (“tty“).
A small tool to provide detailed information on the hardware configuration of the machine. It can report exact memory configuration, firmware version, mainboard configuration, CPU version and speed, cache configuration, bus speed, etc.
Neofetch is a CLI system information tool written in BASH. Neofetch displays information about your system next to an image, your OS logo, or any ASCII file of your choice.
rtop is a simple, agent-less, remote server monitoring tool that works over plain SSH. Written in golang, it does not need any software to be installed on the server that you want to monitor. It works by establishing an SSH session, and running commands on the remote server to collect system metrics
High-performance Linux log viewer and analyzer.
SolarWinds® Loggly® makes Linux log monitoring and analysis simple with a powerful platform that can correlate all your logs for a unified view of your environment. It offers cloud-based log aggregation with an agentless approach for collecting logs.
You can use simple scripts to configure your Linux files and directories to send logs to Loggly. Alternatively, you can also use the syslog daemon to send Linux system logs to Loggly for file and application log monitoring. A major advantage of Loggly is that it has a highly intuitive interface with simpler workflows. Unlike other tools, you don’t have to spend countless hours in the initial setup. Loggly automatically archives your older logs on AWS S3 buckets for compliance.
usbrip
(inherited from "USB Ripper", not "USB R.I.P.") is an open source forensics tool with CLI interface that lets you keep track of USB device artifacts (i.e., USB event history) on Linux machines.
usbrip
is a small piece of software written in pure Python 3 (using some external modules, see Dependencies/pip) which analyzes Linux log data (journalctl output or /var/log/syslog*
and /var/log/messages*
files, depending on the distro) for constructing USB event history tables. Such tables may contain the following columns: "Connected" (date & time), "Host", "VID" (vendor ID), "PID" (product ID), "Product", "Manufacturer", "Serial Number", "Port" and "Disconnected" (date & time).
For the past few years, I've been building and operating a large distributed system: the payments system at Uber. I've learned a lot about distributed architecture concepts during this time and seen first-hand how high-load and high-availability systems are challenging not just to build, but to operate as well.
Working on the command line is a quick alternative to clicking through filesystem management tasks. Here are some basics to get you started.
The timeout script is a useful resource monitoring program for limiting time and memory consumption of processes in Linux. It allows you to run programs under control, and enforce time and memory limits, terminating the program upon violation of these parameters.
The Topgrade utility will upgrade everything in Linux and Unix operating systems. It is free, open source and written using Rust.
For the longest time I did not know what everything meant in htop.
I thought that load average 1.0 on my two core machine means that the CPU usage is at 50%. That's not quite right. And also, why does it say 1.0?
I decided to look everything up and document it here.
They also say that the best way to learn something is to try to teach it.
Linux offers a number of tools for examining your running processes. With the applications shown below, you can find out which applications are eating all your memory and which files are attached to those rogue programs. Or you can just get a global view of how your system is performing.
Regardless of your specific level of interest, this tutorial will offer you a starting point on that journey.
Features:
This guide explains how to move a running process from one terminal to another without closing it using Reptyr in Unix-like operating systems.
etckeeper is a collection of tools to let/etc be stored in a git, mercurial, bazaar or darcs repository. This lets you use git to review or revert changes that were made to /etc. Or even push the repository elsewhere for backups or cherry-picking configuration changes.
Well organized information about volumes in Docker.