1
votes

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?.

2

2 Answers

0
votes

The format for crontab is as follow

m h  dom mon dow   command

So you can do

0 * * * yourcommand

It will run every hour at 00 minutes

0
votes

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.