webForumDet fria alternativet

Låta cron köra ett script var sjätte dag med hjälp av crontab.

Linux & BSD

2 svar · 863 visningar · startad av sne1

Medlem sedan jan. 200363 inlägg
Frågan#1

Hej!

Jag har konstaterat att...
33 23 * * */6 /usr/local/bin/xxx.bash
...i crontab, i Linux Ubuntu 2.6.24-19, mystiskt nog låter cron köra xxx-scriptet varje lördag och söndag, istället för var sjätte dag, som jag önskar. Hur ska jag skriva i crontab för att cron ska köra scriptet med sex dagars mellanrum (alltså, ex.vis., med start en måndag, så blir det påföljande söndag, lördag, fredag, torsdag, onsdag, tisdag, måndag o.s.v...)?

Tacksam för hjälp!

Medlem sedan juni 20014 290 inlägg
#2

Går inte direkt i cron.

När du skriver */6 i 5:th positionen så träffar den dag 0 (söndag) och dag 6 (lördag).

Se /6 som att du tar modulus av talen inte att du räknar upp och tar var 6 tal.

Om man tittar i man-sidan för crontab så er man vad dom olika positionerna betyder:

minute 0-59
hour 0-23
day of month 1-31
month 1-12
day of week 0-7 (0 or 7 is Sunday)

Att tänka på är det går att ange dagen på två ställen och scriptet körs när någon av dom uppfylls:

Ex. "0 * * 1 * 5" innebär att scriptet körs den 1 varje månad och varje fredag.

Det du får göra är att köra scriptet varje dag och sedan lägga in logiken för det i scriptet

Medlem sedan jan. 200363 inlägg
#3

OK, ville slippa modifiera scriptet ännu mer, men TACK ändå, GunnarD!

890 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
763 ms — deklarationer (db)
0 ms — hämta statistik (cache)
123 ms — hämta tråd, inlägg och bilagor (db)
118 ms — ändringar (db)