Es kann sein, dass "beobachten" nicht das ist, was Sie wollen. Sie wollen wahrscheinlich um Hilfe bei der Lösung Ihres Problems bitten, nicht bei der Umsetzung Ihrer Lösung! :)
Wenn Ihr eigentliches Ziel darin besteht Aktionen auslösen, die auf den Informationen der tail
Befehl dann können Sie das als Teil des Schwanzes selbst tun. Anstatt "periodisch" zu laufen, was das ist, was watch
können Sie Ihren Code ausführen auf Anfrage .
#!/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
Beachten Sie, dass tail -F
verfolgt eine Protokolldatei weiter, auch wenn sie von newsyslog oder logrotate rotiert wird. Sie sollten dies anstelle des kleingeschriebenen tail -f
. Siehe man tail
für Einzelheiten.
Wenn Sie aber wirklich regelmäßig einen Befehl ausführen wollen, können Sie die anderen Antworten in ein kurzes Shell-Skript umwandeln:
#!/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