Portál AbcLinuxu, 10. května 2025 10:10
potrebuji script spoustet prave jednou dene. Pricemz pocitec nebezi cely den.To priamo cron-om nevyriešiš. Budeš to musieť oskriptovať. Robiť si nejaký timestamp a kontrolovať či už bol dnes vytvorený ... niečo ako
X=`date +%Y-%M-%d`
if [ -f /tmp/$X ]
then
echo dnes uz netreba
else
touch /tmp/$X
skript
fi
V Opensuse, uz je takovi script vyrobeny (/lib/usr/cron/run-crons), spousti ho cron kazdych 15 minut.
Script spousti ulohy ze slozek cron.{daily,weekly,monthly}, pokud jeste nebyly v uvedenem obdobi spusteny (kotroluje se podle zaznamu v /var/spool/cron/lastrun/ ).
Nevim cim to bylo, ale kdyz jsem nastavil prava 755 tak se script se pod rootem nesputil. Na netu jsem nasel, ze pokud se prava nastavi na 700 tak to funguje. Asi chyba v tom scriptu run-crons, protoze ted to opravdu jede.
/etc/crontab
(jak už jste psal), kde si můžu určit pod jakým uživatelem chci úlohu spustit. Místo prvních pěti polí použijte @daily
, což zajistí spuštění úlohy jedenkrát denně. Pokud bude problém s vícenásobným spouštěním (když není počítač neustále spuštěn), bude zapotřebí kontrolu implementovat přímo do spouštěného scriptu.
man 5 cron @daily Run once a day, "0 0 * * *". @midnight (same as @daily)
Ahoj, anacron resi, kdyz je pocitac vypnuty, aby se pak spustily vsechny zmeskane ulohy.
deb http://ftp.cz.debian.org/debian jessie main contrib non-free
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.