Execute command in timed intervals

Running a command (script, program, et cetera) on a regularly timed interval can
be accomplished a few different ways. One way, is to leverage the crontab
utility, which schedules runs to run one or more times per day.

While a fantastic utility, crontab can be a bit heavy at times, especially if
you just need to run something for a finite amount of time.

In those types of scenarios, you can use the watch command, which works the
same way that crontab does, but right from your command-line.

Let’s say you want to check the contents of a directory every 5 seconds, you can
run the following:

watch --interval 5 ls

Or more concisely:

watch -n 5 ls

Once you’re done monitoring things, you can simply hit Ctrl+C and watch will
cease execution!

To take things a bit further, watch also has an argument that will tell it to
highlight the differences between runs:

# Highlight the differences
watch -n 5 --differences ls -al

# Also, highlight the differences
watch -n 5 -d ls -al

# Highlight the differences, persisting the highlight between runs
watch -n 5 --differences=permanent ls -al
Josh Sherman - The Man, The Myth, The Avatar

About Josh

Husband. Father. Pug dad. Musician. Founder of Holiday API, Head of Engineering and Emoji Specialist at Mailshake, and author of the best damn Lorem Ipsum Library for PHP.


If you found this article helpful, please consider buying me a coffee.