linuxcron

How to setup CRON job to run every 10 seconds in Linux?


I need to run a CRON job every 10 seconds from started time.

In Linux how to run a CRON job on every 10 seconds from the time its started?

I am trying to solve that as following: when I make a request (or start) at 04:28:34 it should start at 04:28:44 not at 4:28:40

This is what I have done

# m h  dom mon dow   command
*/10 * * * * /usr/bin/wget http://api.us/application/

What did I do wrong? Why does this not trigger wget every 10 seconds?


Solution

  • To elaborate on Sougata Bose's answer, I think the OP wants a command to be run every 10 seconds from a start time; not 10 seconds after the first minute and every subsequent minute.

    cron only has a resolution of 1 minute (there are other tools I think that may have finer resolutions but they are not standard on unix).

    Therefore, to resolve your issue you need 60 seconds / 10 seconds = 6 cron jobs, each with a sleep.

    e.g. run crontab -e and add the following lines to your chosen editor:

    * * * * * ( /usr/bin/wget http://api.us/application/ )  
    * * * * * ( sleep 10 ; /usr/bin/wget http://api.us/application/ )  
    * * * * * ( sleep 20 ; /usr/bin/wget http://api.us/application/ )  
    * * * * * ( sleep 30 ; /usr/bin/wget http://api.us/application/ )  
    * * * * * ( sleep 40 ; /usr/bin/wget http://api.us/application/ )  
    * * * * * ( sleep 50 ; /usr/bin/wget http://api.us/application/ )