GNU/Linux >> Znalost Linux >  >> Linux

CentOS / RHEL:Průvodce cronem pro začátečníky

Cron je plánovač úloh založený na čase, je nakonfigurován tak, aby spouštěl příkazy v daných časech nebo intervalech. Každý uživatel má tabulku cron, která definuje, co se má spustit a v jakém intervalu. crontab příkaz se používá k vytváření, úpravě a prohlížení úloh cron.

Konfigurační soubory a adresáře

– Cron je řízen sadou souborů zvaných crontabs.
– Hlavní soubor je v /etc/crontab , spolu se soubory crontab pro uživatele v /var/spool/cron/ . V druhém adresáři mají soubory stejné jméno jako uživatelské jméno uživatele.
– Soubor /etc/crontab automaticky spouští položky v několika podadresářích v pravidelných intervalech. Skripty jsou umístěny v různých adresářích – /etc/cron.* probíhají podle níže uvedeného časového intervalu. Všechny skripty v těchto adresářích jsou spouštěny s oprávněním root.

Adresář Čas
/etc/cron.hourly První minuta každé hodiny
/etc/cron.daily Každý den od 3:05 do 22:55
/etc/cron.weekly Mezi 3:25 a 23:10 po 7 dnech od posledního spuštění
/etc/cron.monthly Mezi 3:45 a 23:30 po měsíci od posledního spuštění

– Vše, co sysadmin musí udělat, je umístit skript shellu nebo odkaz na spustitelný soubor do jednoho z adresářů a ten se automaticky spustí ve vhodnou dobu.

syntaxe crontab

Nastavení crontab na uživatelské úrovni je poněkud odlišné. Soubory ve /var/spool/cron se přímo neupravují. Místo toho se k jejich manipulaci používá program zvaný crontab. Syntaxe příkazu crontab je :

Usage:
 crontab [options] file
 crontab [options]
 crontab -n [hostname]

Options:
 -u [user]  define user
 -e         edit user's crontab
 -l         list user's crontab
 -r         delete user's crontab
 -i         prompt before deleting
 -n [host]  set host in cluster to run users' crontabs
 -c         get host in cluster to run users' crontabs
 -s         selinux context
 -x [mask]  enable debugging

Jak upravit crontab

Nejlepší způsob, jak upravit crontab, je pomocí příkazu crontab -e . Další způsob, jak to udělat, je:

1. su to the user whose cron you want to change
2. crontab -l > file      [ copy the crontab to a file ].
3. vi file                [ make changes to the file as per your need ]
4. crontab file           [ this makes the "file" as new crontab ]

Poté již není potřeba restartovat cron démona.

Interpretace polí času a data

Každý příkaz cron má 5 polí pro čas a datum, za nimiž následuje uživatelské jméno [volitelné], a pokud se jedná o systémový soubor crontab, bude následovat příkaz. Příkazy se provádějí, když se čas zadaný v polích čas/datum shoduje s aktuálním časem.

field          allowed values
-----          --------------                  
minute         0-59                  
hour           0-23                  
day of month   0-31                  
month          0-12 (or names, see below)                  
day of week    0-7 (0 or 7 is Sun, or use names)

Pole může být hvězdička (*), která vždy znamená od prvního do posledního . Takže při použití v poli měsíc to znamená každý měsíc od 0 (ledna) do 12 (prosinec).

Příklad úlohy Cron:

# Example of job definition:
 .---------------- minute (0 - 59)
 |  .------------- hour (0 - 23)
 |  |  .---------- day of month (1 - 31)
 |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
 |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
 |  |  |  |  |
 0  1  *  *  *  [user-name] [command to be executed]

Příklady nastavení úloh cron

Níže je uvedeno několik příkladů použití crontab, abyste pochopili, jak naplánovat úlohu:
Příklad: spuštění úlohy pět minut po půlnoci každý den:

5 0 *  *  *     /home/oracle/scan_asm_devices.sh

Příklad: spuštění úlohy v 17:30 každého 1. dne v měsíci:

30 17 1  *  *   mail -s "It's 5:30pm"

Příklad: Spuštění zakázky každé pondělí ve 4:05.

5  4  *  *  mon     echo "run at 5 after 4 every monday"

Řízení přístupu uživatelů

– Chcete-li uživatelům umožnit přístup k crontabs, lze k povolení nebo zamítnutí přístupu použít soubory /etc/cron.allow a /etc/cron.deny. Jednoduše vložte jedno uživatelské jméno do jednoho ze 2 souborů, abyste povolili nebo odepřeli přístup k crontab.
– Pokud soubor /etc/cron.allow existuje, soubor /etc/cron.deny nebude použit.
– Ve výchozí instalaci bude existovat pouze prázdný soubor /etc/cron.deny.
– Pokud žádný ze souborů neexistuje, přístup k plánování úlohy prostřednictvím cronu bude mít pouze uživatel root.


Linux
  1. Cron Job:Komplexní průvodce pro začátečníky 2022

  2. CentOS / RHEL 7:Průvodce firewallem pro začátečníky

  3. CentOS / RHEL:Průvodce vsftpd pro začátečníky (instalace a konfigurace)

  1. Konečný průvodce upgradem jádra na CentOS/RHEL/Fedora

  2. Průvodce pro začátečníky k automatickému připojení souborových systémů v CentOS / RHEL

  3. Průvodce pro začátečníky NFS v CentOS / RHEL

  1. Automatizujte systémové úlohy pomocí crontab na CentOS 7

  2. CentOS / RHEL 7:Průvodce pro začátečníky k cílům systemd (náhrada úrovní spuštění SysV init)

  3. CentOS / RHEL 7:Průvodce pro začátečníky systemd