Descripción: hay servidores de 100 centos que se comunican entre sí a través de intranet ssh, se conocen el nombre de usuario y la contraseña, y se conoce la lista de IP del servidor. Diseñe una solución técnica para el servidor con una tasa de uso del disco de salida superior al 90%. Es necesario escribir una solución técnica detallada, escriba el código de los comandos y scripts involucrados, y presente las instrucciones de instalación para las bibliotecas de terceros.
Ideas de programa:
-
Prueba si el buzón está disponible
-
Establezca una tarea programada para ejecutar el siguiente script cada cinco minutos para ver la ocupación
-
Envíe un correo electrónico de alarma cuando se descubra que el índice de ocupación supera el 90%
-
Instale el servicio ansible, compile el archivo yml para ejecutar tareas en lote
Correo de prueba
# Aquí usamos el buzón qq como destinatario vim / etc / mail.rc set bsdcompat set from = [email protected] # Nombre del receptor set smtp = smtp.qq.com #smtp address set smtp -auth-user = xx @ qq.com # destinatario dirección de la SET, el SMTP -auth-password = xxxxxxx #smtp verificación de códigos, en la operación qq-mail, mensajes de enviar a través de teléfono móvil para obtener los códigos de la SET, el SMTP -auth = la sesión # prueba de eco " prueba de correo (contenido de la prueba) ." | mail -s " Resultados de la prueba (Asunto) " [email protected]
Contenido del script
vim / server / scripts / df . sh # ! / bin / bash > / tmp / disk.log # Aquí está el umbral de prueba D_Value = 90 #Retire el porcentaje de disco D_Use = ` df -h | grep ' ^ / dev ' | awk ' {print $ 5} ' | sed ' s #% ## ' ' #Quite la dirección IP privada del host IP_Addr = `/ sbin / ifconfig eth1 | grep inet | grep -v 127.0 .0,1 | grep -v inet6 | awk ' {print $ 2} ' | tr -d " addr: " ` para i en $ D_Use do if [$ i -ge $ D_Value]; entonces D_Name = ` df -h | sed -n ' / ' " $ i " ' / p ' | awk ' {print $ 1} ' ' D_Part = ` df -h | sed -n ' / ' "$ i "' / p ' | awk ' {print $ 6} ' ' fecha >> / tmp / disk.log echo " $ La tasa de uso de $ IP_Addr server $ D_Name (partición $ D_Part) excede $ D_Value%, la tasa de uso actual es $ i%. " >> / tmp / disk.log fi hecho si [-s /tmp/disk.log]; luego cat /tmp/disk.log|mail -s " DISCO usado en advertencia " 1354586675 @ qq.com fi
Tareas programadas
crontab- e #Ejecute el script cada cinco minutos * / 5 * * * * / server / scripts / df . sh
Implementar ansible
yum install epel-release- y yum install ansible- y ansible - versión # Establezca la lista de hosts y use el método de coincidencia de secuencias vim / etc / ansible / hosts [ubantu_server] 172.16 . 1. [ 41 : 100 ] #distribuya la clave a 100 anfitrión ssh-keygen ansibles ubantu_server -m -a Copiar " src = / root .ssh / id_rsa.pub dest = / root.ssh " mkdir / etc / ansibles / palybook archivos yml # escritura vim df .yml - anfitriones: ubantu_server raíz: REMOTE_USER Tareas: - Nombre: Crear un directorio de los scripts de archivos : ruta: / server / guiones Estado: Directorio del MODO: 0755 - Nombre: La escritura de empuje de copia: src: / Server / scripts / df . SH dest: / scripts / / Servidor - Nombre: configuración push mail Copia de archivo : src: / etc / mail.rc dest: / etc / force: yes - name: crea una tarea programada cron: nombre: " Comprobación de porcentaje de disco " minuto: trabajo " * / 5" trabajo: " sh /server/scripts/df.sh " #Ejecutar script ansible -playbook ubantu.yml