5 Crontab példa a Linux -feladatok automatizálásához

5 Crontab példa a Linux -feladatok automatizálásához

A cron program automatizálja más programok végrehajtását Linuxon. A Cron egy démon, amely folyamatosan fut, és más programokat indít egy adott ütemezés szerint. Több különböző fájl határozza meg ezt az ütemezést. Egyedül crontabs néven ismertek.





A Cron bármilyen Unix parancsot vagy feladatot ütemezhet. Néha egy egyszerű paranccsal szeretne dolgozni. Más esetekben forgatókönyvet kell írnia a teljes feladat végrehajtásához. Cron mindkét módszerrel jól működik. Támogatja továbbá a bonyolult ütemezési szabályokat és a szkript kimenetének rugalmas kezelését.





Akár egyszerű felhasználói feladatokat végez, akár teljes körű rendszergazdálkodást végez, elengedhetetlen a cron működésének megértése gyakorlati példák segítségével.





1. Fel /tmp tisztítása rendszerszintű Crontab segítségével

Az /tmp könyvtár egy ideiglenes hely, amelyet a rendszer bármely programja vagy felhasználója általánosan használhat. Sok Unix rendszer az indítás során törli a /tmp könyvtár régi fájljait. Mások ütemezik ezt a műveletet, gyakran a cron segítségével.

Ha azonban egyéni vezérlést szeretne e folyamat felett, vagy egy másik könyvtárba szeretné alkalmazni, akkor a gyors cron feladat beállítása egyszerű módja ennek.



Íme a tisztítás /tmp, vagy bármely más választott könyvtár tisztítási módja:

1 3 * * * /usr/bin/find /tmp -type f -atime +10 -delete

A cron minden nap egy perccel három óra után végrehajtja ezt a parancsot. Használja a find parancs fájlok kereséséhez a /tmp könyvtárban. Ez kiszűri a szokásos fájlok kivételével mindent, amelyet legutóbb legalább 10 napja módosítottak. Ezután eltávolítja az összes talált fájlt.





Hozzá kell adnia egy ilyen parancsot egy globális crontabhoz, mint például /etc/crontab vagy a root crontab használatával sudo crontab -e . A parancsot rootként kell futtatni, hogy törölje a /tmp fájlokat, függetlenül attól, hogy ki a tulajdonosuk.

Ne feledje, hogy ez a példa a find parancs teljes elérési útját adja meg. Cron egy alapot használ PATH beállítás végrehajtható fájlok keresésére, tehát ha a parancs szabványos helyen van (pl /usr/bin ), ez nem igazán szükséges. Megadhat egy alternatív útvonalat a crontab -ban, ha ezt a megközelítést részesíti előnyben. De a teljes útvonal használata parancsokhoz egy kicsit rugalmasabb.





Ha olyan projekten dolgozik, amely naplókat ír vagy tárolja a gyorsítótárazott adatokat, ez a fajta megközelítés létfontosságú lehet, ha fájlokat töröl a lemezterület felszabadítása érdekében. Bár a fenti példa gyors és piszkos megközelítés, olyan parancsot kell használnia, mint például tmpwatch , ha elérhető.

2. Az adatbázisok biztonsági mentései naponta kétszer

Mostantól kezdve összpontosítsunk azokra a felhasználó-specifikus feladatokra, amelyeket a helyi crontab segítségével kezelhet. A következő paranccsal szerkesztheti jelenlegi felhasználó crontab -ját:

crontab -e

Ennek a crontabnak olyan feladatokat kell tartalmaznia, amelyek az Ön felhasználói fiókjára jellemzőek. Képzelje el, hogy egy projekten dolgozik, amely magában foglal egy MySQL adatbázis feltöltését. Használhatja a mysqldump eszköz egy teljes adatbázis SQL dumpjának létrehozásához. A kimenet átirányításával egyszerű, ütemezett adatbázis biztonsági mentéseket készíthet.

30 4 * * * /usr/local/mysql/bin/mysqldump --login-path=local --databases albums > /tmp/album-db.$(date +\%s).sql

Alapértelmezés szerint a cron e -mailben küldi el a kimenetet (beleértve a hibákat is) annak a felhasználónak, akihez a crontab fájl tartozik. De ugyanúgy átirányíthatja a kimenetet, mint a parancssorból, a > fájlnév jelölés.

mit kezdjünk a régi síkképernyős monitorokkal

Vegye figyelembe, hogy a fenti példa hogyan használja a parancshelyettesítést a fájlnév létrehozásához az aktuális Unix időbélyeg alapján. Mert a % szimbólum különleges jelentéssel bír a cron számára, a parancsnak el kell menekülnie előtte, az előző fordított perjelekkel.

3. A webhely üzemidejének ellenőrzése egyéni parancsfájllal

Talán észrevette, hogy az utolsó példában szereplő parancs kellemetlenül hosszú volt. Szerencsére semmi sem akadályoz meg abban, hogy parancsokat mentsen el egy parancsfájlba, és futtassa a parancsfájlt a crontab segítségével. Íme egy példa, amely percenként futtat egy szkriptet:

* * * * * /Users/bobby/bin/site-monitor.sh

Vegye figyelembe, hogy elméletileg használhatja a ITTHON változó vagy tilde bővítés rövidebb parancshoz:

* * * * * ~/bin/site-monitor.sh

Eldöntheti, hogy ezt elkerülje, arra az esetre, ha a cron abbahagyja a támogatást. A teljes útvonal használata nem árt, és vitathatatlanul olvashatóbb.

Maga a szkript a curl programot használja a lekéréshez HTTP állapotkód adott URL -hez. Ha az állapot a sikeren kívül mást is jelez, a szkript üzenetet ír a kimenetre.

Amint korábban említettük, a cron ezt a kimenetet e -mailben elküldi nekünk. Hasznos lehet, ha a parancsok a cronban nem eredményeznek eredményt.

#!/bin/bash
STATUS=`curl -s -o /dev/null -I -w '%{http_code}' http://example.com/`
if [ '$STATUS' != '200' ]
then
echo 'site appears to be down'
fi

4. Lemezterület -jelentések e -mailben

Ha módosítani szeretné a cron alapértelmezett levelezési viselkedését, használhatja a MAILTO környezeti változó. A Cron néhány változót támogat, amelyeket beállíthat a crontab fájlban. A Cron ezután alkalmazza ezeket a változókat minden következő parancs környezetére.

Alternatív cél -e -mail cím beállításához használja a következő formátumot:

MAILTO=user@example.com

Ezt olyan gépen kell futtatnia, amely szükség esetén külső e -mail küldésére van beállítva. Íme egy példa, amely e -mailt küld egy másik felhasználónak ugyanazon a gépen. Naponta kétszer, 12:00 és 23:00 órakor közlekedik. Az df parancs a szabad lemezterületet jeleníti meg, így ez a crontab bejegyzés delegálja a lemezterület rendben lévő állapotának ellenőrzését:

MAILTO='sarah'
0 12,23 * * * /bin/df -h

A kapott e -mail valahogy így fog kinézni:

Ne feledje, hogy a cron saját egyéni e -mail fejléceket ad hozzá. Ezek hasznosak lehetnek a hibakeresésben. Üres karakterlánccal letilthatja a cron alapértelmezett levelezési viselkedését is:

MAILTO=''

5. Üzenetet sugározhat meghatározott időpontokban

A többi példa meglehetősen egyszerű ütemezést használ, de a cron támogatja az idő specifikációinak hatékony szintaxisát. Nem csak a pontos egyezéseket kezeli, hanem a következőket is:

  • Több érték vesszővel elválasztva ( , )
  • Kötőjellel megadott tartományok ( - )
  • Lépésértékek perjel után ( / )

Így például, ha üzenetet szeretne küldeni minden bejelentkezett felhasználónak, óránként kétszer munkaidőben, de csak három óránként, akkor elegendő a következő:

0 15,45 9-17/3 ? * * * echo 'Enjoy your work!' | wall

Ez a parancs az óra után 15 és 45 perccel hajtódik végre, háromóránként 9 és 17 óra között. A fal parancs üzenetet küld minden bejelentkezett terminál felhasználónak.

Még azt is tapasztalhatja, hogy a cron rugalmasabb ütemezést kínál, mint a naptár alkalmazása. Egyes variációk lehetővé teszik, hogy olyan parancsokat adjon meg, amelyeket egy hónap második péntekén vagy egy adott dátumhoz legközelebb eső hétköznap kell végrehajtani.

A Cron sokféle Linux -feladatot képes automatizálni

Ez egy kis válogatás azokból a feladatokból, amelyeket a cron segíthet automatizálni. Eltarthat egy ideig, amíg megszokja a komplex szintaxist, de a cron hatékony eszköz. A cron-t használhatja mind a rendszerszintű, mind a felhasználó-specifikus feladatokhoz.

A bonyolult ütemezési szintaxissal a cron erőteljes, de valószínűleg jó hivatkozással kell rendelkeznie. A Crontabs engedélyezi a megjegyzéseket, ezért érdemes hozzáfűznie egy megjegyzés sort a sajátjához az időmezők dokumentálásához.

Részvény Részvény Csipog Email A Crontab használata az ismétlődő feladatok automatizálásához Linux alatt

Szeretne időt spórolni és automatizálni a kulcsfontosságú folyamatokat Linuxon? A Crontab a válasz.

Olvassa tovább
Kapcsolódó témák
  • Linux
  • Számítógépes automatizálás
  • Feladat automatizálása
  • Linux parancsok
A szerzőről Bobby Jack(58 cikk megjelent)

Bobby technológiai rajongó, aki két évtized nagy részében szoftverfejlesztőként dolgozott. Szenvedélyesen szereti a játékot, a Switch Player Magazin Vélemények szerkesztőjeként dolgozik, és elmerül az online közzététel és webfejlesztés minden területén.

hogyan lehet a Windows 10 -et Windows Vista -hoz hasonlítani
Továbbiak Bobby Jack -től

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide