Introducción
En este artículo discutiremos los comandos más comunes con ejemplos que se usan en el monitoreo de procesos en sistemas Linux tales como:
- pd
- arriba
- arriba
- lsof
1. pd
Como todos sabemos, Linux es un sistema multitarea y multiusuario. Por lo tanto, permite que múltiples procesos operen simultáneamente sin interferir entre sí. El proceso es uno de los conceptos fundamentales importantes del sistema operativo Linux. Un proceso es una instancia de ejecución de un programa y lleva a cabo diferentes tareas dentro del sistema operativo.
Linux nos proporciona una utilidad llamada ps para ver información relacionada con los procesos en un sistema que es la abreviatura de “Estado del proceso”. El comando ps se usa para enumerar los procesos que se están ejecutando actualmente y sus PID, junto con otra información, depende de las diferentes opciones. Lee la información del proceso de los archivos virtuales en /proc sistema de archivos. /proc contiene archivos virtuales, esta es la razón por la que se denomina sistema de archivos virtual.
ps ofrece numerosas opciones para manipular la salida según nuestras necesidades.
Sintaxis :
ps [options]
Opciones para el comando ps:
1- Selección de proceso simple:
Muestra los procesos para el shell actual
El resultado contiene cuatro columnas de información.
Donde,
PID: el ID de proceso único
TTY: tipo de terminal en el que el usuario ha iniciado sesión
TIEMPO: cantidad de CPU en minutos y segundos que el proceso ha estado ejecutando
CMD – nombre del comando que inició el proceso.
Nota: A veces, cuando ejecutamos ps comando, muestra HORA como 00:00:00. No es más que el tiempo total de utilización de CPU acumulado para cualquier proceso y 00:00:00 indica que el kernel no ha proporcionado tiempo de CPU hasta ahora. En el ejemplo anterior, encontramos que, para bash, no se ha dado tiempo de CPU. Esto se debe a que bash es solo un proceso principal para diferentes procesos que necesitan bash para su ejecución y bash en sí mismo no está utilizando tiempo de CPU hasta ahora.
2. Ver procesos:
Ver todos los procesos en ejecución, use cualquiera de las siguientes opciones con ps –
# ps -A
# ps -e
3. Ver procesos no asociados a un terminal:
Ver todos los procesos, excepto los líderes de sesión y los procesos no asociados con una terminal.
# ps -a
Nota: Puede estar pensando que ¿qué es el líder de sesión? Se asigna una sesión única a cada grupo de procesos. Entonces, el líder de la sesión es un proceso que inicia otros procesos. El ID de proceso del primer proceso de cualquier sesión es similar al ID de sesión.
4. Ver todos los procesos excepto los líderes de sesión:
# ps -d
5. Ver todos los procesos excepto aquellos que cumplen las condiciones especificadas (anula la selección):
Ejemplo: Si desea ver solo el líder de sesión y los procesos no asociados con una terminal. Luego, corre
# ps -a -N
or
# ps -a --deselect
6. Ver todos los procesos asociados con este terminal:
# ps -T
7. Ver todos los procesos en ejecución:
# ps -r
8. Ver todos los procesos de su propiedad: Procesos, es decir, el mismo EUID que ps, lo que significa que ejecuta el comando ps, raíz en este caso
# ps -x
Selección de procesos por lista
Aquí discutiremos cómo obtener la lista de procesos específicos con la ayuda del comando ps. Estas opciones aceptan un único argumento en forma de lista separada por comas o espacios en blanco. Se pueden utilizar varias veces.
Por ejemplo: pd -p “1 2” -p 3,4
- Seleccione el proceso por el nombre del comando. Esto selecciona los procesos cuyo nombre ejecutable se proporciona en cmdlist. Puede haber una posibilidad de que no conozca la ID del proceso y con este comando es más fácil buscar.
Sintaxis: ps -C nombre_comando
Ejemplo :
[root@unixcop ~]# ps -C dhclient
PID TTY TIME CMD
19815 ? 00:00:00 dhclient
2. Seleccione por ID o nombre de grupo. El ID de grupo identifica el grupo del usuario que creó el proceso.
Syntax : ps -G group_name
ps --Group group_name
Example :
[root@unixcop ~]# ps -G root
3. Ver por ID de grupo:
Syntax : ps -g group_id ps -group group_id
Ejemplo ahora :
# ps -g 1
4. Ver proceso por ID de proceso.
-Syntax : ps p process_id ps -p process_id ps --pid process_id
Y Ejemplos:
[root@unixcop ~]# ps p 27223
PID TTY STAT TIME COMMAND
27223 ? Ss 0:01 sshd: root@pts/2
[root@unixcop ~]# ps -p 27223
PID TTY TIME CMD
27223 ? 00:00:01 sshd
[root@unixcop ~]# ps --pid 27223
PID TTY TIME CMD
27223 ? 00:00:01 sshd
Puede ver varios procesos especificando varios ID de proceso separados por espacios en blanco o comas:
–Para Ejemplo:
[root@unixcop ~]# ps -p 1 904 27223
PID TTY STAT TIME COMMAND
1 ? Ss 0:13 /usr/lib/systemd/systemd --switched-root --system --d
904 tty1 Ssl+ 1:02 /usr/bin/X -core -noreset :0 -seat seat0 -auth /var/r
27223 ? Ss 0:01 sshd: root@pts/2
Aquí, mencionamos tres ID de proceso:1, 904 y 27223, que están separados por espacios en blanco.
5. Seleccione por ID de proceso principal. Al usar este comando, podemos ver todos los procesos que pertenecen al proceso principal, excepto el proceso principal.
Ejemplos :
[root@unixcop ~]# ps -p 766
PID TTY TIME CMD
766 ? 00:00:06 NetworkManager
[root@unixcop ~]# ps --ppid 766
PID TTY TIME CMD
19815 ? 00:00:00 dhclient
En el ejemplo anterior, ID de proceso 766 está asignado a NetworkManager y este es el proceso principal para dhclient con ID de proceso 19815.
6. Ver todos los procesos pertenecientes a cualquier ID de sesión.
Syntax :
ps -s session_id
ps --sid session_id
Example :
[root@unixcop ~]# ps -s 1248
PID TTY TIME CMD
1248 ? 00:00:00 dbus-daemon
1276 ? 00:00:00 dconf-service
1302 ? 00:00:00 gvfsd
1310 ? 00:00:00 gvfsd-fuse
1369 ? 00:00:00 gvfs-udisks2-vo
1400 ? 00:00:00 gvfsd-trash
1418 ? 00:00:00 gvfs-mtp-volume
1432 ? 00:00:00 gvfs-gphoto2-vo
1437 ? 00:00:00 gvfs-afc-volume
1447 ? 00:00:00 wnck-applet
1453 ? 00:00:00 notification-ar
1454 ? 00:00:02 clock-applet
7. Seleccione por tty. Esto selecciona los procesos asociados con el tty mencionado:
The Syntax : ps t tty ps -t tty ps --tty tty
Por ejemplo :
# ps -t pts/0
8. Seleccione por ID o nombre de usuario efectivo.
Y la Sintaxis es:
ps U nombre_de_usuario/ID
ps -U nombre_usuario/ID
Control de formato de salida
Estas opciones se utilizan para elegir la información que muestra ps. Hay múltiples opciones para controlar el formato de salida. Estas opciones se pueden combinar con cualquier otra opción como e, u, p, G, g etc, depende de nuestra necesidad.
1. Utilice -f para ver la lista en formato completo.
ps -af
2. Usa -F para ver el formato extra completo.
ps -F
3. Para ver el proceso según el formato definido por el usuario.
# ps --formate column_name
# ps -o column_name
# ps o column_name
Ejemplo :
ps -aN --format cmd,pid,user,ppid
En este ejemplo, deseo ver el comando, el ID del proceso, el nombre de usuario y el ID del proceso principal, así que paso los argumentos cmd, pid, user y ppid respectivamente.
4. Ver en formato de control de trabajo BSD:
ps -j
5. Mostrar formato largo BSD:
ps l
6. Agregue una columna de datos de seguridad.
ps -aM
7. Ver comando con formato de señal.
[root@unixcop ~]# ps s 766
8. Mostrar formato orientado al usuario
ps u 1
9. Mostrar formato de memoria virtual
ps v 1
10. Si desea ver el entorno de cualquier comando. Luego usa la opción **e** –
[root@unixcop ~]# ps ev 766
PID TTY STAT TIME MAJFL TRS DRS RSS %MEM COMMAND
766 ? Ssl 0:08 47 2441 545694 10448 1.0 /usr/sbin/NetworkManager --no-daemon LANG=en_US.UTF-8 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
11. Ver procesos usando la memoria más alta.
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem
12. imprime un árbol de procesos
[root@unixcop ~]# ps --forest -C sshd
PID TTY TIME CMD
797 ? 00:00:00 sshd
11680 ? 00:00:03 \_ sshd
16361 ? 00:00:02 \_ sshd
13. Enumere todos los subprocesos para un proceso en particular. Utilice -T o -L opción para mostrar hilos de un proceso.
[root@unixcop ~]# ps -C sshd -L
PID LWP TTY TIME CMD
797 797 ? 00:00:00 sshd
11680 11680 ? 00:00:03 sshd
16361 16361 ? 00:00:02 sshd
Nota: Para obtener una explicación de los diferentes contenidos de las columnas, consulte la página del manual.
Referencia: Página man
2. parte superior
superior El comando se utiliza para mostrar los procesos de Linux. Proporciona una vista dinámica en tiempo real del sistema en ejecución. Por lo general, este comando muestra la información resumida del sistema y la lista de procesos o subprocesos que actualmente administra el Kernel de Linux.
Tan pronto como ejecute este comando, se abrirá un modo de comando interactivo donde la mitad superior contendrá las estadísticas de los procesos y el uso de recursos. Y la mitad inferior contiene una lista de los procesos que se están ejecutando actualmente. Presionando q simplemente saldrá del modo de comando.
Sintaxis :
top
Aquí,
- PID: Muestra el ID de proceso único de la tarea.
- RP: Representa la prioridad de la tarea.
- SHR: Representa la cantidad de memoria compartida utilizada por una tarea.
- VIRT: Memoria virtual total utilizada por la tarea.
- USUARIO: Nombre de usuario del propietario de la tarea.
- % CPU: Representa el uso de la CPU.
- TIEMPO+: CPU Time, lo mismo que 'TIME', pero reflejando más granularidad a través de centésimas de segundo.
- SHR: Representa el tamaño de la memoria compartida (kb) utilizada por una tarea.
- NI: Representa un buen valor de la tarea. Un valor Niza negativo implica una prioridad más alta, y un valor Niza positivo significa una prioridad más baja.
%MEM: Muestra el uso de memoria de la tarea.
Ejemplos:
1) Salir del comando superior después de una repetición específica: La salida superior sigue actualizándose hasta que presione 'q'. Con el siguiente comando, el comando superior saldrá automáticamente después de 20 repeticiones.
top -n 10
2) Mostrar proceso de usuario específico
top -u unixcop
aquí el usuario llamado unixcop
3) Resalte el proceso en ejecución en la parte superior: Presiona 'z' La opción en ejecutar el comando superior mostrará el proceso en ejecución en color, lo que puede ayudarlo a identificar fácilmente el proceso en ejecución
4) Muestra la ruta absoluta de los procesos:
Presiona 'c' opción al ejecutar el comando superior, mostrará la ruta absoluta de ejecución pro
5) Matar el proceso en ejecución: Puede eliminar un proceso después de encontrar el PID del proceso presionando ‘k‘ opción para ejecutar el comando superior sin salir de la ventana superior como se muestra a continuación.
6) Ordenar por uso de CPU: Presiona (Mayús+P) para ordenar los procesos según la utilización de la CPU.
7) Muestra la sintaxis del comando superior:
top -h
8) Modo por lotes: Envíe la salida desde la parte superior al archivo o a cualquier otro programa.
top -b
9) Modo seguro: Use la parte superior en modo seguro.
top -s
10) Línea de comando: El siguiente comando comienza arriba con el último estado cerrado.
Top -c
11) Tiempo de retraso: Indica el tiempo de retraso entre las actualizaciones de pantalla.
top -d seconds.tenths
3. arriba
htop El comando en el sistema Linux es una utilidad de línea de comandos que permite al usuario monitorear de forma interactiva los recursos vitales del sistema o los procesos del servidor en tiempo real. arriba es un programa más nuevo en comparación con top comando, y ofrece muchas mejoras sobre el comando superior. htop admite la operación del mouse, usa color en su salida y brinda indicaciones visuales sobre el uso del procesador, la memoria y el intercambio. htop también imprime líneas de comando completas para procesos y permite desplazarse tanto vertical como horizontalmente para procesos y líneas de comando respectivamente.
Sintaxis:
htop [-dChusv]
Ejemplo:
Opciones:
- -d –retraso: Se utiliza para mostrar el retraso entre actualizaciones, en décimas de segundo.
- -C –sin color –sin color :Inicie htop en modo monocromático.
- -h –ayuda: Se utiliza para mostrar el mensaje de ayuda y salir.
- -u –usuario=NOMBRE DE USUARIO : Se utiliza para mostrar solo los procesos de un usuario determinado.
htop -u qadry
- -p –pid=PID, PID… : Se usa para mostrar solo los PID proporcionados.
- -s –sort-key COLUMNA: Ordene por esta columna (utilice la ayuda de la clave de clasificación para obtener una lista de columnas).
- -V –versión: Información de la versión de salida y salida.
Comandos interactivos:
- Flechas, Re Pág, Av Pág, Inicio, Fin :Desplácese por la lista de procesos.
- Espacio :Etiquetar o desetiquetar un proceso.
- U – Quite la etiqueta de todos los procesos (elimine todas las etiquetas agregadas con la tecla Espacio).
- s – Seguimiento de llamadas al sistema de proceso.
F1 – AyudaF2 – configuraciónF3 – buscarF4 – filtrado:escriba parte de la línea de comando de un proceso y solo se mostrarán los procesos cuyos nombres coincidan.F5 – Vista de árbol.
F6 – Clasificación.F7 – Aumentar la prioridad del proceso seleccionado. Esto solo puede hacerlo el superusuario.F8 – Disminuir la prioridad del proceso seleccionado.F9 – Matar proceso.F10 – Salir.
4. ls de
Linux/Unix considera todo como un archivo y mantiene una carpeta. Entonces “Archivos o un archivo” es muy importante en Linux/Unix. Mientras se trabaja en el sistema Linux/Unix, puede haber varios archivos y carpetas en uso, algunos de ellos serían visibles y otros no.
lsof comando significa Lista de archivos abiertos . Este comando proporciona una lista de archivos que se abren. Básicamente, brinda la información para averiguar qué archivos se abren mediante qué proceso. De una sola vez, enumera todos los archivos abiertos en la consola de salida. No solo puede enumerar archivos comunes comunes, sino que también puede enumerar un directorio, un archivo especial de bloque, una biblioteca compartida, un archivo especial de caracteres, una canalización normal, una canalización con nombre, un conector de Internet, un conector de dominio UNIX y muchos otros. se puede combinar con el comando grep y se puede usar para realizar búsquedas y listados avanzados.
Sintaxis:
lsof [option][user name]
Opciones con ejemplos:
- Lista de todos los archivos abiertos: Este comando enumera todos los archivos abiertos por cualquier proceso en el sistema.
lsof
Aquí, observa que hay detalles de los archivos que se abren. ID de proceso, el usuario asociado con el proceso, FD (descriptor de archivo), el tamaño del archivo en conjunto brinda información detallada sobre el archivo abierto por el comando, ID de proceso, usuario, su tamaño, etc.
- FD representa como descriptor de archivo.
- cwd :directorio de trabajo actual.
- texto :archivo de texto.
- mem :Archivo de memoria.
- mapa :dispositivo asignado a la memoria.
- Lista de todos los archivos abiertos por un usuario: Hay varios usuarios de un sistema y cada usuario tiene requisitos diferentes y, en consecuencia, utilizan archivos y dispositivos. Para encontrar una lista de archivos abiertos por un usuario específico, este comando es útil.
Sintaxis:
lsof -u username
Ejemplo :
lsof -u qadry
En la figura anterior con el comando lsof -u qadry enumera todos los archivos abiertos por el usuario. Junto con eso, podemos ver el tipo de archivo aquí y son:
- DIR: Directorio
REG: Archivo normal- CHR: Archivo especial de caracteres
- Enumere todos los archivos que todos abren excepto un usuario específico: Con la ayuda de este comando, puede enumerar todos los archivos abiertos por todo el proceso y todo el usuario. Pero cuando queremos encontrar la lista de archivos que abren todos los usuarios, excepto un usuario en particular, podemos usar:
Sintaxis:
lsof -u ^root
En la figura dada podemos observar que no hay archivos abiertos por el usuario root.
- Lista de todos los archivos abiertos por un proceso en particular: Este comando puede enumerar todos los archivos abiertos por un proceso en particular. -c seguido de los nombres de los procesos puede encontrar todos los archivos abiertos por ese proceso en particular que se nombra en el comando.
Sintaxis:
lsof -c crond
Aquí, puede observar que los archivos y su descripción se abrieron mediante el proceso crond.
- Lista de todos los archivos abiertos que son abiertos por un proceso particular: Cada archivo está asociado con algún ID de proceso. Puede haber muchos archivos que son abiertos por un proceso particular. Al usar lsof -p ID de proceso, se pueden verificar los archivos abiertos por un proceso en particular.
Sintaxis:
lsof -p process ID
Ejemplo :
lsof -p 2781
- Archivos abiertos por todos los demás PID: Como el comando de figura anterior enumera los archivos abiertos por un ID de proceso en particular. De la misma manera, puede usar la opción de comando a continuación para encontrar la lista de archivos que no están abiertos por un ID de proceso en particular.
Sintaxis:
lsof -p ^process ID
- Lista de ID de procesos principales: Hay una gran cantidad de procesos que se ejecutan en un sistema y tienen archivos abiertos para su uso. Puede haber muchos procesos secundarios de un proceso y este proceso también puede denominarse proceso principal. Para averiguar la lista de archivos abiertos por el proceso principal, el comando Id lsof se usa con la opción -R .
Sintaxis:
lsof -R
- Archivos abiertos por un directorio: Enumera los archivos que se abren en un directorio en particular. Hay archivos, así como el directorio en un sistema. Por lo tanto, puede haber varios archivos abiertos por un directorio, así como el archivo normal.
Sintaxis:
lsof -D directory path
- Archivos abiertos por conexiones de red: Nuestro PC/sistema se puede conectar a través de varias redes, lo que ayuda en una variedad de propósitos. Como sabemos que en Linux todo es un archivo, podemos incluso comprobar los archivos que abren algunas conexiones de red en el sistema.
Sintaxis:
lsof -i
Ejemplo:
lsof -i tcp
Aquí, en la figura, podemos ver los archivos abiertos por la red TCP. De la misma manera, podemos verificar UDP, etc.
man lsof