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