Puede ser que "mirar" no sea lo que quieres. ¡Probablemente quiera pedir ayuda para resolver su problema, no para implementar su solución! :)
Si su objetivo real es desencadenar acciones basadas en lo que se ve desde el tail
comando , puede hacerlo como parte de la cola misma. En lugar de ejecutar "periódicamente", que es lo que watch
hace, puede ejecutar su código a pedido .
#!/bin/sh
tail -F /var/log/somelogfile | while read line; do
if echo "$line" | grep -q '[Ss]ome.regex'; then
# do your stuff
fi
done
Tenga en cuenta que tail -F
seguirá un archivo de registro incluso si se rota por newsyslog o logrotate. Desea usar esto en lugar de las minúsculas tail -f
. Consultar man tail
para más detalles.
Dicho esto, si realmente desea ejecutar un comando periódicamente, las otras respuestas proporcionadas se pueden convertir en un breve script de shell:
#!/bin/sh
if [ -z "$2" ]; then
echo "Usage: $0 SECONDS COMMAND" >&2
exit 1
fi
SECONDS=$1
shift 1
while sleep $SECONDS; do
clear
$*
done