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.
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
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
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
También puede combinarlo con comandos pipe y grep
[tuts@fosslinux log]$ ps -ef | grep httpd
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.
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
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
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
[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>
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
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
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