Detección y control de procesos y tareas programadas de Linux

1. Tareas programadas en Linux

1. ¿Qué es una tarea programada?

Función: Utilizando el "plan de tareas", cualquier script, programa o documento se puede programar para que se ejecute en el momento más conveniente.

2. Tareas programadas en Linux

Sintaxis básica:

# crontab [选项]
-l :list,显示目前已经设置的计划任务
-e :使用vim编辑器编辑计划任务的文件

3. Edición de tareas planificadas

crontab -e ingresa al archivo de edición de la tarea programada, después de abrir el archivo de edición de la tarea programada, podemos escribir nuestra tarea programada personalizada en este archivo:
el formato de gramática de la regla de la tarea programada, en la unidad de línea, una línea es un plan

          要执行的命令(要求必须使用命令的完整路径,可以使用which查看)
取值范围(常识):
分:0~59
时:0~23
日:1~31
月:1~12
周:0~70  7 表示星期天

四个符号:
*:表示取值范围中的每一个数字
-:做连续区间表达式的,要想表示1~7,则可以写成:1-7
/:表示每多少个,例如:想每 10 分钟一次,则可以在分的位置写:*/10
,:表示多个取值,比如想在 1 点,2  6 点执行,则可以在时的位置写:1,2,6

4. Algunos casos pequeños

Pregunta 1: reinicie el servicio de red a la 1:10 todos los sábados y domingos

第一步:定制格式
     /usr/bin/systemctl restart network
第二步:定制时间
10 1  * *  6,7 /usr/bin/systemctl restart network

Pregunta 2: reinicie cada dos días entre los minutos 3 y 15 de 8 a.m. a 11 a.m.

第一步:定制格式
     /usr/sbin/reboot
第二步:定制时间
3,15  8-11 */2 * * /usr/sbin/reboot

Ejemplo: cada 1 minuto, ingrese un 1 en el archivo readme.txt en el directorio raíz de inicio y use una salida adicional para ver el efecto:La salida usa el comando echo, sintaxis: # echo output content

# crontab -e
* * * * * /usr/bin/echo 1 >> /root/readme.txt

Sugerencia: para ver el efecto de la tarea programada, puede abrir una pestaña separada y usar tail -f /root/readme.txt

5. Planificar tareas

Una operación común: copia de seguridad regular (exportar regularmente los datos de la base de datos a un archivo)

6. Permisos de tareas programadas

1) Lista negra

Crontab es una tarea programada que puede crear cualquier usuario, pero el superadministrador puede configurar ciertos usuarios para que no permitan que se configure la tarea programada.
Agregue la cuenta ordinaria itheima a la lista negra cron.deny y prohíba que cree tareas programadas.
Paso 1: Cambie a la raíz del superadministrador
# su - root
Paso 2: Use vim para abrir el archivo /etc/cron.deny
# vim /etc/cron.deny
Paso 3: Ponga lo que necesita Lista de usuarios prohibidos, agregue este archivo (como itheima) para
xiaohei
cambiar a la cuenta xiaohei, pruebe si se puede usar el comando crontab y
Inserte la descripción de la imagen aquí
luego será exitoso

2) Lista blanca

La ruta del archivo de la lista blanca => /etc/cron.allow, pero preste especial atención a que este archivo debe crearse manualmente.
Nota: La prioridad de la lista blanca es más alta que la lista negra. Si un usuario existe en dos archivos de lista al mismo tiempo, se le permitirá crear tareas programadas de forma predeterminada.

7. Ver el archivo guardado de la tarea programada.

Pregunta: ¿Dónde se guardan los archivos de tareas programadas?
Respuesta: /var/spool/cron/用户名称Si usa el usuario root para editar la tarea programada, el nombre del archivo de usuario es root

# ll /var/spool/cron
total 4
-rw-------. 1 xiaohei xiaohei  0 Mar 24 09:50 xiaohei
-rw-------. 1 root    root    40 Mar 24 10:21 root

8, al mando

En el sistema Linux, hay dos comandos para lograr las tareas programadas: crontab y at (instalación adicional requerida por terceros)
crontab: tareas programadas que se ejecutarán diariamente (unidad mínima de minutos)
en: tareas programadas de una sola vez
en el comando CentOS7 viene con , otros Es posible que la versión deba instalarse manualmente.
Caso 1: Ejecute / bin / ls a las 5 pm después de tres días

# at 5pm+3 days
at>/bin/ls >/root/readme.txt
at>按Ctrl+D

Caso 2: use atq para ver las tareas programadas que no se ejecutan

# atq

Caso 3: eliminar la tarea programada especificada

# atq
# atrm 任务号

Dos, proceso y programa de Linux

1. Comprender la relación entre proceso y programa.

Un proceso es un programa o comando que se está ejecutando, y cada proceso es una entidad en ejecución y ocupa una cierta cantidad de recursos del sistema. Un programa es una colección de códigos escritos por personas en un lenguaje informático que pueden lograr un objetivo específico o resolver un problema específico.
En pocas palabras, un programa es una colección de códigos escritos por personas que utilizan un lenguaje informático que pueden lograr ciertas funciones y pueden ejecutarse. Un proceso es un programa que se está ejecutando.

2. Gestión de procesos en Linux

Visualización del proceso, a través de la visualización, para determinar el estado de salud
Terminación del
proceso Control de prioridad del proceso

Tres, comandos de gestión de procesos en Linux

1. Use el comando top para monitorear dinámicamente la información de la CPU

Sintaxis básica:

# top

Inserte la descripción de la imagen aquí

2. La situación general del sistema

1) La primera línea

Inserte la descripción de la imagen aquí

contenido Descripción
21:27:16 Hora actual del sistema
hasta 6: 05 Tiempo de funcionamiento del sistema
3 usuarios Actualmente hay tres usuarios conectados
promedio de carga: 0.02, 0.03, 0.05 La carga promedio del sistema en los últimos 1 minuto, 5 minutos y 15 minutos

2) La segunda línea

Inserte la descripción de la imagen aquí

Tareas: 233 en total Número total de procesos en el sistema
2 corriendo Número de procesos en ejecución
231 durmiendo Número de procesos durmientes
0 detenido Número de procesos detenidos
0 zombi El número de procesos zombies. Si no es 0, debe verificar manualmente el proceso zombie

3) La tercera línea

Inserte la descripción de la imagen aquí

Contenido Descripción
CPU (s): 0,3% nosotros Porcentaje de CPU ocupada por modo de usuario
1,3% sy Porcentaje de CPU ocupada por el modo del sistema
0,0% ni Porcentaje de CPU ocupada por procesos de usuario que han cambiado su prioridad
98,2% de identificación Abreviatura inactiva, el porcentaje de CPU ocupada por CPU inactiva
0.0% wa Porcentaje de CPU utilizado por procesos en espera de entrada / salida
0.0% hola Porcentaje de CPU ocupada por el servicio de solicitud de interrupción dura
0,2% si Porcentaje de CPU ocupada por el servicio de solicitud de interrupción suave
0.0% st Significa el porcentaje de tiempo virtual, que es el porcentaje de tiempo que la CPU virtual espera a la CPU real cuando hay una máquina virtual.

Cambie la tecla de método abreviado "1" para ver la carga respectiva de cada núcleo
Inserte la descripción de la imagen aquí

Prueba de carga de CPU => cat / dev / urandom | md5sum

4) La cuarta línea

Inserte la descripción de la imagen aquí

contenido Descripción
Mem: 1863252 en total La cantidad total de memoria física, en KB
903596 utilizado La cantidad de memoria física que se ha utilizado.
81572 gratis La cantidad de memoria física libre. Estamos usando una máquina virtual, se asigna un total de 628 MB de memoria, por lo que solo hay 53 MB de memoria libre
878084 potenciador / caché La cantidad de memoria utilizada como búfer

Expansión: memoria restante real = libre + búfer / caché, memoria real usada = búfer usado / caché

5) La quinta línea

Inserte la descripción de la imagen aquí

contenido Descripción
Permuta: 2097148 en total Tamaño total de la partición de intercambio (memoria virtual)
0 usado El tamaño de la partición de intercambio que se ha utilizado
2097148 gratis El tamaño de la partición de intercambio gratuito
659256 disponibilidad Mem Memoria disponible

Al particionar el sistema operativo Linux, se requieren al menos 3 particiones:

① / partición de arranque: partición del sistema
② intercambio partición de intercambio: generalmente 1 ~ 2 veces la memoria, pero trate de no exceder 2G
③ / partición: partición raíz, donde se almacenan todos los archivos

Intercambiar partición: cuando la memoria de la computadora es insuficiente, el sistema dibujará automáticamente un área del disco duro para usarla como memoria.

Podemos juzgar el estado de salud del servidor a través de la parte de información general del comando superior. Si la carga promedio de 1 minuto, 5 minutos y 15 minutos es mayor que la cantidad de núcleos de CPU, indica que el sistema está bajo alta presión. Si la memoria libre de la memoria física es demasiado pequeña, también demuestra que la presión del sistema es alta.

3. Información del proceso del sistema

Inserte la descripción de la imagen aquí

PID ID del proceso
USUARIO El usuario al que pertenece el proceso
PR Prioridad, cuanto menor es el valor, mayor es la prioridad
NI Prioridad AGRADABLE, cuanto menor es el valor, mayor es la prioridad, el rango de valores es de -20 a 19, el valor predeterminado es 0
VIRT El tamaño de la memoria virtual utilizada por el proceso, en KB
RES El tamaño de la memoria física utilizada por el proceso, en KB
SHR El tamaño de la memoria compartida, en KB. Calcular la memoria real utilizada por un proceso = memoria residente (RES) -memoria compartida (SHR)
S Estado del proceso. Donde S significa dormir y R significa correr
%UPC El porcentaje de CPU ocupado por este proceso
% MEM El porcentaje de memoria ocupada por el proceso.
TIEMPO + El tiempo total de CPU ocupado por el proceso.
MANDO Nombre del proceso

Teclas de acceso directo de operación interactiva P, P (mayúsculas): indica que los resultados se ordenan en orden descendente de uso de CPU de mayor a menor

4. Visualización gratuita del uso de la memoria

Sintaxis básica:

# free [选项]  1GB = 1024MB  1MB = 1024KB
选项说明:
-m : 以MB的形式显示内存大小

Caso: muestra el uso de memoria de la computadora

# free -m

5. df ver el espacio restante del disco

Sintaxis básica:

# df [选项]
-h :以较高的可读性显示磁盘剩余空间大小

df = disco libre = disco libre

6, ps ver información del proceso del sistema

op: vista dinámica de la información del proceso del sistema (conmutada cada 3 s)
ps: vista estática de la información del proceso del sistema (solo puede consultar la información del proceso del sistema en el momento en que ejecuta el comando ps)
Sintaxis básica:

# ps [选项]
选项说明:
-e : 等价于“-A”,表示列出全部(all)的进程
-f : 表示full,显示全部的列(显示全字段)

Usamos el comando ps en el trabajo real para consultar el PID o PPID de un proceso

ps -ef enumerará todos los procesos, pero descubrimos que hay tantos procesos que es difícil para nosotros encontrar el proceso que queremos ver. Aquí necesitamos usar el comando de filtrado grep para filtrar la información que no necesitamos.
Sintaxis básica:

用法:ps -ef |grep 想要看到的进程名
示例代码:
# ps -ef |grep crond
含义:查看crond进程的详细情况

Nota: En el resultado de la consulta, si solo hay uno, significa que no se ha encontrado el proceso correspondiente (el que se representa a sí mismo del comando ps hace un momento). Solo si se encuentra más de un resultado, significa que hay un proceso correspondiente.

Caso: consulta la información del proceso de crond

# ps -ef |grep crond
root       7102      1  0 Mar23 ?        00:00:04 /usr/sbin/crond -n
root      24752  12881  0 16:34 pts/2    00:00:00 grep --color=auto crond

7, información de acceso a la red de consulta de netstat / ss

Sintaxis básica:

# netstat [选项] |grep 进程名称
选项说明:
-t:表示只列出tcp 协议的连接(tcp协议与udp协议)
-n:表示将地址从字母组合转化成ip 地址,将协议转化成端口号来显示  10.1.1.10:80
-l:表示过滤出"state(状态)"列中其值为LISTEN(监听)的连接
-p:表示显示发起连接的进程pid 和进程名称

Caso: consulta la información del puerto del servicio del servidor web (httpd)

# netstat -tnlp |grep httpd

Sintaxis básica:

# ss -naltp |grep 进程名称

Caso: consulta la información del puerto del servicio sshd

# ss -naltp |grep sshd

¿Cuál es la diferencia entre netstat y ss? ① La información de netstat es relativamente concisa y la ss es más abundante. ② La eficiencia de ejecución de ss es ligeramente superior a la de netstat.

8, kill / killall mata el proceso

1) Mata el proceso según el pid

Sintaxis básica:

命令:kill
语法:kill [信号] PID

Función: El comando kill envía una señal (principalmente una señal de terminación) y el PID del proceso de destino al kernel del sistema operativo, y luego el kernel del sistema realiza las operaciones correspondientes en el proceso especificado de acuerdo con el tipo de señal recibida

Experiencia: kill se usa a menudo junto con el comando ps

El comando kill se usa para matar un proceso, que en realidad es solo una de sus funciones. La esencia del comando kill es enviar una señal al proceso

Tipo de señal:

señal sentido
9 Mata el proceso, es decir, fuerza el final del proceso.
15 Finalice el proceso normalmente, que es la señal predeterminada del comando kill

Caso: use el comando kill para matar el proceso crond

# ps -ef |grep crond
7102
# kill 7102

Observaciones: En Internet, a menudo vemos el PID del proceso kill -9. Mata a la fuerza un determinado proceso, kill -9 pid

2) Mata el proceso según el nombre del proceso.

Sintaxis básica:

# killall [信号编号] 进程名称

Caso: use el comando killall para matar el proceso crond

# killall httpd

Supongo que te gusta

Origin blog.csdn.net/m0_52242973/article/details/115254408
Recomendado
Clasificación