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 alattSzeretne 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
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ítaniTová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