Search code examples
cron

Run a cron job every second minute of every hour


I have a cron job that i want to run every second minute of every hour.before i would just run it every minute like

* * * * * /var/www/html/cron.php

but i now need it to run every second minute of ever hour. How can this be done?.


Solution

  • If your operating system is FreeBSD you could use the @every_second for example:

    @every_second  /var/www/html/cron.php
    

    For other systems, this could work:

    Somethinig every hour:

    @hourly /var/www/html/cron.php
    

    Or every 45 minutes:

    */45 * * * * /var/www/html/cron.php
    

    From man 5 crontab:

           string          meaning
           ------          -------
           @reboot         Run once, at startup of cron.
           @yearly         Run once a year, "0 0 1 1 *".
           @annually       (same as @yearly)
           @monthly        Run once a month, "0 0 1 * *".
           @weekly         Run once a week, "0 0 * * 0".
           @daily          Run once a day, "0 0 * * *".
           @midnight       (same as @daily)
           @hourly         Run once an hour, "0 * * * *".
           @every_minute   Run once a minute, "*/1 * * * *".
           @every_second   Run once a second.
    

    Also, check this a reference: https://crontab.guru/

    In case the system you are using doesn't support the @every_second you could give a try to something like:

    * * * * * /var/www/html/cron.php
    * * * * * (sleep 30; /var/www/html/cron.php)
    

    Basically, they run at the same time (every minute) but one will wait for 30 seconds before starting, so /var/www/html/cron.php will be called every 30 seconds.