Használja ki a crontab Linux parancs előnyeit a mindennapi és ismétlődő feladatok automatizálására, egyszerűsítve az életét. Ez a kiváló és könnyen használható eszköz, néhány szkripteléssel kombinálva, nemcsak automatizálhat mindenféle feladatot, hanem segít elkerülni az egyszerű emberi hibákat vagy feledékenységet is.
Itt megtudhatja, mi az a crontab, hogyan adhat hozzá automatizált feladatokat, és néhány valós példát.
Mi a Crontab?
A Crontab egy démon folyamat, amely szinte az összes Linux-gépen a háttérben fut, és automatizált feladatok ütemezésére és végrehajtására szolgál meghatározott időközönként. A szoftverfejlesztők gyakran használják időigényes feladatok futtatásához a háttérben.
Ez bármi lehet, többek között, de nem kizárólag, kötegelt e-mailek küldése, Twitter-hírcsatornák ellenőrzése, biztonsági másolatok készítése vagy egyszerűen emlékeztető végrehajtása.
Alapvető Crontab parancsok
A gép minden Linux-felhasználójának megvan a saját crontab fájlja, amely tartalmazza az aktív crontab feladatait. Íme néhány alapvető terminálparancs, amelyekkel megtekintheti és módosíthatja a crontab fájlt:
- crontab-l Sorolja fel az összes crontab munkát.
- crontab -e Szerkessze a crontab fájlt.
- crontab -r Távolítsa el az összes bejegyzést a crontab fájlból.
A fenti parancsok a a jelenlegi felhasználó crontab fájl. Ha módosítania kell egy másik felhasználó crontab fájlját, egyszerűen használja a -u választási lehetőség. Például szerkesztheti a jdoe a felhasználó crontab fájlja a következő paranccsal:
Szeretné jobban kezelni a felhasználókat az Ubuntu Linux rendszeren? A válasz az, hogy csoportokat hoz létre, majd használja az Ubuntu felhasználói hozzáadás funkciót.
sudo crontab -ujdoe -e
A Crontab Jobs formátuma
Minden crontab job egy sorból áll, és az alábbiak szerint van formázva:
PERC ÓRA NAP HAV HÉTNAP PARANCS
Az alábbi táblázat ismerteti a crontab job különböző elemeit:
Elem | Ranage | Leírás |
---|---|---|
Perc | 0 - 59 | A crontab munka végrehajtásának perce. |
Óra | 0 - 23 | A crontab munka végrehajtásának órája itt:. |
Nap | 1 - 31 | A hónap azon napja, amikor a crontab munkát itt kell végrehajtani. |
Hónap | 1 - 12 | A crontab munka végrehajtásának hónapja itt:. |
Hétköznap | 0 - 6 | A hét azon napja, ahol a crontab munkát itt kell végrehajtani. |
Parancs | Bármely Linux parancs, amelyet a terminálon hajthat végre. |
A mezők bármelyikében csillagot (*) használhat helyettesítő karakter jelölésére, vagyis a crontab feladat az adott időtartamtól függetlenül végrehajtásra kerül. Például az alábbi crontab munka minden este pontosan 3: 20-kor fog végrehajtódni:
20 3 * * * /root/backup.sh
Több érték
Minden időszak több elemet is tartalmazhat. A pontos értékeket vesszővel elválasztva adhatja meg, és az alábbi crontab feladat óránként 20 és 50 perccel fog végrehajtódni:
20,50 * * * * /path/to/command.sh
Ha azonban a crontab feladatot meghatározott időközönként szeretné végrehajtani egy felhasználható időszakon belül */IDŐSZAK, és az alábbi crontab feladat automatikusan végrehajtódik 15 óránként három óránként:
15 * / 3 * * * /path/to/command.sh
A Crontab Jobs csendes fenntartása
Mindentől függően érdemes kiküszöbölnie a crontab jobok összes kimenetét, hogy azok ne kerüljenek a rendszer levelezési mappájába. Ezt megteheti csatolással > / dev / null 2> & 1 bármilyen crontab munkára. Például:
0 6 15 * * /path/to/backup.sh> / dev / null 2> & 1
A Crontab Jobs hozzáadása
A crontab-feladatok hozzáadásához vagy módosításához általában a crontab -e parancs. Futtassa ezt a parancsot a terminálon:
crontab -e
Ez megnyitja a szöveg szerkesztő mint például nano a crontab fájl tartalmával. Minden crontab munka egy sorban található, és tetszés szerint hozzáadhat, módosíthat és eltávolíthat vonalakat. Ha kész, mentse el és zárja be a fájlt a megnyomásával Ctrl + W, majd a Y és Belép kulcsokat, amelyek azonnal aktiválják a fájl összes crontab-feladatát.
Munkahelyek hozzáadása parancsikon
A crontab fájl manuális módosítása helyett egy gyors parancsot futtathat egy munka hozzáadásához. Például, ha hozzá szeretné adni ezt a crontab feladatot, amely minden vasárnap 14:00 órakor fut:
0 14 * * 0 /path/to/command.sh
Az egyetlen paranccsal hozzáadhatja a munkát a crontab fájljához:
(crontab -l; visszhang "0 14 * * 0 /path/to/command.sh";) | crontab
A fenti parancs egyszerűen felsorolja az összes jobot, amely jelenleg a crontab fájlban található, kinyomtatja az új feladatot és mindent belefoglal crontab tartalmának pótlása.
A Crontab fájl felsorolása / eltávolítása
A crontab fájlban az összes aktív feladatot felsorolhatja a következő paranccsal:
crontab -l
Az összes crontab-feladatot eltávolíthatja, és a crontab fájl tartalmát a következő paranccsal ürítheti:
crontab -r
Példa: Play Sounds!
Szüksége van két óránként gyors emlékeztetőre munka közben, hogy tudassa Önnel az idő? Fogja meg kedvenc hangklipjét szinte bármilyen formátumban (.wav, .mp4, bármi más), és ha el van mentve (például) /home/myuser/myalert.wav automatikusan játssza le a crontab feladattal:
0 * / 2 * * * aplay /home/myuser/myalert.wav
Mit szólnál ahhoz, hogy szépen elküldhesd a heti munkádat úgy, hogy kedvenc dalod minden péntek délután 17: 00-kor automatikusan lejátszódik? Fogja meg kedvenc dalklipjét, és ha mondjuk mentette /home/myuser/friday_song.mp4 hozzáadná a crontab munkát:
0 17 * * 5 aplay /home/myuser/friday_song.mp4
Példa: Biztonsági fájlok mentése az Rsync alkalmazással
A crontab számos kiváló felhasználásának egyike a fájlok automatikus biztonsági mentése egy távoli szerverre. Ezzel jelentősen csökkentheti annak a kockázatát, hogy valaha is elveszítse a fontos adatokat kiváló rsync bemutató.
Példa: Ellenőrizze, hogy a Webhelyek online-e
Lehet, hogy ötpercenként szeretné ellenőrizni, hogy különféle webhelyek vannak-e online vagy sem, és e-mailben értesítést kap, ha vannak ilyenek. Itt van egy remek kis PHP szkript, amely éppen ezt fogja megtenni.
php
// E-mail cím, amellyel értesíteni lehet a leállt webhelyeket
$ email = '[email protected]';
// Adja meg az URL-eket az ellenőrzéshez
$ urls = [< br /> ' https://apexpl.io',
'https://google.com',
'https://some-junk-site-that-will-hopefully-never-exist.com'
];
// Keresse meg az URL-eket
$ down = [];
foreach ($ url mint $ url) {
// URL ellenőrzése
$ status = check_url ($ url);
if ($ status! = 200) {
$ down [] = $ url;
}
}
// küldjön e-mailt, ha nincsenek webhelyeink
if (count ($ down)> 0) {
mail ($ e-mail, "Sürgős - Sites Down!", "Botja észlelte a következő webhelyeket jelenleg le:
". implode ("
", $ down));
}
// Kilépés
exit (0);
/ **
* URL ellenőrzése < br /> * /
függvény check_url (string $ url): int
{
// Küldés cURL-en keresztül
$ 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, true);
$ response = curl_exec ($ ch);
// Állapot beolvasása és a kapcsolat bezárása
$ status = curl_getinfo ($ ch, CURLINFO_HTTP_CODE);
curl_close ($ ch);
// Return
return $ status;
}
Egyszerűen módosítsa az e-mail címet és a kívánt URL-eket, hogy ellenőrizze a fájl tetején, és mentse azt valahol, mint pl /home/myuser/check_sites.php . Ha öt percenként szeretné futtatni ezt a szkriptet, és e-mailben értesítené a leállt webhelyekről, adja hozzá a crontab feladatot:
* / 5 * * * * / usr / bin / php /home/myuser/check_sites.php> / dev / null 2> & 1
Automatizálja az életét!
Ezzel a cikkel Ön remélhetőleg meg fogja érteni a crontab automatizálási képességét, és azt, hogy miként lehet automatizálni a mindennapi és ismétlődő feladatokat a élet.
Megtudta, mi az a crontab, a crontab fájlról, hogyan formázzák a crontab feladatokat, és néhány valós példa a felhasználhatóságára.
Szeretne időt spórolni és elkerülni az ismétlődő feladatokat? A válasz az automatizálás! Íme néhány kipróbálható Linux asztali automatizálási alkalmazás.
- Programozás
- Linux
Feliratkozás Hírlevél
Csatlakozzon hírlevelünkhöz, amely technikai tippeket, áttekintéseket, ingyenes e-könyveket és exkluzív ajánlatokat kínál!
Még egy lépés!!!
Kérjük, erősítse meg e-mail címét a e-mailt küldtünk neked.