Introducción a los servidores

1

Administración Básica de Servidores Linux

2

Roles y habilidades clave en administración de servidores Linux

3

Historia de los Servidores y sus Tipos en la Computación

4

Introducción a Sistemas Operativos Linux y su Kernel

5

Arquitectura de Sistemas UNIX/Linux: Capas y Funciones

6

Historia del Software Libre y Open Source

7

Distribuciones Linux y Unix: Comparación y Características

8

Ubicación y Gestión de Servidores: On-Premise, Cloud e Híbrido

9

Instalación de Servidores Linux y Virtualización Básica

Instalación y configuración

10

Instalación de VirtualBox en Windows para Máquinas Virtuales

11

Instalación y Configuración de Ubuntu Server en VirtualBox

12

Creación de cuenta Red Hat Developer y descarga de RHEL 8.6

13

Instalación de Red Hat Enterprise Linux 8.6 en VirtualBox

14

Configuración de SSH en Servidores Linux Virtuales

Sistemas de archivos y particionamiento

15

Fundamentos de Sistemas de Archivos en Linux y Windows

16

Particionamiento y Administración de Almacenamiento en Servidores Linux

17

Creación y gestión de archivos de memoria swap en Linux

18

Exploración del Árbol de Directorios en Linux

19

Tipos de archivos en Linux y su gestión en servidores

Instalación y manejo de software

20

Gestión de Paquetes y Repositorios en Linux

21

Manejadores de Paquetes en Servidores Linux: APT, DNF y JUMP

22

Gestión de paquetes en RHEL y Ubuntu con DNF y APT

23

Instalación de software en servidores Linux

24

Configuración de repositorios extra en Linux (Ubuntu y RHEL)

Procesos en Linux

25

Procesos y demonios en Linux: conceptos y gestión básica

26

Gestión de procesos en Linux usando comandos terminales

27

Gestión de Procesos en Linux: Estados y Comandos Básicos

28

Creación y gestión de demonios en Linux usando SystemD

29

Configuración de Cronjobs en Linux para Tareas Automatizadas

30

Evaluación de Conocimientos en Servidores Linux

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Gestión de procesos en Linux usando comandos terminales

26/30
Recursos

¿Cómo identificar y manejar procesos en sistemas Linux?

Identificar y administrar procesos es una tarea esencial para cualquier administrador de sistemas Linux, ya que proporciona el control necesario para optimizar el uso de recursos en el sistema. Aquí desglosamos las herramientas y comandos terminológicos fundamentales que te ayudarán a entender y gestionar estos procesos de manera eficiente.

¿Qué es un proceso y cómo puedo verlo?

Un proceso se refiere a un programa o utilidad que se está ejecutando en nuestro sistema operativo. En el contexto de Linux, podemos utilizar varios comandos para listar y examinar estos procesos.

  1. Comando PS: Muestra los procesos ejecutados en la sesión actual con detalles como el proceso ID (PID), terminal asociada, tiempo de ejecución y el comando ejecutado.

    ps
    
  2. Comando PS con banderas: Para ver todos los procesos en ejecución en el sistema, utiliza:

    ps aux
    
  3. Uso de GREP para filtrar resultados: Si buscas un proceso específico, puedes usar grep para filtrar los resultados. Por ejemplo, buscar por usuario:

    ps aux | grep nombre_usuario
    

¿Cómo buscar procesos por programas específicos?

Para buscar procesos asociados a un programa específico, como less, puedes usar:

ps aux | grep less

¿Puedo identificar procesos en un puerto específico?

Sí, este es un truco muy útil para administradores de red. Usamos lsof para listar los procesos de red vinculados a puertos específicos.

  1. Ejecutar lsof en un puerto:

    sudo lsof -i :22
    

    Esto muestra procesos ejecutados en el puerto 22, típicamente usado por SSH.

¿Qué es el comando TOP y cómo me beneficia?

El comando top te permite ver en tiempo real todos los procesos ejecutándose con detalles adicionales como el consumo de CPU y memoria, así como la prioridad del proceso.

  1. Ejecutar top:

    top
    
  2. Htop para una visualización mejorada: Htop es una herramienta mejorada de top que viene con más funcionalidades y una interfaz más amigable.

    htop
    

¿Cómo se controlan las prioridades de los procesos?

Linux permite ajustar la prioridad de los procesos mediante dos conceptos: Priority y Nice Value (Nice Nest).

  • Priority: Asignada por el kernel al proceso.
  • Nice Value: Asignada por el usuario. Valores menores indican mayor prioridad.
  1. Modificar el nice value con comandos:

    • A través de htop: Usa F7/F8 para subir o bajar la prioridad. Para disminuir nice, se requiere acceso de administrador:
      sudo htop
      
  2. Command Nice: Para establecer la prioridad antes de ejecutar un comando.

    nice -n XX command
    

¿Qué es el proceso init y su importancia?

El proceso init es el primer proceso que se inicia en un sistema Linux, de él derivan todos los demás procesos. Esta jerarquía se puede visualizar en formato de árbol dentro de htop, mostrando cómo los procesos son clonados del proceso init original.

¿Por qué es importante entender los Process IDs?

El Process ID (PID) es crucial para administrar los procesos, proporcionándote:

  • Capacidad para iniciar, parar, o matar procesos.
  • Identificar procesos activos y diagnosticar problemas potenciales.

Con estos conocimientos, ahora tienes las habilidades para estar al frente del manejo de procesos en Linux. Recordar estos comandos y sus aplicaciones te ayudará a gestionar tus sistemas de manera efectiva. ¡Sigue explorando y comprendiendo estas herramientas para convertirte en un experto administrador de sistemas!

Aportes 19

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

**Existen varias herramientas de monitoreo de procesos similares al comando top para Linux y otros sistemas operativos. Algunas de estas herramientas incluyen:**

htop: es una herramienta de monitoreo de procesos en tiempo real con una interfaz de usuario amigable y fácil de usar. Proporciona información similar a top, pero con opciones de filtrado y búsqueda avanzadas y una mejor visualización de la información.

glances: Proporciona información sobre el uso de recursos del sistema como la CPU, la memoria, el disco y la red, así como información sobre los procesos en ejecución. Glances también tiene una versión web que atraves de una API REST puede ser ejecutada en varias plataformas, incluyendo Linux, macOS y Windows.

bpytop: Proporciona información sobre el uso de recursos del sistema como la CPU, la memoria, el disco y la red, así como información sobre los procesos en ejecución. También proporciona gráficos en tiempo real del uso de recursos y permite filtrar y ordenar los procesos según diferentes criterios.

Para escanear un proceso en Linux, puedes utilizar varias herramientas, como ps, top, htop, pgrep, pidof, entre otras. A continuación, te mostraré algunos ejemplos con los comandos ps y top.

Para escanear un proceso utilizando el comando ps, simplemente debes ejecutar el siguiente comando en la terminal:

ps aux | grep nombre_del_proceso

Donde nombre_del_proceso es el nombre del proceso que deseas escanear. Este comando mostrará una lista de procesos que coinciden con el nombre especificado.

Si prefieres utilizar el comando top, puedes ejecutar el siguiente comando en la terminal:

En Linux, puedes utilizar diferentes herramientas para realizar el escaneo de procesos y monitorear la actividad del sistema. A continuación, te mencionaré algunas de las opciones más comunes:

ps: El comando ps (procesos) te permite obtener información sobre los procesos en ejecución. Puedes utilizar diversas opciones para filtrar la salida y obtener detalles específicos. Por ejemplo, ps aux muestra una lista detallada de todos los procesos del sistema.

top: El comando top muestra una lista en tiempo real de los procesos en ejecución, actualizando la información periódicamente. Proporciona detalles como el uso de CPU, memoria, PID (identificador de proceso), entre otros. Puedes ordenar los procesos por diferentes criterios y enviar señales a procesos individuales desde la interfaz de top.

htop: Similar a top, htop es una herramienta de monitoreo de procesos interactiva que muestra una lista en tiempo real de los procesos. Proporciona una interfaz más amigable y gráfica que top, permitiendo navegar y gestionar los procesos utilizando teclas de función.

pstree: El comando pstree muestra una representación jerárquica de los procesos en ejecución. Puedes visualizar la relación entre los procesos padre e hijo en forma de árbol, lo que facilita la comprensión de la estructura del sistema.

lsof: El comando lsof (list open files) muestra los archivos abiertos por los procesos en el sistema. También puedes utilizarlo para obtener información sobre los sockets de red y otros recursos abiertos por los procesos.

Estas son solo algunas de las herramientas disponibles en Linux para el escaneo y monitoreo de procesos. Cada una tiene sus propias características y opciones adicionales, por lo que puedes explorar más sobre ellas consultando sus respectivas páginas de manual (man ps, man top, man htop, etc.) para obtener más detalles y aprender cómo utilizarlas eficientemente.

Fuente: ChatGPT.

Para ordenar que procesos estan usando mas CPU con top se puede usar el comando:

top -o %CPU

Para ver cual esta usando mas memoria ram se puede hacer algo similar:

top -o %MEM

Enlace directo al Curso de Terminal 🤓

```js sudo yum install htop ```**sudo yum install htop** Para quienes no les cargo htop como a mi hay que instalarlo (RHEL 9.3)
El comando `sudo lsof -i :22` es efectivo para listar conexiones activas en el puerto 22, que normalmente se usa para SSH. Si ves usuarios además de root, es posible que haya conexiones legítimas o intrusos. Es crucial verificar qué procesos corresponden a esos usuarios. Mantén tu servidor seguro y revisa regularmente las conexiones.
Tengo una pregunta: ¿Por qué el proceso init me aparece asi? ![](https://static.platzi.com/media/user_upload/image-5e078844-7448-4f05-bb63-0689777d5f86.jpg)
Aquí te dejo cinco razones por las que el escaneo de procesos es importante en Ubuntu: 1. Detección de Procesos No Autorizados: Es vital para identificar procesos que no deberían estar ejecutándose como aquellos iniciados por malware Por ejemplo, si un proceso desconocido está consumiendo recursos de manera inusual el escaneo de procesos puede ayudar a identificarlo y detenerlo para proteger la seguridad del sistema 2. Monitoreo del Uso de Recursos del Sistema: El escaneo de procesos permite ver qué procesos están consumiendo recursos como CPU memoria y disco Por ejemplo, si el sistema está funcionando lentamente un escaneo puede revelar que una aplicación específica está utilizando demasiados recursos permitiendo al usuario tomar medidas para optimizar el rendimiento 3. Resolución de Problemas de Sistema: Ayuda a diagnosticar problemas en el sistema al identificar procesos que pueden estar causando conflictos o bloqueos Por ejemplo, si una aplicación se cuelga repetidamente un escaneo puede mostrar que otro proceso está interfiriendo con su funcionamiento adecuado 4. Gestión de la Seguridad del Sistema: El escaneo de procesos es útil para detectar actividades sospechosas que podrían indicar intentos de hackeo o acceso no autorizado Por ejemplo, la presencia de un proceso desconocido que intenta acceder a recursos del sistema puede ser un indicativo de una brecha de seguridad 5. Optimización de la Carga de Trabajo: Permite a los administradores del sistema identificar procesos ineficientes o redundantes que pueden ser terminados o reconfigurados para mejorar la eficiencia general del sistema Por ejemplo, el escaneo puede revelar procesos en segundo plano que no son necesarios y que consumen recursos sin aportar beneficios claros
![](https://static.platzi.com/media/user_upload/imagen-b4149922-97bb-4b1a-a933-435744334849.jpg)
![](https://static.platzi.com/media/user_upload/imagen-5946b9ec-4c26-4d98-93dc-2cf94a337b80.jpg)
Los procesos son referencias a programas o utilidades que se están ejecutando dentro de nuestro sistema. Hay múltiples formas de buscar estos programas, verificar cómo se están ejecutando, cuánta memoria consumen, entre otros aspectos. Vamos a la terminal para explorar cómo buscar y gestionar procesos. **1. Comando ps** El primer comando que ejecutaremos es ps, el cual lista los procesos que actualmente están ejecutándose en nuestra sesión. **ps** Este comando nos proporciona información como:     Process ID (PID): El identificador único del proceso.     TTY: El terminal asociado.     Time: El tiempo de ejecución. Sin embargo, ps por sí solo no muestra todos los procesos del sistema. Para ver todos los procesos, usaremos las banderas -aux: **ps -aux** Para buscar un proceso específico, utilizamos el comando grep. Por ejemplo, para buscar procesos del usuario "codevars": ps -aux | grep codevars **2. Comando pidof** Para encontrar el ID de un proceso específico, usamos pidof. Por ejemplo, para buscar el ID del proceso less: **pidof less** **3. Comando lsof** El comando lsof lista los archivos de socket que se están ejecutando. Para ver procesos por el puerto, usamos: **lsof -i :22** Recuerda que algunos procesos pueden requerir permisos de root para ser visibles: **sudo lsof -i :22** **4. Comando top** El comando top muestra todos los procesos en ejecución con mucha información, actualizada en tiempo real: **top** Nos muestra detalles como:     PID: Identificador del proceso.     User: Usuario dueño del proceso.     PR: Prioridad asignada por el kernel.     NI: Niceness, o la prioridad asignada por el usuario.     VIRT: Memoria virtual consumida. **5. Comando htop** htop es una versión mejorada de top, con una interfaz más amigable: **htop** Permite buscar procesos (usando F3), ajustar su prioridad (niceness) y ver un árbol de procesos (F5). Para modificar el niceness se necesita ser root: **sudo htop**
* **PID**: Stands for "Process ID". Es un número único asignado a cada proceso en ejecución en el sistema. Este identificador se utiliza para referenciar procesos en varios comandos y señales. * **USER**: Muestra el nombre del usuario que inició el proceso. Esto te puede ayudar a identificar rápidamente quién está ejecutando qué proceso. * **PR**: Significa "Priority". La prioridad con la que el sistema operativo trata el proceso. Un número más bajo significa mayor prioridad. Esta prioridad puede ser ajustada para influir en el orden de ejecución de los procesos. * **NI**: Stands for "Nice value". Es un valor que determina la amabilidad del proceso respecto al uso del CPU. Un valor más alto significa mayor amabilidad, es decir, el proceso cede voluntariamente tiempo de CPU a otros procesos. Los valores pueden ir de -20 (menos amable, más prioritario) a 19 (más amable). * **VIRT**: Representa la cantidad total de memoria virtual utilizada por el proceso. Esto incluye todo el código, datos y archivos mapeados en memoria. * **RES**: Stands for "Resident size". Es la porción de la memoria física ocupada por un proceso que está en RAM. No incluye la memoria que ha sido intercambiada o que está en el disco. * **SHR**: Significa "Shared memory". Es la cantidad de memoria compartida que utiliza un proceso. Esto puede incluir bibliotecas compartidas y otras formas de memoria que pueden ser accesibles a más de un proceso. * **S**: Muestra el estado del proceso. Algunos de los estados más comunes son S (sleeping), R (running), Z (zombie), y D (uninterruptible sleep). * **%CPU**: Este valor muestra el porcentaje del tiempo de CPU utilizado por el proceso desde la última actualización. * **%MEM**: Muestra el porcentaje de la memoria física total utilizada por el proceso. * **TIME+**: Este es el tiempo total de CPU que el proceso ha utilizado desde que se inició. Se muestra en minutos:segundos o horas:minutos:segundos, dependiendo de la duración. * **COMMAND**: El nombre del comando que inició el proceso. Esto te da una idea de qué está haciendo el proceso.
El comando top en Linux proporciona una visión en tiempo real de los procesos que se ejecutan en el sistema. Aquí te explico el significado de los nombres y columnas que verás al ejecutar este comando: PID: Identificador del proceso. USER (USUARIO): Usuario que inició el proceso. PR (PRIORIDAD): Prioridad del proceso. Un RT indica que se ejecuta en tiempo real. NI (NICE): Valor de “nice” del proceso, que afecta a su prioridad. Un valor bajo (hasta -20) indica más prioridad. VIRT (VIRTUAL): Cantidad total de memoria virtual utilizada por el proceso. RES (RESIDENTE): Cantidad de memoria física que el proceso está utilizando. SHR (COMPARTIDA): Cantidad de memoria compartida que el proceso está utilizando. S (ESTADO): Estado del proceso (ejecutándose, dormido, detenido, zombie). %CPU: Porcentaje del tiempo de CPU utilizado por el proceso desde la última actualización. %MEM: Porcentaje de la memoria física utilizada por el proceso. TIME+: Tiempo total de CPU utilizado por el proceso. COMMAND (ORDEN): Comando que inició el proceso. Estos son los elementos básicos que encontrarás en la salida del comando top
My Current Processess.. ![](https://static.platzi.com/media/user_upload/image-9bd94054-3037-4031-95eb-96aaf777eebd.jpg)
Instalación de **htop** en RHEL 8 ```shell sudo subscription-manager repos --enable codeready-builder-for-rhel-8-$(arch)-rpms sudo dnf install <https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm> ``` Fuente: <https://docs.fedoraproject.org/en-US/epel/#_rhel_8>

Que buena clase!!!.

El escaneo de procesos es impresionante. Lo mejor es la parte de htop que nos muestra el funcionamiento de los procesos mas detallado. Es algo que me gusta. Es momento de ir por mas cosas.

que hermosa clase!!