Profitați de comanda crontab Linux pentru a automatiza diverse sarcini banale și repetitive, simplificându-vă viața. Acest instrument excelent și ușor de utilizat, combinat cu unele scripturi, nu numai că poate automatiza tot felul de sarcini, ci ajută și la evitarea erorilor umane simple sau a uitării.
Aici veți afla ce este crontab, cum să adăugați joburi automate și câteva exemple din lumea reală.
Ce este Crontab?
Crontab este un proces de demon care rulează în fundal pe aproape toate mașinile Linux și este utilizat pentru a programa și executa sarcini automate la intervale de timp stabilite. De asemenea, este adesea folosit de dezvoltatorii de software pentru a rula sarcini care necesită mult timp în fundal.
Aceasta poate fi orice, inclusiv, dar fără a se limita la trimiterea de e-mailuri în lot, verificarea fluxului dvs. Twitter, efectuarea de copii de rezervă sau pur și simplu efectuarea unui memento.
Comenzi de bază Crontab
Fiecare utilizator Linux de pe aparat are propriul său fișier crontab, care conține activitățile lor crontab active. Iată câteva comenzi de bază ale terminalului pe care le veți utiliza pentru a vizualiza și modifica fișierul crontab:
- crontab-l Enumerați toate joburile crontab.
- crontab -e Editați fișierul crontab.
- crontab -r Eliminați toate intrările din fișierul crontab.
Comenzile de mai sus vor fi pentru utilizatorul actual fișier crontab. Dacă trebuie să modificați fișierul crontab al unui alt utilizator, pur și simplu utilizați -u opțiune. De exemplu, puteți edita fișierul jdoe fișierul crontab al utilizatorului cu comanda:
Doriți să gestionați mai bine utilizatorii pe Ubuntu Linux? Răspunsul este să creați grupuri, apoi să utilizați caracteristica Ubuntu add user.
sudo crontab -ujdoe -e
Formatul locurilor de muncă Crontab
Fiecare lucrare crontab este formată dintr-o singură linie și este formatată după cum urmează:
MINUT ORA ZI LUNĂ COMANDĂ SĂPTĂMÂNĂ
Tabelul de mai jos explică diferitele elemente ale jobului crontab:
Element | Ranage | Descriere |
---|---|---|
Minut | 0 - 59 | Minutul pentru a executa jobul crontab la. |
Ora | 0 - 23 | Ora de executare a lucrării crontab la. |
Zi | 1 - 31 | Ziua lunii la care se execută jobul crontab la. |
Lună | 1 - 12 | Luna în care se execută jobul crontab la. |
Ziua săptămânii | 0 - 6 | Ziua săptămânii la care se execută jobul crontab la. |
Comanda | Orice comandă Linux pe care o puteți executa pe terminal. |
Puteți utiliza un asterisc (*) în oricare dintre câmpuri pentru a denota un wildcard, ceea ce înseamnă că lucrarea crontab se va executa indiferent de perioada respectivă. De exemplu, jobul crontab de mai jos se va executa în fiecare seară exact la 3:20 dimineața:
20 3 * * * /root/backup.sh
Valori multiple
Fiecare perioadă de timp poate include, de asemenea, mai multe elemente. Puteți specifica valorile exacte separându-le cu o virgulă, iar lucrarea crontab de mai jos se va executa la fiecare oră la 20 și 50 de minute după oră:
20,50 * * * * /path/to/command.sh
Cu toate acestea, dacă doriți să executați lucrarea crontab la intervale specifice într-o perioadă de timp, puteți utiliza */PERIOADĂ, iar lucrarea crontab de mai jos se va executa automat la 15 minute după oră la fiecare trei ore:
15 * / 3 * * * /path/to/command.sh
Menținerea silențioasă a locurilor de muncă Crontab
În funcție de situație, poate doriți să eliminați toate ieșirile din lucrările crontab, astfel încât acestea să nu ajungă în folderul de e-mail al sistemului. Puteți face acest lucru prin anexare > / dev / null 2> & 1 la orice job crontab. De exemplu:
0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1
Adăugarea de locuri de muncă Crontab
În general, cea mai utilizată metodă pentru a adăuga sau modifica joburi crontab este crontab -e comanda. Rulați această comandă în terminal:
crontab -e
Aceasta va deschide un editor de text ca nano cu conținutul fișierului dvs. crontab. Fiecare lucrare crontab se află pe o singură linie și puteți adăuga, modifica și elimina linii după cum doriți. După ce ați terminat, salvați și închideți fișierul apăsând Ctrl + W, urmat de Da și introduce, care vor activa imediat toate lucrările crontab din fișier.
Comandă rapidă pentru a adăuga locuri de muncă
În loc să modificați manual fișierul crontab, există o singură comandă rapidă pe care o puteți executa pentru a adăuga o lucrare. De exemplu, dacă doriți să adăugați acest job crontab care rulează în fiecare duminică la ora 14:00:
0 14 * * 0 /path/to/command.sh
Puteți adăuga lucrarea în fișierul dvs. crontab cu comanda unică:
(crontab -l; ecou "0 14 * * 0 /path/to/command.sh";) | crontab
Comanda de mai sus listează pur și simplu toate lucrările aflate în prezent în fișierul dvs. crontab, tipărește noua lucrare și introduce totul crontab înlocuind conținutul acestuia.
Listarea / Eliminarea fișierului Crontab
Puteți lista toate lucrările active în prezent în fișierul dvs. crontab cu comanda:
crontab -l
De asemenea, puteți elimina toate lucrările crontab și puteți goli conținutul fișierului dvs. crontab cu comanda:
crontab -r
Exemplu: Joacă sunete!
Aveți nevoie de un memento rapid la fiecare două ore în timp ce lucrați pentru a vă informa că timpul a trecut? Prindeți clipul audio preferat în aproape orice format (.wav, .mp4, orice) și dacă este salvat la (de exemplu) /home/myuser/myalert.wav să-l joace automat cu jobul crontab:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Ce zici de a-ți oferi o plăcere plăcută de la săptămâna de lucru cu melodia preferată redată automat la 17:00 în fiecare vineri după-amiază? Prinde-ți clipul de melodie preferat și, dacă e salvat, spune /home/myuser/friday_song.mp4 ai adăuga jobul crontab:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Exemplu: Backup de fișiere cu Rsync
Una dintre numeroasele utilizări excelente ale crontab este capacitatea de a copia automat fișierele pe un server la distanță. Reduceți substanțial riscul de a pierde din nou date importante din nou excelent tutorial rsync.
Exemplu: Verificați dacă site-urile sunt online
Poate doriți să verificați automat la fiecare cinci minute dacă diferite site-uri sunt sau nu online și să fiți notificat prin e-mail dacă există vreunul dintre acestea. Iată un script PHP minunat, care va face exact asta.
php
// Adresa de e-mail pentru a notifica site-urile în jos
$ email = '[email protected]';
// Definiți adresele URL de verificat
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Accesați adresele URL
$ down = [];
foreach ($ urls ca $ url) {
// Verificați URL
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// Trimiteți e-mail dacă avem site-uri în jos
if (count ($ down)> 0) {
mail ($ e-mail, "Urgent - Site-uri jos!", "Botul dvs. a detectat următoarele site-uri momentan oprit:
". implode ("
", $ down));
}
// Exit
exit (0);
/ **
* Verificați adresa URL < br /> * /
funcție check_url (șir $ url): int
{
// Trimite prin cURL
$ ch = curl_init ();
curl_setopt ($ ch, CURLOPT_URL, $ url);
curl_setopt ($ ch, CURLOPT_FRESH_CONNECT, true);
curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); < > curl_setopt ($ ch, CURLOPT_FOLLOWLOCATION, adevărat);
$ response = curl_exec ($ ch);
// Obțineți starea și închideți conexiunea
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Returnare
returnare $ status;
}
Pur și simplu modificați adresa de e-mail și adresele URL dorite pentru a verifica în partea de sus a fișierului și salvați acesta undeva precum /home/myuser/check_sites.php . Pentru ca acest script să ruleze la fiecare cinci minute și să vă notifice prin e-mail pentru orice site-uri care nu funcționează, adăugați jobul crontab:
* / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1
Automatizează-ți viața!
Cu acest articol tu va înțelege, sperăm, puterea de automatizare a crontab și cum poate fi folosit pentru a automatiza multe dintre sarcinile banale și repetitive din viaţă.
Ați aflat ce este crontab, despre fișierul crontab, cum sunt formatate joburile crontab și câteva exemple din lumea reală despre modul în care poate fi utilizat.
Doriți să economisiți timp și să evitați sarcinile repetitive? Răspunsul este automatizarea! Iată câteva aplicații utile de automatizare desktop Linux pe care să le încercați.
- Programare
- Linux
Abonați-vă la Newsletter
Alăturați-vă newsletterului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!
One More Step!!!
Vă rugăm să confirmați adresa de e-mail în e-mail pe care tocmai v-am trimis-o.