Tema 4 / 11
RHCSA Objetivo 4

Operar sistemas en funcionamiento

Gestión de arranque, procesos, servicios y diagnóstico del sistema

🎬
VER VIDEO YOUTUBE - CLASE 4 Administración de sistemas y resolución de problemas

1. Arrancar, reiniciar y apagar sistemas

El proceso inicial del sistema es PID 1, actualmente gestionado por systemd, sucesor del antiguo init, encargado de gestionar el arranque y los servicios. Los runlevels ( init 0-6) fueron sustituidos por targets que cumplen la misma función.

  • 0 → poweroff.target — Apagar el sistema
  • 1 → rescue.target — Modo rescate (usuario único)
  • 3 → multi-user.target — Multiusuario en modo texto
  • 5 → graphical.target — Entorno gráfico
  • 6 → reboot.target — Reiniciar el sistema
  • emergency.target — Modo emergencia mínimo

Podemos apagar o reiniciar el sistema usando :

  • systemctl poweroff → Apaga el sistema
  • systemctl reboot → Reinicia el sistema
  • shutdown -h now → Apaga el sistema inmediatamente
  • shutdown -r +5 → Reinicia el sistema en 5 minutos

2. Arrancar sistemas en diferentes objetivos manualmente

En systemd, los targets definen el estado operativo del sistema. Podemos cambiar el target de forma temporal o permanente.

Cambio temporal:

  • systemctl isolate TARGET → Cambia el target en la sesión actual
  • Desde GRUB, editando la línea de arranque y añadiendo: systemd.unit=TARGET

Cambio permanente:

  • systemctl set-default TARGET → Define el target por defecto
  • systemctl get-default → Muestra el target actual
Ejemplo cambio de target permanente

3. Interrumpir el arranque para obtener acceso

Durante el arranque, es posible interrumpir GRUB para acceder y modificar parametros Esto lo podemos hacer ya sea para encender el sistema con un target especifico, recuperar la contraseña o entrar como modo emergencia para revisar posibles errores

Uno de los puntos mas importantes del examen es resetear la contraseña de root para poder realizar el examen. Para ello lo primero que haremos será entrar en GRUB y editar la entrada presionando e.

Una vez dentro, modificamos la linea de linux, añadiendo al final rd.break (si no funciona podriamos poner como alternativa init=/bin/bash) y arrancaremos con Ctrl + X.

Edición de la entrada de GRUB para recuperar la contraseña de root

Una vez arrancado, tendremos que seguir los siguientes pasos :

grub line

4. Identificar y eliminar procesos

Linux ofrece varias herramientas para ver qué procesos están usando más recursos. Podemos hacerlo de forma estática con ps o de forma interactiva con top.

El comando top muestra los procesos en tiempo real y permite ver el consumo de CPU y memoria. Desde top también podemos matar procesos pulsando k

top line

Los flags más importantes de ps serían :

  • ps aux → Muestra todos los procesos del sistema
  • ps -ef → Vista completa de los procesos en formato extendido
ps

Para comprobar el uso de memoria del sistema utilizamos el comando free -h, que muestra la memoria total, usada y libre de forma legible.

free pic

Para finalizar procesos utilizamos el comando kill que tiene diferentes flags :

  • kill -15 PID : Es la que se usa por defecto, para el proceso
  • kill -9 PID : La más agrevisa, fuerza la finalización del proceso
  • pkill nombre : para todos los procesos relacionados con ese nombre

5. Ajustar la programación de procesos (Nice/RT)

La prioridad de ejecución se controla con nice y renice. Los valores van de -20 (más prioridad) a 19 (menos prioridad). La podemos comprobar con top.

  • nice -n 10 comando → Ejecuta un comando con menor prioridad
  • renice -5 PID → Cambia la prioridad de un proceso en ejecución
nice example

Por otro lado tenemos los procesos real time, que son procesos que tienen prioridad ante todos y va con valores de 0 a 99, siendo 99 el mas alto. Podemos ver su información, cambiar su prioridad o lanzar un proceso con un rt especifico :

  • chrt -p PID → Muestra la política y prioridad real time de un proceso
  • chrt -r -p PRIORIDAD PID → Cambia la prioridad real time de un proceso existente
  • chrt -r PRIORIDAD comando → Ejecuta un comando con prioridad real time
grub line

6. Administrar perfiles de sintonización (Tuned)

El servicio tuned optimiza el rendimiento según el rol del servidor.

Los perfiles más interesantes podrían ser : balanced, virtual-guest, throughput-performance, network-latency...

Podemos listar los perfiles con tuned-adm list, ver el perfil actual con el comando tuned-adm active, cambiarlo con tuned-adm profile nombre-perfil o apagar este servicio con tuned-adm off.

tuned-adm ejemplo

7. Localizar e interpretar logs y journals

Los logs tradicionales se encuentran en /var/log. Systemd utiliza journalctl para gestionar los logs y no se pueden leer en texto plano ya que son binarios. Algunos filtros que podemos hacer son :

  • journalctl -p err : Solo errores.
  • journalctl -u sshd : Logs de un servicio específico.
  • journalctl -xe : Ayuda extendida sobre fallos recientes.
  • journalctl -f : Muestra los mensajes en tiempo real
  • journalctl -b : Logs del arranque del sistema
logs ejemplo

8. Preservar journals del sistema

Por defecto, los journals pueden ser volátiles. Para que el journal no se borre al reiniciar, debemos crear la estructura manualmente

mkdir /var/log/journal
chown root:systemd-journal /var/log/journal
chmod 2755 /var/log/journal

Configurar Storage=persistent en /etc/systemd/journald.conf y reiniciar el servicio.

logs persistent logs persistent

Preferiblemente, siempre que hagamos un cambio a un archivo de configuración de un servicio, reiniciaremos este servicio systemctl restart systemd-journald.

No hemos mencionado la rotación de logs, para ello podemos usar

  • --vacuum-time → Borra logs antiguos según el tiempo indicado.
  • --vacuum-size → Borra logs hasta ocupar el tamaño indicado
  • --rotate → Fuerza la rotación del journal actual
  • --disk-usage → Muestra cuánto espacio ocupan los logs
  • --list-boots → Muestra los arranques registrados en el sistema
logs persistent conf

9. Iniciar, detener y comprobar servicios de red

Los servicios se pueden gestionar a traves de varios comandos : systemctl, ip o nmcli.

Cuando usemos systemctl, el servicio se llama NetworkManager. Usaremos los comandos :

  • systemctl start NetworkManager → Levantar
  • systemctl stop NetworkManager → Parar
  • systemctl restart NetworkManager → Reiniciar
  • systemctl status NetworkManager → Comprobar el estado
nm ejemplo

Tambien podemos usar nmcli para gestionar los servicios de red :

  • nmcli connection up "interfaz" → Levantar
  • nmcli connection down "interfaz" → Parar
  • nmcli connection show → Comprobar
nmcli basic ejemplo

Por ultimo, podemos usar ip ( aunque este no es recomendable ya que solo hace cambios temporales ) :

  • ip link set "interfaz" up → Levantar
  • ip link set "interfaz" down → Parar
  • ip a → Comprobar
ip basic ejemplo

10. Transferir archivos de forma segura

La transferencia segura se realiza mediante SSH. Tenemos principalmente : scp y sftp.

La sintaxis de scp puede ser :

  • scp local user@ip:/remoto → De local a remoto
  • scp user@ip:/remoto /local → De remoto a local

Las opciones más usadas son :

  • -r → Realizar copias recursivas.
  • -P → Indicar puerto
  • -p → Conservar permisos y otros datos
scp ejemplo scp-remoto ejemplo

Por otro lado, tenemos sftp que tiene un menú interactivo donde podemos lanzar comandos. Para conectarnos usaremos sftp user@IP.

Si queremos lanzar comandos en local lanzariamos los comandos con una l delante, por ejemplo lcd, lpwd...

Los más a tener en cuenta serían : put( Subir un archivo) y get( Descargarlo)