es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Agregue una línea en BASH solo en ciertas líneas.

Estoy trabajando en un script para hacer cambios en la definición del servicio de complemento Nagios utilizando BASH. Necesito agregar una línea de nombre de grupo de contacto, pero solo para ciertas definiciones de servicio. Entonces, empezaría con esto.

Y solo quiero agregar algunas líneas de grupo de contacto seleccionadas. Entonces, digamos que quiero agregar un grupo de contacto adicional a los servicios de Linux de esta manera.

¿Hay alguna manera de hacer esto usando sed, awk o algo más?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Sí, se puede utilizar sed para añadir el nuevo grupo de contacto a la definición del servicio de Linux. Aquí está un ejemplo de comando:

    sed -i '/use\s*linux-service/,/}/s/contact_groups\s*([^)]*)/&\, contactgroup2/' nagios.cfg
    

    Este comando buscará la definición del servicio de Linux (comenzando con “use linux-service” y terminando con el corchete de cierre), y luego encontrará la línea con “contact_groups” y añadirá “, contactgroup2” al final de la línea. La opción “-i” editará el archivo nagios.cfg en su lugar. Tenga en cuenta que este comando supone que cada definición de servicio está en una línea y que hay sólo una línea de grupo de contacto por definición de servicio. Si estas suposiciones no son ciertas para su archivo de configuración de Nagios específico, puede que tenga que modificar el comando en consecuencia.

Comments are closed.