Терминал Linux #7.1 - crontab: запуск задач по расписанию
Cuprins:
- Ce este fișierul Crontab
- Sintaxă și operatori Crontab
- Fișiere Crontab la nivel de sistem
- Macro predefinite
- Comanda Linux Crontab
- Variabile Crontab
- Restricții Crontab
- Exemple de locuri de muncă Cron
- Concluzie
Cron este un demon de planificare care execută sarcini la intervale specificate. Aceste sarcini se numesc job cron și sunt utilizate în cea mai mare parte pentru automatizarea întreținerii sau administrării sistemului.
De exemplu, puteți seta o lucrare cron pentru a automatiza sarcini repetitive, cum ar fi backupul bazelor de date sau a datelor, actualizarea sistemului cu cele mai recente corecții de securitate, verificarea utilizării spațiului pe disc, trimiterea de e-mailuri etc. Unele aplicații, cum ar fi Drupal sau Magento, necesită lucrări cron pentru a efectua anumite sarcini.
Lucrările cron pot fi programate să funcționeze cu un minut, o oră, o zi din lună, o lună, o zi a săptămânii sau orice combinație dintre acestea.
Ce este fișierul Crontab
Crontab (tabelul cron) este un fișier text care specifică programul lucrărilor cron. Există două tipuri de fișiere crontab. Fișiere crontab la nivel de sistem și fișiere individuale crontab pentru utilizatori.
Fișierele crontab ale utilizatorilor sunt stocate după numele utilizatorului, iar locația lor variază în funcție de sistemele de operare. În sistemul bazat pe Red Hat, cum ar fi CentOS, fișierele crontab sunt stocate în directorul
/var/spool/cron
, iar fișierele Debian și Ubuntu sunt stocate în directorul
/var/spool/cron/crontabs
.
Deși puteți edita fișierele utilizatorului crontab manual, este recomandat să utilizați comanda
crontab
.
/etc/crontab
și fișierele din directorul
/etc/cron.d
sunt fișiere crontab la nivel de sistem care pot fi editate numai de către administratorii de sistem.
În majoritatea distribuțiilor Linux puteți, de asemenea, să puneți scripturi în directorii
/etc/cron.{hourly, daily, weekly, monthly}
,
/etc/cron.{hourly, daily, weekly, monthly}
,
/etc/cron.{hourly, daily, weekly, monthly}
,
/etc/cron.{hourly, daily, weekly, monthly}
, iar scripturile vor fi executate la fiecare
hour/day/week/month
.
Sintaxă și operatori Crontab
Fiecare linie din fișierul user crontab conține șase câmpuri separate printr-un spațiu urmat de comanda care trebuie rulată.
* * * * * command(s) - - - - - | | | | | | | | | ----- Day of week (0 - 7) (Sunday=0 or 7) | | | ------- Month (1 - 12) | | --------- Day of month (1 - 31) | ----------- Hour (0 - 23) ------------- Minute (0 - 59)
Primele cinci câmpuri pot conține una sau mai multe valori, separate printr-o virgulă sau o gamă de valori separate printr-o cratime.
-
*-Operatorul de asterisk înseamnă orice valoare sau întotdeauna. Dacă aveți simbolul asterisc în câmpul Ora, înseamnă că sarcina se va efectua în fiecare oră.,-Operatorul de virgule vă permite să specificați o listă de valori pentru repetare. De exemplu, dacă aveți1, 3, 5în câmpul Ora, sarcina se va desfășura la 1 dimineața, 3 dimineața și 5 dimineața. --Operatorul cratima vă permite să specificați o gamă de valori. Dacă aveți1-5în câmpul Ziua săptămânii, sarcina se va desfășura în fiecare zi săptămânală (de luni până vineri)./-Operatorul slash vă permite să specificați valori care se vor repeta pe un anumit interval între ele. De exemplu, dacă aveți*/4în câmpul Ora, înseamnă că acțiunea va fi efectuată la fiecare patru ore. Este identic cu specificarea0, 4, 8, 12, 16, 20. În loc de asterisc înainte de operatorul de slash, puteți utiliza, de asemenea, o gamă de valori,1-30/10înseamnă la fel ca1, 11, 21.
Fișiere Crontab la nivel de sistem
Sintaxa fișierelor crontab din întregul sistem este ușor diferită de cea a utilizatorilor crontab. Conține un câmp de utilizator obligatoriu suplimentar care specifică ce utilizator va rula lucrarea cron.
Există mai multe macro-uri speciale pentru programul Cron utilizate pentru a specifica intervale comune. Puteți utiliza aceste comenzi rapide în locul specificației date cu cinci coloane. Comanda crontab vă permite să instalați sau să deschideți un fișier crontab pentru editare. Puteți utiliza comanda crontab pentru a vizualiza, adăuga, elimina sau modifica lucrări cron folosind următoarele opțiuni: Comanda crontab deschide fișierul crontab folosind editorul specificat de variabilele de mediu
Demonul cron stabilește automat mai multe variabile de mediu. Administratorii de sistem pot controla ce utilizatori au acces la comanda
În mod implicit, doar fișierul
Dacă fișierul
Dacă niciun fișier nu există, numai utilizatorii cu privilegii administrative pot utiliza comanda
Mai jos sunt câteva exemple de job cron care vă vor arăta cum să programați o sarcină pentru a rula pe perioade de timp diferite. Rulați o comandă la 15:00 în fiecare zi, de luni până vineri: Rulați un script la fiecare 5 minute și redirecționați ieșirea standard către
Rulați două comenzi în fiecare luni la 15:00 (folosiți operatorul
Rulați un script PHP la fiecare 2 minute și scrieți ieșirea într-un fișier: Rulează un script în fiecare zi, în fiecare oră, pe oră, de la 8 AM până la 16:00: Rulați un scenariu în prima zi de luni a fiecărei luni, la 7 dimineața Rulează scenariul la 21:15, în 1 și 15 din fiecare lună: Setați
Ați învățat cum să creați joburi cron și să programați sarcinile la o anumită dată și oră. Simțiți-vă liber să lăsați un comentariu dacă aveți întrebări.
* * * * * command(s)
* * * * * command(s)
Macro predefinite
@yearly
(sau
@annually
) - Rulați sarcina specificată o dată pe an la miezul nopții (12:00 am) de 1 ianuarie. Echivalent cu
0 0 1 1 *
.
@monthly
- Rulați sarcina specificată o dată pe lună la miezul nopții din prima zi a lunii. Echivalent cu
0 0 1 * *
.
@weekly
- Rulați sarcina specificată o dată pe săptămână la miezul nopții duminică. Echivalent cu
0 0 * * 0
.
@daily
- Rulați sarcina specificată o dată pe zi, la miezul nopții. Echivalent cu
0 0 * * *
.
@hourly
- Rulați sarcina specificată o dată pe oră la începutul orei. Echivalent cu
0 * * * *
.
@reboot
- Rulați sarcina specificată la pornirea sistemului (timp de pornire).Comanda Linux Crontab
crontab -e
- Editați fișierul crontab sau creați unul dacă acesta nu există deja.
crontab -l
- Afișează conținutul fișierului crontab.
crontab -r
- Ștergeți fișierul dvs. crontab actual.
crontab -i
- Ștergeți fișierul dvs. crontab actual cu o solicitare înainte de eliminare.
crontab -u
VISUAL
sau
EDITOR
.
Variabile Crontab
PATH=/usr/bin:/bin
. Dacă comanda apelată este prezentă în calea specificată cron, puteți utiliza calea absolută către comandă sau puteți modifica variabila cron
$PATH
. Nu puteți adăuga implicit
:$PATH
așa cum s-ar face cu un script obișnuit. Shell-ul implicit este setat pe
/bin/sh
. Puteți seta o coajă diferită modificând variabila
SHELL
invocă comanda din directorul de acasă al utilizatorului. Variabila
HOME
poate fi anulată prin setări în crontab. Notificarea prin e-mail este trimisă proprietarului crontab. Pentru a suprascrie comportamentul implicit, puteți utiliza variabila de mediu
MAILTO
cu o listă (separată prin virgulă) cu toate adresele de e-mail pe care doriți să le primiți notificările prin e-mail. Dacă
MAILTO
este definit, dar gol (
MAILTO=""
), nu se trimite nicio mail.Restricții Crontab
crontab
folosind fișierele
/etc/cron.allow
și
/etc/cron.allow
. Fișierele constau dintr-o listă de nume de utilizator, un nume de utilizator pe linie.
/etc/cron.deny
există și este gol, ceea ce înseamnă că toți utilizatorii pot utiliza comanda crontab. Dacă doriți să refuzați accesul la comenzile crontab unui anumit utilizator, adăugați numele de utilizator la acest fișier.
/etc/cron.allow
există numai utilizatorii care sunt enumerați în acest fișier pot utiliza comanda
crontab
.
crontab
.Exemple de locuri de muncă Cron
0 15 * * 1-5 command
dev null
, numai eroarea standard va fi trimisă la adresa de e-mail specificată:
[email protected] */5 * * * * /path/to/script.sh > /dev/null
&&
între comenzi):
0 15 * * Mon command1 && command2
*/2 * * * * /usr/bin/php /path/to/script.php >> /var/log/script.log
00 08-16 * * * /path/to/script.sh
0 7 1-7 * 1 /path/to/script.sh
15 9 1, 15 * * /path/to/script.sh
PATH
personalizate
HOME
,
PATH
,
SHELL
și
MAILTO
și executați o comandă în fiecare minut.
HOME=/opt PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin SHELL=/usr/bin/zsh [email protected] */1 * * * * command
Concluzie
Le Web 08: Startup Planificarea "Facebookification" a Web
O temă comună: rețeaua socială
BrowserLab oferă dezvoltatorilor Web o imagine mai bună a lucrărilor lor
Adobe Labs oferă o previzualizare gratuită a browserului său, un serviciu online capabil să redarea paginilor web așa cum vor apărea într-o varietate de medii de browser
ÎN această epocă online, unde majoritatea lucrărilor dvs. se desfășoară pe Internet, aveți nevoie de o protecție adecvată împotriva snoopers etc. Există oameni și oameni care colectează informații despre dvs. și îl folosesc pentru beneficiile proprii. Acoperim diferite metode pentru a rămâne în siguranță pe Internet. Această revizuire a
KeyScrambler Personal Free







