Buenas,
Estoy haciendo un servicio para mi distro que me envíe un mail si algun servicio que necesito que este levantado si o si tiene algún problema, a parte de que ya lo tengo configurado para que se levante en caso de fallo... pero tengo alguna duda a la hora de maquetar el cuerpo del mail, lo quiero dejar algo "bonito" construyéndolo en un temporal en html y luego enviándolo... y quiero poner el estado del servicio en negrita y en color rojo o verde dependiendo de si esta running o failed...
Sabéis alguna forma de limpiar esto, solo se me ocurre con awk y me encuentro con bastantes problemas a la hora de usar delimitadores, etc... tengo que estar reescribiéndolos... necesitaría sacar de estas líneas lo siguiente:
$1 <codigo_html> $2 </codigo_html> $3
De estas dos salidas... para el ejemplo va con un echo pero la idea es sacarla con systemctl status...
Salida 1:
Active: active (running) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago
|____||____________| |________________________________________|
$1 $2 $3
echo "Active: active (running) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago" | awk -F "[:)]" '{print $1":","<codigo_html>"$2")""</codigo_html>",$3$4":"$5}'
Como resultado:
Active: <codigo_html> active (running)</codigo_html> since Sun 2014-11-23 1753:10 CET; 4min 12s ago
Salida 2:
Active: failed (Result: exit-code) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago
|____||___________________| |________________________________________|
$1 $2 $3
echo "Active: failed (Result: exit-code) since Sun 2014-11-23 17:53:10 CET; 4min 12s ago" | awk -F "[:)]" '{print $1":","<codigo_html>"$2":"$3")",$4":"$5":"$6}'
Como resultado:
Active: <codigo_html> failed (Result: exit-code)</codigo_html> since Sun 2014-11-23 17:53:10 CET; 4min 12s ago
Funcionar funciona, pero me parece demasiado guarro, no se si hay alguna opcion en AWK de que imprima los delimitadores y de por ejemplo decirle en lugar de $3$4$5$6$7... que imprima de $3 hasta el final... para dejarlo más limpio ya que en algun caso no se cuantos campos va a tener, si hasta el 5 o hasta el 20... y como veis al usar uno de los delimitadores ":" y como la hora va separada por ":"... me divide en más que en 3...
Un saludo!