Principales comandos de Linux para administradores de sistemas

LLos sistemas operativos inux ofrecen innumerables comandos y utilidades de sysadmin, que ayudan a los usuarios, desarrolladores e ingenieros con las tareas de administración del sistema. Por ejemplo, los paquetes y comandos de sysadmin pueden ayudar a los usuarios a optimizar o administrar aplicaciones y proporcionar información valiosa para la resolución de problemas a los administradores de red o administradores de sistemas.

Estos comandos se aplican a entornos de desarrollo de Linux, máquinas virtuales, contenedores y bare metal.

Índice

Principales comandos de Linux para sysadmin

Este artículo revisa algunos comandos sysadmin básicos que se utilizan con frecuencia para la administración de sistemas Linux con algunos ejemplos prácticos.

1. Rizo

Curl es una herramienta de línea de comandos para transferir datos desde o hacia un servidor. Admite protocolos como FTP, FTPS, HTTP, HTTPS, IMAP, POP3, POP3S, RTMP, SMBS, SMTP, SMTPS, TELNET, etc. Puede usarlo para probar la conectividad o un punto final a otro servicio como una base de datos.

Solucionar un error HTTP 500:

$ curl -I -s my_app:5000

Incluya la opción -I para mostrar la información del encabezado y la opción -s para silenciar el cuerpo de la respuesta.

Verifique el punto final de la base de datos desde su localhost:

$ curl -I -s my_database:27017
HTTP/1.0 200 OK

200 indican que su conexión parece estar bien.

$ curl my_database:27017
curl: (6) Couldn't resolve host 'database'

El error indica que su aplicación no puede resolver la base de datos porque la URL de la base de datos no está disponible o porque el sistema host, el contenedor o la VM no tienen un servidor de nombres para resolver el nombre de host.

2. ls

Ls enumera archivos en un directorio, o puede ayudarlo a examinar sus permisos. También puede usarlo en una infraestructura de contenedor para determinar el directorio y los archivos de su imagen de contenedor. Si no puede ejecutar su aplicación debido a un problema de permisos, verifique los permisos usando ls -l, luego emita los permisos de archivo apropiados usando chmod. También puede combinarlo con indicadores como ls -a para enumerar todos los archivos o ls -R para enumerar archivos y directorios de forma recursiva.

[tuts@fosslinux dist]$ ls -l
-rwxr-xr-x. 1 tuts tuts 7292656 Jun 17 12:54 hello
[tuts@fosslinux hello]$ ls -R

comando ls -R
comando ls -R

3. chmod

Utilice el comando chmod para establecer permisos para un archivo o binario de aplicación. Primero, use el comando ls para verificar sus permisos de archivo, luego emita los permisos apropiados.

Verifique los permisos de archivo con ls -l:

[tuts@fosslinux ~]$ ls -l
-rw-rw-r--. 1 tuts tuts 6 Jun 24 18:05 dingdong.py

Emita permisos de ejecución en el archivo dingdong.py para permitir que los usuarios ejecuten.

[tuts@fosslinux ~]$ chmod +x dingdong.py
[tuts@fosslinux ~] ls -l
-rwxrwxr-x. 1 tuts tuts 6 Jun 24 18:05 dingdong.py

4. cola

Tail muestra el último contenido de un archivo. Es útil si desea verificar los registros de solicitudes recientes. Por ejemplo, guarda los registros más recientes en su servidor.

$ sudo tail -f /var/log/httpd/error_log

La opción -f genera las líneas de registro a medida que se escriben en el archivo. Tiene una secuencia de comandos en segundo plano que accede al punto final cada pocos segundos y el registro registra la solicitud. También puede seguir un número específico de líneas del archivo con la opción -n.

$ sudo tail -n 3 /var/log/httpd/error_log

5. grep

Puede usar grep para buscar archivos para buscar patrones específicos y resaltar las líneas relevantes en la salida de otro comando de Linux. Por ejemplo, para buscar la línea "CRITICAL" en /var/log/dnf.log:

[tuts@fosslinux ~]$ grep CRITICAL Error /var/log/dnf.log

grep
registro de grep

Utilice * para buscar en todos los archivos de un directorio y el indicador -r (recursivo) para incluir la búsqueda en subdirectorios.

cd /var/log/
$ grep -r CRITICAL Error *

También puede aislar la salida al comando grep canalizando el resultado:

$ cat dnf.log | grep CRITICAL Error

6. ps

El comando ps se utiliza para investigar los ID de procesos y mostrar el estado de los procesos en ejecución. Puede utilizar este comando para determinar todas las aplicaciones en ejecución.

[tuts@fosslinux log]$ ps -ef

comando ps
comando ps sysadmin

También puede combinarlo con comandos pipe y grep

[tuts@fosslinux log]$ ps -ef | grep httpd

ps grep
ps | comando grep httpd sysadmin

Utilice el indicador -u para ver todos los procesos que pertenecen al nombre de usuario:

[tuts@fosslinux log]$ ps -u username

Use el indicador auxiliar para ver todos los procesos con información detallada como PID, porcentaje de tiempo de CPU que el proceso está usando (% CPU), porcentaje de RAM (% MEM), memoria virtual en uso (VSZ), memoria física (RSS), etcétera.

7. arriba

El comando superior muestra una lista continuamente actualizada de procesos del sistema en orden de actividad del proceso. Puede usarlo para determinar qué procesos se están ejecutando y cuánta memoria y CPU consumen.

comando top sysadmin
comando top sysadmin

La información de la pantalla consta de un resumen del sistema y la tabla de procesos ordenados por actividad de la CPU. Alguna información incluye el tiempo de actividad del sistema, el promedio de carga, el propietario del proceso (USUARIO), el porcentaje de tiempo de CPU que el proceso está usando (% de CPU), el porcentaje de RAM que el proceso está usando (% MEM), el tiempo total de CPU usado por el proceso (TIME[+]), etcétera.

También puede emitir varios comandos mientras se ejecuta el comando superior. Por ejemplo, presione ho? para ver qué comandos puede emitir, k para matar un proceso, z para colores globales oq para salir de la parte superior.

8. env

El comando env se usa para configurar o mostrar sus variables de entorno. Utilice env para comprobar si un entorno incorrecto impide que se ejecute su aplicación.

$ env
PYTHON_PIP_VERSION=20.2.2
HOME=/root
DB_NAME=my_database
PATH=/usr/local/bin:/usr/local/sbin
LANG=C.UTF-8
PYTHON_VERSION=3.9.5

9. netstat

netstat muestra el estado de la red de su sistema o infraestructura. Puede usarlo para mostrar puertos de red y conexiones entrantes. Puede combinarlo con otras opciones como protocolo, puerto o proceso para demostrar los puertos actuales que están usando las aplicaciones de su sistema.

# netstat -tulpn

10. ip / ifconfig

El comando ip reemplaza ifconfig en algunas distribuciones de Linux y puede configurar o mostrar interfaces de red y modificar direcciones IP, objetos vecinos y rutas. También puede usarlo para verificar la dirección IP de su host o contenedor.

Utilice 'ip a' (dirección) para mostrar información sobre todas las interfaces de red:

[tuts@fosslinux]$ ip a

Utilice el comando 'ip link set device_name' para activar o desactivar una interfaz:

[tuts@fosslinux]$ ip link set eth0 up #bring up
[tuts@fosslinux]$ ip link set eth0 down #bring down

11. df

Utilice el comando df (mostrar espacio libre en disco) para verificar el tamaño del sistema de archivos y solucionar problemas de espacio en disco. Es útil en situaciones en las que recibe un mensaje de error que indica una falta de espacio libre en su sistema en un host contenedor.

[tuts@fosslinux ~]$ df -h

comando df sysadmin
comando df sysadmin

La bandera -h muestra la información en un formato legible por humanos (es decir, MB y GB). De forma predeterminada, el comando df muestra los resultados de cada usuario en el directorio raíz. Sin embargo, puede limitar la visualización a un directorio específico (es decir, df -h / tmp)

Utilice la marca -x para ignorar cualquier sistema de archivos:

[tuts@fosslinux ]$ df -h -x tmpfs

Utilice la marca -t para enumerar solo el tipo de sistema de archivos específico. Por ejemplo, sistema de archivos btrfs de solo lectura:

[tuts@fosslinux ]$ df -h -t btrfs

Utilice la marca –total para mostrar los totales generales:

[tuts@fosslinux ]$ df -h -t btrfs --total

df sysadmin
comando df sysadmin

12. du

Utilice el comando du para mostrar información detallada sobre qué archivos utilizan el espacio en disco en un directorio. Lo encuentro útil para determinar qué registros ocupan más espacio. Por ejemplo, ejecute el comando du con la marca -h (legible por humanos) y -s (resumen):

[tuts@fosslinux ~]$ sudo du -h /var/log

comando du sysadmin
comando du sysadmin

[tuts@fosslinux ~]$ sudo du -hs /var/log
1.5G /var/log

13. dig / nslookup

dig es una gran herramienta de línea de comandos para realizar consultas de DNS. Se utiliza en el siguiente formato:

dig <DNS server> <domain> <query-type>

representa el nombre del servidor DNS, es el nombre de dominio y es el nombre de registro (A, MX, NS SOA) que desea conocer. También puede utilizar la marca + short para suprimir la salida detallada.
Para ver el registro A de bing.com:

[tuts@fosslinux ~]$ dig bing.com +short
13.107.21.200
204.79.197.200

Para ver el registro MX de bing.com:

[tuts@fosslinux ~]$ dig bing.com MX +short
10 bing-com.mail.protection.outlook.com.

14. firewall-cmd

Firewall-cmd es una interfaz fácil de usar para nftables y se envía con muchas distribuciones. Permite a los usuarios configurar reglas para gobernar el tráfico de red entrante y saliente a su computadora. Estas reglas se pueden agrupar en zonas que definen los niveles de confianza de seguridad de la red de las interfaces, los servicios o las conexiones de la red. Funciona con IPv4, IPv6, conjuntos de IP y puentes ethernet y presenta una sintaxis de comandos sencilla e intuitiva.

Para ver la zona de cortafuegos actual:

[tuts@fosslinux ~]$ sudo firewall-cmd --get-active-zones
libvirt
interfaces: virbr0

Agregue la marca –list-all para ver lo que permite cada zona:

[tuts@fosslinux ~]$ sudo firewall-cmd --zone libvirt --list-all

comando firewall-cmd sysadmin
comando firewall-cmd sysadmin

Para agregar un servicio:

$ sudo firewall-cmd --add-service http --permanent
$ sudo firewall-cmd –reload

Si está comenzando con la seguridad de la red, puede leer nuestra guía completa sobre cómo administrar la seguridad de la red con firewalld para obtener más ejemplos y trucos.

15. systemctl

systemd está disponible en la mayoría de las distribuciones de Linux, lo que hace que el comando systemctl esté disponible para administrar servicios y unidades de systemd.

Para iniciar un servicio:

[tuts@fosslinux ~]$ sudo systemctl start httpd

Para detener un servicio:

[tuts@fosslinux ~]$ sudo systemctl stop httpd

Para comprobar el estado del servicio.

16. matar y matar

Puede utilizar los comandos kill y killall para finalizar un proceso fuera de control o liberar algunos recursos del sistema. Puede enviar la señal SIGTERM (-15) o SIGKILL (-9) a un proceso para finalizar el proceso. SIGTERM (soft kill) permite que un proceso del sistema se complete antes de que termine. SIGKILL termina el proceso de inmediato.

Utilice kill con la bandera -l para mostrar todas las señales que puede enviar a un proceso.

[tuts@fosslinux ~]$ kill -l

Para matar un proceso, determine su ID de proceso y luego emita el comando kill.

[tuts@fosslinux ~]$ ps aux|grep httpd

ps aux |  comando grep
ps aux | comando grep

Para matar el proceso httpd con el ID de proceso 1525:

[tuts@fosslinux ~]$ sudo kill -9 1525

Utilice killall para matar un programa por su nombre. Mata el proceso principal y todos los procesos secundarios.

[tuts@fosslinux ~]$ sudo killall httpd

Nota: Utilice los comandos kill y killall con precaución, ya que podrían romperse o dejar su sistema en un estado inestable.

17. historia

El comando history muestra un historial de todos los comandos que ha utilizado en una sesión. Por ejemplo, puede utilizarlo para registrar los comandos que ha utilizado para solucionar problemas de una aplicación o de su sistema.

[tuts@fosslinux ~]$ history
790 sudo firewall-cmd --get-active-zones
791 sudo firewall-cmd --zone libvirt --list-all
792 history

Usar ! con un número de comando para volver a ejecutarlo sin tener que volver a escribirlo.

[tuts@fosslinux ~]$ !790
sudo firewall-cmd --get-active-zones
libvirt
interfaces: virbr0

Terminando

Comprender algunos comandos básicos de sysadmin puede ayudarlo a solucionar problemas de aplicaciones, resolver problemas, mantener los sistemas funcionando de manera óptima, garantizar la seguridad del sistema o incluso ayudarlo a comunicarse de manera efectiva con los administradores de sistemas para resolver problemas en su infraestructura.
¡Espero que estos comandos te sean útiles!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir