Dejo unos pocos comandos y oneliners en sistemas GNU+Linux que posiblemente usarás si andas administrando sistemas GNU+Linux.
Si no los usas no pasa nada ya que siempre puedes irte a tomar una limonada fresquita al kiosko de un parque por la noche y disfrutar de la vida en vez de administrar sistemas GNU+Linux
# LIBERAR SWAP Y MEMORIA CACHE
free -h ; sync; echo 1 > /proc/sys/vm/drop_caches ; sysctl -w vm.overcommit_memory=1 ; swapoff -av && swapon -av ; free -h
# EXTENDER 1G SOBRE UN LV EN LVM CUANDO TIENES ESPACIO LIBRE PARA DARLE EN EL VG
FS="/dev/mapper/rootvg-opt" && lvextend -L+1G $FS -r
# TOP 10 PROCESOS CONSUMO RAM Y CPU
#!/bin/bash
export LC_ALL=C bash
tHost="$(hostname)"
tTime="$(date +"%d/%m/%Y a las %H:%M:%S")"
tMemTotal="$(free -m | grep "Mem:" | awk '{print $2}')"
tMemUsed="$(free -m | grep "Mem:" | awk '{print $3}')"
tMemFree="$(free -m | grep "Mem:" | awk '{print $4}')"
tLoadAverage="$(uptime | rev | cut -d ":" -f 1 | rev | cut -d " " -f 2-10)"
echo -e "\n$tHost - $tTime"
echo -e "RAM: $tMemUsed M usados de $tMemTotal M totales ($tMemFree M libres)\nCPU Load Average: $tLoadAverage\n\n[+] Listado de Procesos top10 consumo de RAM:\n"
ps -A --sort=-rss --format pid,user,pmem,rss,comm | head -11
echo -e "\nPor tanto el proceso en el top1 consumo RAM es:\n"
ps -A --sort=-rss --format pid,user,pmem,rss,command | head -2
echo -e "\n[+] Listado de Procesos top10 consumo CPU:\n"
ps -A --sort=-pcpu --format pid,user,pcpu,rss,comm | head -11
echo -e "\nPor tanto el proceso en el top1 consumo CPU es:\n"
ps -A --sort=-pcpu --format pid,user,pcpu,rss,command | head -2
echo -e "\n"
# EXTENDER UN VG CON UN NUEVO PV EN LVM
pvcreate /dev/sdf
pvs
vgextend datosvg /dev/sdf
pvs
vgs
# RETENER SOLAMENTE 2 DÍAS EN JOURNALCTL O SOLAMENTE 250MB
journalctl --vacuum-time=2d journalctl --vacuum-size=500M
# VER EL TIEMPO QUE LLEVA EJECUTÁNDOSE UN PROCESO INDICANDO EL PID
ps -p 4125 -o etime
# CAMBIAR EL PORCENTAJE RESERVADO DE DISCO A EL 1%
tune2fs -l /dev/sdX | grep "Reserved block count" | awk '{print $4}'
tune2fs -m 1 /dev/sdX
# IOPS – Disco Reads/segundo y writes/segundo
iostat -dx sda | grep sda | awk '{ print $4"/"$5; }'
# Comprobar el rendimiento de un File System en un server – Server Throughput ( /tmp en este caso, cambiar por otro )
for i in {1..10}; do s=$(dd if=/dev/zero of=/tmp/test1.img bs=1G count=1 oflag=dsync 2>&1 | grep -i "s,"); echo -en "$i\tServer Throughput (write speed)\t$s\n"; done
# Comprobar la latencia de un File System en un server – Server Latency ( /tmp en este caso, cambiar por otro )
for i in {1..10}; do s=$(dd if=/dev/zero of=/tmp/test2.img bs=512 count=1000 oflag=dsync 2>&1 | grep -i "s," | awk {'print$8'}); echo -en "$i\tServer Latency\t\t\t$s\n"; done
# Medir el tiempo que tarda un comando en ejecutarse – time
time ls -la
# Habilitar un servicio y arrancarlo del tirón con systemctl – con –now
systemctl --now enable nombreservicio
# Comprobar si un servicio está habilitado y activo con systemctl
systemctl is-enabled
systemctl is-active
# Comprobar si un servicio existe grepeando el listado de todos con systemctl
systemctl list-units | grep -i nginx
# Reiniciar el demonio systemctl cuando se ha tocado algo y se requiere recargar
systemctl daemon-reload
# Ver la descripción de un servicio
systemctl cat nginx
# Un top más bonito y colorido: htop
htop
# Comprobar rápidamente el tamaño de os directorios y subdirectorios con ncdu
ncdu
# Truncar archivos vivos (por ejemplo logs) a un tamaño especifico (ejemplo a 1024b) o a 0 bytes
truncate -s 0 nombrearchivo.log truncate -s 1024 nombrearchivo.log > nombrearchivo.log # este lo trunca a 0 pero mejor usar el comando truncate -s 0
# Comprobar si existe archivos vivos en el directorio actual con lsof
lsof +D .
# Descargar usando wget recursivamente
wget -r http://fanta.56k.es
# Mostrar la salida por pantalla con wget de una web
wget -q "https://56k.es" -O -
# SSHPASS ya sabemos que tú no lo usas pero … Acceso ssh con la passwd indicada como parámetro en el oneliner
sshpass -p "lapassword" ssh -o StrictHostKeyChecking=no eluser@192.168.1.111 -p 22 sshpass -p "lapassword" ssh -o StrictHostKeyChecking=no eluser@192.168.1.112 -p 3105
# Comprobar configuración y offset de timedatectl
timedatectl show-timesync --all timedatectl timesync-status
# Comprobar si un puerto anda abierto con nmap (tcp y udp)
nmap 192.168.90.62 -p 8680 | grep -i 8680 nmap -sU 192.168.90.62 -p 8680 | grep -i 8680
# Comprobar si un puerto anda abierto con openssl
openssl s_client -tls1_2 -connect 192.168.90.62:8680 2>&1 | grep -i connected
# Comprobar si un puerto anda abierto con curl
curl -v --silent 192.168.90.62:8680 2>&1 | grep -i connected curl -v telnet://8.8.8.8:53
# Comprobar si un puerto anda abierto con telnet
telnet 8.8.8.8 442
# Comprobar si un puerto anda abierto con bash
: </dev/tcp/8.8.8.8/443
# Comprobar si un puerto anda abierto con netcat (nc)
netcat -zv 8.8.8.8 443