/ Ako používať autorun crons? - bash, cron, centos

Ako sa autorun crons? - bash, cron, centos

Snažím sa získať súbor, ktorý bude automaticky spúšťaný pomocou programu crontab.

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/

*/5 * * * * php /path/to/script

Tento súbor som zavolal prod.cron do /etc/cron.d priečinok, ale nemôže sa to zdať, že to beží na to "vlastné. Spúšťanie skriptu priamo cez príkazový riadok ukazuje, že to funguje v poriadku, ale nie je isté, či sú súbory v cron.d automaticky detekované, alebo musím urobiť niečo iné, aby som ich initoval?

odpovede:

0 pre odpoveď č. 1

Všimnite si adresár /etc/cron.d je určený na použitie balíčkami, crontab by mali byť inštalované do používateľov crontab. Na základe týchto informácií skontrolujte nasledujúce Cron Issues:

  1. Skript nemá povolenia na vykonanie. Použite chmod a + x na poskytnutie povolení.
  2. V prípade php, perl alebo iných skriptovjazyk, cesta k interpretovi alebo programu nie je správna. Vždy poskytnite aktuálnu cestu interpret pri definovaní príkazu na spustenie v cron. Zistiť kde je program umiestnený, použite príkaz ifis. Napr. pre PHP, kde php. pre perl, kde php atď.
  3. Premenné prostredia potrebné na spustenieskript sú nedostupné. Cron nepoužíva rovnaké prostredie používateľa používa vlastné prostredie pri spustení príkazov. Takže premenné definované v .login alebo .profile nie sú pre neho viditeľné. Najčastejšie otázka súvisí s premennou PATH, ktorá nie je podobná.

0 pre odpoveď č. 2

Existujú dve príchute súboru cron.

Súbory inštalované pod /etc/cron.dsystém cron súbory. Vyžadujú, aby bolo 6. riadkom na každom riadku používateľským účtom, ktorý sa použil na spustenie príkazu. Pozrite si ďalšie súbory pod /etc/cron.d pre príklady.

Neštandardné súbory cron majú len 5 zvyčajných polí, ktoré špecifikujú, kedy sa úloha spustí, nasleduje príkaz na spustenie. Inštalujú sa crontab príkaz, vykonaný používateľským účtom, ktorý spustí príkaz (y). Toto je pravdepodobne čo chcete použiť.

Buď pridajte root ako 6. pole príslušnej linky alebo spustiť crontab prod.cron ako root (alebo akýkoľvek účet by mal spustiť príkaz).

A samozrejme sa uistite php príkaz je zadaný $PATH.