GNU/Linux >> Znalost Linux >  >> Linux

Jak úplně umlčet Cronjob do /dev/null/?

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 .


Linux
  1. Linux:Rozdíl mezi /dev/console, /dev/tty a /dev/tty0?

  2. Jak přenosné jsou /dev/stdin, /dev/stdout a /dev/stderr?

  3. Kdy použít /dev/random vs /dev/urandom?

  1. Jak namapovat zařízení /dev/sdX a /dev/mapper/mpathY ze zařízení /dev/dm-Z

  2. Co jsou soubory /dev/zero a /dev/null v Linuxu

  3. Jak zaměníte /dev/sda s /dev/sdb?

  1. Kdy mám použít /dev/shm/ a kdy /tmp/?

  2. Linux:Rozdíl mezi /dev/console , /dev/tty a /dev/tty0

  3. jádro:deaktivace /dev/kmem a /dev/mem