Tengo esta sintaxis de monit,
check file access_log_1 with path /app/DNIF_logs/access_log_1 ignore content = ".*favicon.*" if content = "^([:digit:]{1,3}\.){3}[:digit:]{1,3}[:space:]((((([:digit:]{1,3}\.){3}[:digit:]{1,3})|\-)[:space:]([:digit:]{6,7}|\-)[:space:][-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&=]*)[:space:])|)-[:space:]-[:space:]\[[:digit:]{2}\/([AZ]|[az]){3}\/[:digit:]{4}\:[:digit:]{2}\:[:digit:]{2}\:[:digit:]{2}[:space:]\+[:digit:]{4}\][:space:]\"(.*)\"[:space:](500|502|503)([:digit:]|[:space:])*\"https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&\/\/=]*)\"(.*)" then alertMientras ejecuto este monitor, recibo este error
/monitrc:40: syntax error '.*'Intenté eliminar el primer .* y obtuve
monitrc:41: syntax error '"[:space:](500|502|503)([:digit:]|[:space:])*\"'así que tengo que saber que el error está en la primera aparición de (. *) Según la respuesta aquí , tenemos que usar la sintaxis posix regex. ¿Hay una sintaxis posix diferente para .* o qué debo hacer?
En POSIX ERE,
[[:digit:]] es lo mismo que [0-9]\b no se reconoce, pero generalmente puede usar \< como límite de palabra inicial y \> como finalPuede corregir la expresión regular como
if content = '^([0-9]{1,3}\.){3}[0-9]{1,3}[[:space:]]((((([0-9]{1,3}\.){3}[0-9]{1,3})|-)[[:space:]]([0-9]{6,7}|-)[[:space:]][-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\>([-a-zA-Z0-9()@:%_+.~#?&=]*)[[:space:]])|)-[[:space:]]-[[:space:]]\[[0-9]{2}/[[:alpha:]]{3}/[0-9]{4}:[0-9]{2}:[0-9]{2}:[0-9]{2}[[:space:]]\+[0-9]{4}][[:space:]]"(.*)"[[:space:]](500|502|503)[0-9[:space:]]*"https?://(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\>([-a-zA-Z0-9()@:%_+.~#?&/=]*)"(.*)' then alertNota:
([AZ]|[az])* se escribe mejor simplemente como [[:alpha:]]* (cualquier cero o más letras([0-9]|[[:space:]])* tiene una variante más corta, [0-9[:space:]]* .