GNU/Linux >> Znalost Linux >  >> Linux

Děláte tyto Cron Jobovy chyby?

Otázka: Proč se moje úloha cron nespustí v určený čas?

Odpověď: Může existovat mnoho důvodů, proč se úloha cronu nemusí provést. Podívejme se na 5 důležitých důvodů, proč se úloha cron nespustí v určený čas a jak tyto problémy vyřešit.

1. Nesprávná interpretace časového pole a zadávání nesprávných hodnot.

Nesprávná interpretace časového pole a dané hodnoty v časovém poli, které neuvádí očekávaný/zamýšlený čas.

Chcete-li například provést příkaz ve 20:00, měli byste zadat čas ve 24hodinovém formátu. tj. 20:00 je 20 a ne 8, jak je uvedeno níže.

0 8 * * * /home/ubuntu/full-backup
[Note: The is wrong for 8 p.m]
0 20 * * * /home/ubuntu/full-backup
[Note: This is correct for 8 p.m]

Přečtěte si náš tutoriál Linux Crontab:15 úžasných příkladů úloh Cron, abyste crontab hluboce porozuměli. Jeden z našich pravidelných čtenářů Binny vytvořil webové rozhraní, které bude generovat položky cron, když v uživatelském rozhraní vyberete vhodné hodnoty pro různá pole crontab.

2. Neplatná cesta ke skriptu Shell nebo příkazům v crontab

Ujistěte se, že je v crontab zadaná úplná cesta ke skriptu shellu.

0 8 * * * tape-backup
[Note: Invalid. No full path specified]

0 8 * * * /home/debian-os/bin/tape-backup
[Note: Valid. This is correct with full path]

Poznámka: Pokud nechcete v crontab uvádět celou cestu, nezapomeňte do crontab přidat proměnnou PATH (příklad #14)

3. Žádné oprávnění ke spuštění pro skript Shell v Cron

Možná jste zadali správný příkaz se správnou cestou, ale příkaz nemusí mít oprávnění ke spuštění. Pokud používáte standardní unixové příkazy, pak bude mít výchozí oprávnění ke spuštění.

Pokud však používáte nějaké uživatelsky definované příkazy (shellové skripty), ujistěte se, že jim dáváte oprávnění ke spuštění, jak je uvedeno níže.

*/15 * * * * /home/fedora-os/check-disk-space
[Note: Executes check-disk-space every 15 minutes]

# cd /home/fedora-os
# chmod u+x check-disk-space

4. % věku v příkazu Cron Job nebo Shell Script

Pokud má příkaz % v sobě, váš příkaz nebude proveden. Chcete-li porozumět tomu, jak tento problém vyřešit, přečtěte si naše předchozí časté dotazy k problému s % věku Crontab.

5. Sysadmin zakázal provádět Cron Job

Správce systému může rozhodnout, který uživatel může spouštět úlohy cron a který uživatel ne. Chcete-li tedy uživateli odepřít provedení úlohy cron, sysadmin mohl umístit vaše uživatelské jméno do souboru /etc/cron.deny.

Pokud máte oprávnění root, zkontrolujte soubor /etc/cron.deny, abyste se ujistili, že tam není uvedeno vaše jméno. Pokud je uveden, upravte soubor a odstraňte své jméno. Pokud nemáte oprávnění root, kontaktujte svého správce systému.


Linux
  1. Cron úloha se neprovádí?

  2. Jak nastavit úlohu Cron

  3. Jak nastavit úlohu cron, aby každou hodinu spouštěla ​​spustitelný soubor?

  1. Otestujte týdenní úlohu cronu

  2. Linux:Spusťte úlohu cron v popředí

  3. cron občas neběží

  1. Jak nastavit úlohu Cron v TrueNAS

  2. Cron Job Use &Policy

  3. Odstraňte soubory protokolu pomocí úlohy cron