Na mém Ubuntu-Desktopu a na mém debian-serveru mám skript, který je potřeba spustit každou minutu (skript, který volá minutový tic mé vesmírné online browsergame).
Problém je v tom, že na derivátech debianu se cron přihlašuje do /var/log/syslog
pokaždé, když se provede. Nakonec jsem viděl opakování zprávy, která byla provedena znovu a znovu v /var/log/syslog
:
Nov 11 16:50:01 eclabs /USR/SBIN/CRON[31636]: (root) CMD (/usr/bin/w3m -no-cookie http://www.spacetrace.org/secret_script.php > /dev/null 2>&1)
Vím, že za účelem potlačení výstupu programu jej mohu přesměrovat na /dev/null
, například pro skrytí všech chybových a varovných zpráv z programu mohu vytvořit řádek v crontab takto
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null
Ale rád bych spustil cronjob a měl jistotu, že všechny vygenerované výstupy nebo chyby jsou přesměrovány do NULL, takže to negeneruje žádné zprávy v syslog a negeneruje žádné e-maily
EDIT:
existuje řešení, jak přesměrovat cron-logy do samostatného protokolu, jak je zde navrženo změnou /etc/syslog.conf
Ale nevýhodou je, že pak je VŠECHNY výstup všech cronjobů přesměrován.
Mohu nějak přesměrovat pouze jeden cronjob do samostatného souboru protokolu? Nejlépe konfigurovatelné uvnitř cron.hourly
samotný soubor.
Přijatá odpověď:
Udělejte řádek takto:
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
Tím zachytíte STDOUT (1) i STDERR (2) a odešlete je na /dev/null
.
MAILTO
E-mail můžete také zakázat nastavením a následným resetováním MAILTO=""
který zakáže odesílání jakýchkoli e-mailů.
Příklad
MAILTO=""
* * * * * root /usr/local/sbin/mycommand.sh > /dev/null 2>&1
MAILTO="[email protected]"
* * * * * root /usr/local/sbin/myothercommand.sh
Další zprávy
V /var/log/syslog
často obdržíte následující typy zpráv :
Nov 11 08:17:01 manny CRON[28381]: (root) CMD ( cd / && run-parts --report /etc/cron.hourly)
Toto jsou jednoduše upozornění přes cron, že byl spuštěn adresář cronjobů. Tato zpráva nemá nic společného přímo s těmito úlohami, místo toho přichází z crond
přímo démona. Ve skutečnosti s tím nemůžete nic dělat a doporučil bych vám, abyste je nevypínali, protože jsou pravděpodobně jediným oknem, které máte do dění v crond
prostřednictvím protokolů.
Pokud jsou pro vás velmi otravní, můžete je vždy nasměrovat na alternativní soubor protokolu, abyste je dostali z vašeho /var/log/syslog
prostřednictvím souboru /etc/syslog.conf
konfigurační soubor pro syslog
.