A Cron egy hatékony és népszerű parancssori segédprogram, amelyet a feladatok széles skálájának ütemezésére használnak egy meghatározott időpontban, felhasználói interakció nélkül. Az ütemezett feladatokat cron-munkáknak nevezik, míg a crontab a cron-feladatokat tartalmazó fájl listája.
Ebben a cikkben különféle példákkal elmagyarázzuk, hogyan szerkesztheti és használhatja a crontab fájlt a feladatok ütemezéséhez a Debian 10 rendszerben.
A Cron a feladatok automatizálására használható a következő esetekben:
- Ütemezett biztonsági mentések futtatása,
- A lemezterület ellenőrzése meghatározott időközönként,
- Automatikus karbantartás futtatása,
- Időnként eltávolítja a nem kívánt fájlokat,
- Hálózati diagnosztika futtatása
Szintaxis
Könnyebb a cronnal dolgozni, ha már megérti a szintaxisát. A cron használatának általános szintaxisa:
* * * * / path / to / script.SHMindegyik mező megfelel a következőknek:
Perc (0-59) Óra (0-24) Hónap_nap (1-7) Év_hónap (1-12)Day_of_the_Week (0-6) parancs
A Cron telepítése
A Cron előre telepítve van a Debian 10-be. Ha azonban hiányzik a rendszerből, futtassa a következő parancsot a telepítéshez:
$ sudo apt install cronNézd meg a crontab-ot
A crontab fájl megtekintéséhez használja a következő parancsot:
$ crontab -lEgy adott felhasználó crontab fájljának megtekintéséhez használja a következő parancsot:
$ sudo crontab -u felhasználó -lSzerkesztés crontab
Az aktuális felhasználó crontab fájljának szerkesztése:
$ crontab -eEgy adott felhasználó crontab fájljának szerkesztése:
$ sudo crontab -u felhasználóHa először szerkeszti a crontab fájlt, akkor felkérést kap egy szerkesztő kiválasztására:
A szerkesztő kiválasztása után a következő ablak jelenik meg.
Például egy „backup” nevű biztonsági mentési parancsfájlt akar futtatni.sh ”naponta 2:00 órakor található a dokumentumjegyzékben. Ehhez hozzá kell adnia a következő sort a crontab fájlba:
0 2 * * * / Dokumentumok / biztonsági mentés.SH
A fenti ablakban egyesével hozzáadhatja cron-feladatait. Ha elkészült, mentse és lépjen ki a fájlból, majd az összes cron-feladat automatikusan lefut a megadott időközönként.
Távolítsa el a crontabot
A crontab fájl eltávolításához írja be a következő parancsot a terminálba:
$ crontab -rMost áttekinthetünk egy példát a cron feladatokról egy linuxos gépen.
1. Futtasson minden percben egy cron munkát
A cron-feladat percenként történő végrehajtásához adja hozzá a következő sort a crontab-fájljához:
* * * * * / path / to / script.SH2. Futtasson cron munkát 10 percenként
A cron-feladatok 10 percenként történő végrehajtásának ütemezéséhez adja hozzá a következő sort a crontab fájljához.
* / 10 * * * * / path / to / script.SH3. Futtasson cron munkát meghatározott hónapokban
A cron-feladat ütemezésének végrehajtása meghatározott hónapokra e.g. Március, augusztus, december a következő módon adja hozzá a cron feladatot a crontab fájljához:
* * * jan, május, aug * / path / to / script.SH4. Futtasson cron munkát a kiválasztott napokon
Ha azt szeretné, hogy a cron munkáját meghatározott napokon hajtsa végre, tegyük fel, hogy vasárnap és pénteken 17 órakor, annak a következőképpen kell kinéznie:.
0 17 * * sun, fri / path / to / script.SH5. Futtasson naponta egy cron munkát egy adott időpontban
A cron-feladat ütemezésének napi végrehajtását egy adott időpontban, mondjuk hajnali 3-kor, vegye fel ezt a sort a crontab fájlba.
0 3 * * * / path / to / script.SH6. Futtasson cron munkát egy adott napon
Ha azt szeretné, hogy egy cron feladatot egy adott napon végezzen el, mondjuk minden vasárnap, adja hozzá ezt a sort a crontab fájlba.
0 0 * * SUN / path / to / script.SHA munka minden vasárnap 00:00 órakor lesz.
7. Futtasson több feladatot egyetlen cron jobban
Több feladat ütemezéséhez egyetlen cron jobban adja hozzá az összes szkriptet a crontab fájlhoz pontosvesszővel elválasztva.
* * * * * / path / to / script1.SH; / path / to / script2.SH8. Futtasson egy cron munkát minden hétköznap
Ahhoz, hogy egy cron feladatot a hét minden napján, hétfőtől péntekig kell végrehajtani, hozzá kell adnia ezt a sort a crontab fájlba.
0 0 * * 1-5 / path / to / script.SHA munka minden hétköznap 00:00 órakor lesz.
9. Futtasson cron munkát naponta kétszer
Egy munka ütemezésének napi kétszeri futtatására e.g. 6 és 15 órakor ezt a sort kell hozzáadnia a crontab fájlba:
0 6,15 * * * / path / to / script.SH10. Óránként futtasson cron munkát
A cron-feladat ütemezésének óránkénti végrehajtására a 0. percben azt a sort kell hozzáadnia a crontab fájlban:
0 * * * * / path / to / script.SHPéldául, ha a jelenlegi idő 14 óra, akkor a munka 15: 00-kor, 16: 00-kor és így tovább fog futni.
11. Futtasson cron munkát 3 óránként
A cron-feladat ütemezésének 3 óránként történő ütemezéséhez a 0. percben meg kell adnia ezt a sort a crontab fájlban:
0 * / 3 * * * / path / to / script.SHPéldául, ha a jelenlegi idő 14 óra, akkor a munka 17: 00-kor, 20: 00-kor és így tovább fog futni.
12. Futtassa a cron munkát minden hónap első napján 16:00 órakor
A munka ütemezéséhez úgy kell ütemezni, hogy minden hónap első nap 16: 00-kor fusson, ezt a sort kell hozzáadnia a crontab fájlba:
0 16 1 * * / path / to / script.SHVonósok a Crontab-ban
A hosszú, ismétlődő parancsok helyett a következő karakterláncokat is használhatja.
@ óránkénti - Futtasson cron munkát óránként i.e. „0 * * * *“@ éjfél- Futtasson cron munkát minden nap i.e. „0 0 * * *“
@ naponta - ugyanaz, mint éjfél
@ heti - futtasson cron munkát minden héten, i.e. „0 0 * * 0“
@ havonta - futtasson havonta cron munkát, i.e. „0 0 1 * *“
@ évente- futtasson cron munkát minden évben i.e. „0 0 1 1 *”
@ évente - ugyanaz, mint @ évente
@ reboot- Futtasson cron munkát minden indításkor
Például a cron-feladat futtatásához minden nap az első percben és az első órában adja hozzá a következő sort:
@daily / path / to / script.SHPéldául a szerver újraindításakor a cron job futtatásához:
@reboot / path / to / script.SHEnnyi van benne! Ebben a cikkben megtanultuk, hogyan lehet különféle feladatokat automatizálni a crontab segítségével a Debian rendszerben. A fenti példák felhasználásával bármilyen munkát ütemezhet úgy, hogy a felhasználó beavatkozása nélkül elindítsa.