Her ndakika bir cron çalıştırmak istiyorsanız , değerine bağlı olarak birkaç olası seçenek vardır n.
n 60'ı böler (1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30)
Burada çözüm, /gösterimi kullanarak basittir :
m-59/n * * * * command
Yukarıda, ndeğeri temsil eder nve veya mdeğerinden küçük bir değeri temsil eder . Bu, komutu dakikalarda çalıştıracakn*m,m+n,m+2n,...
n 60'ı bölmez
Eğer n60 bölmek değil, siz cron ile bu temiz yapamaz ama mümkün. Bunu yapmak için, testin zamanı kontrol ettiği cron'a bir test koymanız gerekir. Bu, en iyi UNIX zaman damgasına bakıldığında yapılır, o zamandan beri geçen toplam saniye 1970-01-01 00:00:00 UTC. Diyelim ki, Marty McFly Riverdale'e ilk geldiğinde komutu çalıştırmaya başlamak ve ardından her ndakika sonra tekrar etmek istiyoruz .
% date -d '2015-10-21 07:28:00' +%s
1445412480
Bir 42cronjob'un "2015-10-21 07:28:00 '' den sonra her dakika çalışması için, crontab şöyle görünür:
* * * * * minutetestcmd "2015-10-21 07:28:00" 42 && command
olarak minutetestcmdtanımlanan
#!/usr/bin/env bash
starttime=$(date -d "$1" "+%s")
now=$(date "+%s")
minutes=$(( (now - starttime) / 60 ))
modulo=$2
(( now >= starttime )) && (( minutes % modulo == 0 ))
Not: UNIX zamanı artık saniyeden etkilenmez
Not: cron saniyenin altında doğruluğu yoktur