Portál AbcLinuxu, 6. května 2025 22:54

Dotaz: Jak zjistit další spuštění crontabu?

23.1.2012 12:39 Lukasss
Jak zjistit další spuštění crontabu?
Přečteno: 354×
Odpovědět | Admin
Ahoj, mám v crontabu spuštění každých 14 dní, můžu si nějakým způsobem zjistit další a poslední spuštění crontabu? Díky

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

23.1.2012 12:57 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Obávám se, že vůbec není jasné, co chcete. crontab se nespouští, je to konfigurace pro cron. cron pak podle této konfigurace v zadaný čas spustí zadaný příkaz.
24.1.2012 13:42 Lukasss
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Ale jak třeba zjistíte, když přijdete ke stroji, kde bude v cronu něco takového:
0 2 */18 * * sh  script.sh
Kdy proběhne další spuštění?
24.1.2012 16:07 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Ten skript se má spouštět ve dvě hodiny nula minut každý osmnáctý den v měsíci (poněkud zvláštně zadáno, pouze "18" by bylo čitelnější). Takže příště se spustí 18. února ve dvě v noci. Šel by napsat skript, který by ten okamžik příštího spuštění spočítal a vypsal, ale než si vzpomenete, jak jste ten skript pojmenoval, máte to rychleji vyřešené z hlavy.
24.1.2012 16:13 Filip Jirsák | skóre: 68 | blog: Fa & Bi
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Ještě mne napadlo, když vidím to */18 a "každých čtrnáct dní" v původním dotazu – v základním formátu cronu nejde "každých 14 dní" zadat. */18 znamená "každý 18. den v měsíci" a je to tedy stejné jako 18, třeba */10 by znamenalo spouštět 10., 20. a 30. den v měsíci. Ten základní formát pracuje s kalendářem, takže můžete zadat třeba "každého 1. a 15. v měsíci", což ale znamená nepravidelný interval. Také můžete zadat spouštění třeba každou sobotu a ve skriptu pak testovat, zda je sudý nebo lichý týden. Existují různé vylepšené crony, některý z nich určitě bude umět i spouštění v zadaném intervalu. Je ale otázka, zda je to pro vás opravdu nutné, a zda vám to stojí za to pokoušet se takový cron na to vaše zařízení dostat.
23.1.2012 13:11 NN
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Logy posila cron standartne do mailu. Muzes nechat cron logovat pres syslog tak, ze ho tam pridas.
cron.*                         /var/log/cron.log
Nebo musis prohledat logy posledniho spusteni prikazu, jinak nijak.

NN
23.1.2012 13:11 l4m4
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Odpovědět | | Sbalit | Link | Blokovat | Admin
Nerozumím, co je další a poslední spuštění crontabu, nicméně pokud máš log cronu, tak asi tam (např. na RedHatu je samostatný cron log, někde je to v messages nebo kde, někde taky nikde -- záleží na systému).
23.1.2012 13:30 Lukasss
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
Jsem to asi špatně formuloval, každopádně jste mě pochopili. Zapomněl jsem dodat, že to potřebuji zprovoznit na NASu, kde běží BusyBox v1.16.1, takže jsem dost omezený
24.1.2012 14:09 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
A to je takový problém do toho crontabu přidat třeba date > /var/log/lastrun.log :-)
24.1.2012 14:35 Lol Phirae | skóre: 23
Rozbalit Rozbalit vše Re: Jak zjistit další spuštění crontabu?
A pokud potřebuješ +14 dní v busyboxu, tak zkus date -D '%s' -d "$(( `busybox date +%s`+14*86400 ))" > /var/log/nextrun.log

(Aneb ať žijí shitoidní embedded náhražky, date -d "14 days" z coreutils je holt moc jednoduché :-D)

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.