O script a seguir pressupõe que você deseja localizar o texto no parâmetro 2, seguido por :
, seguido pela data no parâmetro 3 formatado como YYYY-M-D-h:m:s
, isto é, sem zeros à esquerda, conforme o trecho em sua pergunta. / p>
#!/bin/bash
logfile="$1"
message="$2"
timestamp=$(printf '%d-%d-%d-%d:%d:%d' 'date -d "$3" +"%Y %m %d %H %M %S"')
if grep -q "^../../.. ..:..:.. $message : $timestamp\$" "$logfile"; then
echo "OK: $message $timestamp found on $logfile"
else
echo "CRITICAL - $message $timestamp not found on $logfile"
exit 1
fi