red and black books on brown wooden table

Comandos para tareas comunes y no tanto para Linux (Parte I)

Lista de comandos para tareas comunes y no tanto para Linux, esta la primera parte de una colección de comandos útiles para día a día.

Listar solo los discos físicos

 df -h --output=source,fstype,size,used,avail,pcent,target -x tmpfs -x devtmpfs
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/vda1      ext4   25G   14G   11G  57% /

Escanear para actualizar espacio del disco luego de expandir el LUN

/sys/block/sda/device/rescan

Vaciar contenido de archivos

cat /dev/null > archivo.txt

Listar tamaño de los directorios y mostrar los primero 10 del mayor al menos

du -sh *| sort -nr|head -10

Mostrar las líneas no comentadas de un archivo y eliminar los espacios en blanco

cat /etc/postfix/main.cf |grep -v "#"| sed '/^ *$/d'

Comprobar TZdata

zdump -v America/Santiago | grep "Sat Sep  7"|grep "2019"

Guardar mail a un archivo

echo 'c 1-10 first_ten_messages.txt' | mailx

Conectar por SSH enviando el password

sshpass -p your_password ssh [email protected]

Ejecutar un comando conectando por SSH

sshpass -p password ssh [email protected] 'command'

Retornar el código de salida del ultimo comando ejecutado

echo $?

Comprobar que el uso horario esté actualizado en una lista de servidores, esta lista debe tener el formato host usuario contraseña

cat servers.list| awk '{ print $1; system("sshpass -p " $3 " ssh " $2"@"$1".domain.com x27zdump -v America/Santiago | grep "Sat Sep  7"|grep "2019" x27" ) }'

Limpiar archivo de texto

cat /dev/null> servers.list.new

Para eliminar las líneas y mostrar el resultado por la salida estándar:

sed '/cadena de texto/d' ./archivo.txt

Para modificar directamente el archivo sin mostrar el resultado:

sed -i '/cadena de texto/d' ./archivo.txt

Reemplazar texto de un archivo

sed 's/texto a buscar/texto para reemplazar/g' ./archivo.txt

Para modificar directamente el archivo sin mostrar el resultado siendo el texto para reemplazar una variable:

sed 's/HOSTNAME/'"$HOSTNAME"'/g' -i ./archivo.txt

Convertir todo el texto de un archivo de mayúsculas a minúsculas

Para traducir o borrar caracteres use el comando tr-. La sintaxis básica es:

tr 'set1' 'set2' input

O

tr 'set1' 'set2' input > output

Ejemplo:

tr '[:upper:]' '[:lower:]' < input.txt > output.txt$ cat output.txt

Eliminar diferentes cadena de un archivo

cat errores.txt |awk '{system("sed -i " "/"$1"/d" " servers.list.tmp")}'

copiar archivos a múltiples servidores usando awk

cat servers.list| awk '{ print $1; system("sshpass -p " $3 " scp " "./Santiago " $2"@"$1".domain.cl:/root/" ) }'

Extrayendo lineas de un archivo y copiar el resultado en otro

cat nosync.txt| awk '{ print $1; system("cat servers.list| grep -i " $1 ">>tmp.list" ) }'

Sincronizar hora manualmente con ntp

ntpdate ntp.shoa.cl

Ver el nombre de la distribución con la que se está trabajando

cat /etc/os-release

Forzar cambio de password

chage -d usuario

Verificar si el password esta expirado

chage -l usuario

Crear contraseña aleatoria

pwgen -cnys 10 1

Mostrar archivo sin los comentarios

grep -v "#" /etc/squid/squid.conf | sed -e '/^$/d'

Añadir fecha y hora al nombre de un archivo

mv file file_$(date +%H%M%d%m%Y)
# %H = hora
# %M = minutos
# %d = día
# %m = mes
# %Y = año

Cambiar nombre del host

hostnamectl set-hostname name

Buscar una expresión dentro de varios archivos recursivamente

grep "expre" -R *

Ver cuales archivos son diferentes recursivamente

diff -qr foo1 foo2

Mostrar solo el lado derecho de las diferencia entre dos archivos (para el lado izquierdo cambiar «<» por «>»)

diff --changed-group-format='%<' --unchanged-group-format='' file1 file2

Imprimir una fila específica de una salida

awk '{if(NR==2) print $2}'

Ver la dirección MAC

ip link show ens192 

renombrar archivos agregándoles la fecha

mv file file_$(date +%H%M%d%m%Y)

Agregar a una grupo el usuario que ejecuta el comando

$ sudo usermod -aG group $USER

Actualizar los grupos del usuario sin cerrar la sesión

$ newgrp group

Comprobar versión de TLS

openssl ciphers -v | awk '{print $2}' | sort | uniq

Aceptar siempre certificado SSL conexión SSH.

# agregar la opción StrictHostKeyChecking en ~/.ssh/config ejemplo
StrictHostKeyChecking no
# usarla directamente como parametro
ssh -oStrictHostKeyChecking=no

Agregar o Cambiar password de un usuario local en un servidor con LDAP

luseradd usuario
passwd  usuario

Ejecutar comandos con sudo usando sshpass y awk

cat lista| awk '{ print $1; system("sshpass -p " $3 " ssh " $2"@"$1" x27echo "$3" | sudo -S -s /bin/bash -c "whoami"x27" ) }'

Comandos para RHEL

Instalar paquetes en RHEL8

dnf

Instalar el comando mail

dnf install mailx

Activar o desactivar un servicio

systemctl enable postfix ; systemctl start postfix

Listar repositorios

yum repolist

Desactivar el repositorio de medios extraíbles colocar Enable = 0, activar repositorios Red-Hat Enable = 1

vi /etc/yum.repos.d/media.repo
vi /etc/yum.repos.d/redhat.repo

Listar todos los repositorios disponibles de Yum

yum repolist all

Limpiar el cache de Yum

yum clean all

Reconstruir el cache de Yum

yum check-update

Actualizar todos los paquetes de Yum

 yum update

Desactivar repositorios de suscripción manager

nano /etc/yum/pluginconf.d/subscription-manager.conf
#cambiar a 0 el valor enable

comprobar si ntpd está instalado

rpm -qa | grep ntp
ntp-4.2.2p1-9.el5.centos.2.1

Activar el ntpd al iniciar y comprar su estado

chkconfig ntpd on
chkconfig --list ntpd
ntpd            0:off   1:off   2:on    3:on    4:on    5:on    6:off

Ver estado de un servicio

service ntpd status

Suscribir servidor

subscription-manager remove --all; subscription-manager unregister; subscription-manager clean; subscription-manager register --username=user --password=password --auto-attach --force

Comprobar estado de la suscripción

subscription-manager status  
+-------------------------------------------+  
   System Status Details  
+-------------------------------------------+  
Overall Status: Current  

Ver detalle de la suscripción

subscription-manager list --consumed
+-------------------------------------------+
   Consumed Subscriptions
+-------------------------------------------+
Subscription Name:   Red Hat Enterprise Linux for Virtual Datacenters with Smart Management, Premium
Provides:            Red Hat CodeReady Linux Builder for x86_64
                     Red Hat Enterprise Linux Atomic Host
                     Red Hat Enterprise Linux Atomic Host Beta
                     Red Hat Developer Tools (for RHEL Server)
                     Red Hat Developer Tools Beta (for RHEL Server)
                     Red Hat Developer Toolset (for RHEL Server)
                     Red Hat Enterprise Linux High Performance Networking (for RHEL Server) - 

Actualizar RHEL a un lanzamiento determinado.

subscription-manager release --set 7.4

Instalar entorno gráfico RHLE8

dnf groupinstall workstation
systemctl set-default graphical.target
systemctl isolate graphical

Permitir NRPE en el Firewall

Si el firewall esta corriendo, se puede permitir NRPE usando

firewall-cmd --add-service=nrpe --permanent
firewall-cmd --reload

Listar todas la reglas de Iptables activas

iptables -L -n -v