bashoneliners.com

Welcome to bashoneliners.com, a curated collection of practical and well-explained Bash one-liners, snippets, tips and tricks. We aim to make each published one-liner to be of high quality: useful, easy to read, follows best practices, with clear, detailed, accurate explanation. These one-liners should help you automate tasks, troubleshoot problems, whether it be in system administration, file management, networking or programming.

While loop to pretty print system load (1, 5 & 15 minutes)

while :; do date; awk '{printf "1 minute load: %.2f\n", $1; printf "5 minute load: %.2f\n", $2; printf "15 minute load: %.2f\n", $3}' /proc/loadavg; sleep 3; done

September 5, 2018bashoneliners

While loop to pretty print system load (1, 5 & 15 minutes)

while [ 1 == 1 ]; do  cat /proc/loadavg | awk '{printf "1 minute load: %.2f\n", $(NF-5)}' && cat /proc/loadavg |awk '{printf "5 minute load: %.2f\n", $(NF-3)}' && cat /proc/loadavg |awk '{printf "15 minute load: %.2f\n", $(NF-2)}'; sleep 3; date; done

August 30, 2018peek2much3

Display the number of connections per IP to port 80

while true; do clear; date; echo; echo "[Count] | [IP ADDR]"; echo "-------------------"; netstat -n | grep ':80\>' | awk '! /LISTEN/ {print $5}' | cut -d: -f1 | uniq -c; sleep 5; done

April 9, 2014cesp

List all non Git comited files and make a gzip archive with them

GITFOLDER="/srv/some/folder"   ls-files --others --exclude-standard | tar czf ${GITFOLDER}-archives/uploads-$(date '+%Y%m%d%H%M').tar.gz -T -

April 2, 2014renoirb

Dump network traffic with tcpdump to file with time-stamp in its filename

date +"%Y-%m-%d_%H-%M-%Z" | xargs -I {} bash -c "sudo tcpdump -nq -s 0 -i eth0 -w ./dump-{}.pcap"

May 17, 2013kowalcj0

Remove files and directories whose name is a timestamp older than a certain time

ls | grep '....-..-..-......' | xargs -I {} bash -c "[[ x{} < x$(date -d '3 days ago' +%Y-%m-%d-%H%M%S) ]] && rm -rfv {}"

May 7, 2013openiduser95

Get the last modification date of a file in any format you want

date -r /etc/motd +%Y%m%d_%H%M%S

October 17, 2012bashoneliners

Run command multiple times with a for loop and a sequence expression

for i in {1..10}; do date; sleep 1; done

August 19, 2012bashoneliners

Alert me by email when a disconnected or unreachable server comes back online

while ! ping -c1 the_host_down; do sleep 1; done && date | mail -s 'the host is back!' me@example.com

October 10, 2011janos

Add timestamp to the output of ping

ping some_host | while read LINE; do echo $(date): $LINE; done

October 10, 2011janos