Hogyan készítsünk cron parancsokat?
Nagyszerű lenne, ha a FreeBSD folyamatosan automatikusan elvégezné a karbantartását, és e-mailben értesíti Önt. Szerencsére a cron démonnak és a kiszolgáló szkripteknek köszönhetően a FreeBSD rendszeresen ezt teszi. A mai cikkben azt fogjuk megtudni, hogy a cron démon hogyan hajtja végre az ütemezett parancsokat, és megtudja, hogyan kell beállítani a parancsfájlokat és programokat.
A legtöbb más démonhoz hasonlóan a cron fut a FreeBSD-vel, majd csendben fut a háttérben. Hogy bizonyítsd magadnak, hogy nincs szükség a cron önmagadra, keresse meg a szót #xab; cron # xbb; a futó folyamatok listájában, például:
Ehhez hasonló dolgot kell kapnod:
Ebben a példában a cron rendelkezik a 97. folyamatszámmal.
Ennek eredményeképpen a következő sorokat láthatja:
A következő táblázat az időpillanatot tartalmazó oszlopdiagálások érvényes értékeinek határait mutatja:
A hét napja (dayofweek)
0-7 (ahol 0 és 7 vasárnap) vagy a hét angol nevének első három betűje (az esetet nem veszik figyelembe)
Az értékek lehetnek számok, három betűs név és egy tartomány, például egy rekord #xab; 1-5 # xbb; a dayofweek mezőben fog jelenteni #xab; hétfőtől péntekig # xbb;. Az értékek vesszővel elválaszthatók: #xab; 1,15,31 # xbb; a hónapban a mező a megadott parancsot a hónap első, 15. és 31. napján futtatja.
Használhatja az űrlap értékeit is #xab; * / szám # xbb;. Például #xab; * / 2 # xbb; a hónap mezőben #xab; minden második hónapban futni # xbb;. A feladatok rendszerlistájában hasonló példa van:
Ez a vonal a következőképpen szól: a parancs futtatásához / usr / libexec / atrun root, ha az aktuális pillanatban osztható öt (vagy ötpercenként), minden óra minden nap minden hónapban. Ha nem ismeri az atrun parancsot, írja be a konzolt:
Válaszul azt mondják:
Ie az atrun parancs elindítja a feladatokat a függőben lévő végrehajtási sorból. Ha a kíváncsiságod nem elégedett egy ilyen magyarázattal, akkor nézd meg az ember 8 atrun-ot.
És a döntő asztalt, mielőtt újra kapcsolatba lépne az / etc / crontab-val. Az öt időmezőt az alábbi helyettesítőkkel helyettesítheti:
Térjünk vissza az első konzolra és folytassuk az / etc / crontab olvasását:
Ie A newsyslog célja a rendszer naplóinak kezelése.
Olvassa el a / etc / crontab következő:
Hol találja a cron service scripteket? A második konzolon próbáljon meg gépelni:
Ha megtanulod írni a parancsértelmező parancsfájljait, a rendszerbe épített parancsfájlok megvizsgálása sok példát ad a helyes és általános szintaxisra.
Ha több üzenet is van, akkor többek között legalább egy hívást kell kapnia #xab; napi futtatás kimenete # xbb; ha elolvasta ezt az üzenetet, akkor meglátja, hogy mennyi munkát végez az Ön számára minden este 1: 59-kor. Kérjük, vegye figyelembe, hogy a biztonsági üzeneteket külön levél küldi, amelyet hívnak #xab; biztonsági ellenőrző kimenet # xbb;. Ez az üzenet nagyon hasznos az olvasás, mert tartalmaz információkat ellenőrzi a fájlokat setuid attribútummal, uid 0, a felhasználók jelszó nélkül, a kernel üzeneteit, elutasított kísérlet, hogy jelentkezzen be, és eltérített ízületek.
Miután elolvasta ezeket az üzeneteket, biztonságosan eltávolítható. A levélkiszolgálóról történő bejelentkezés után ne felejtse el elhagyni a feletteset.
Eddig megvizsgáltuk a crontab rendszerfájlt, amelyet nem szabad megváltoztatni. Most látni fogjuk, hogyan hozhatunk létre saját crontab fájlt, hogy kényszerítsük a parancsnokság végrehajtására szolgáló cron parancsot. A FreeBSD-ben alapértelmezés szerint minden felhasználónak jogában áll saját crontab fájlt létrehozni. Ezek a fájlok a / var / cron / tabs könyvtárban vannak tárolva. Ha beírja (a root felhasználóból):
Ha bizonyos kiterjesztésekkel rendelkező fájlokat szeretnék találni és törölni, hasonló parancsot írhatok be (meg kell adnia egy sort):
Lássuk, hogyan értelmezhetjük ezt a homályos kifejezést. Általában ez a csapat valamit keres. A keresési kifejezés mindig úgy néz ki, mint:
Így, amikor írom find / /, megmondom a find parancsnak, hogy keresse fel a fájlrendszer gyökerét.
Ezután azt mondom, hogy keresne olyan fájlokat, amelyeknek a neve ".core" -on végződik, vagy "halott". Mivel végül mindkét fajta fájlt törölni szeretném, zárójelekkel körülvéve. A hátsó sávon lévő zárójelek előtt adtam hozzá, hogy a parancsértelmező ne vigye őket a fiókjukba.
Amikor megtalálja az ilyen fájlokat, akkor a "-exec" paraméterben megadott "rm -rf" parancsot fogja alkalmazni. Ha a "-exec" kifejezést használja a keresésben, akkor a "\;" karakterekkel kell befejeznie, különben semmi sem fog működni. A göndör zárójelek megmondják, hogy hol találja meg a találatok által talált információkat.
Próbáljuk kitalálni, hogy mit írtunk itt. Minden forgatókönyv ezzel a dologgal kezdődik:
majd a teljes elérési utat a program, amely végrehajtja a szkriptet. Készítettünk egy parancsfájlt a Bourne parancsértelmező számára, és jeleztük, hogy a sh (Bourne shell) parancs értelmezi ezt a szkriptet:
Következő lesz a script hasznos tartalma. Tartalmaz egy mondatot #xab; ha # xbb; kezdődik egy kulcsszó #xab; ha # xbb; és véget ér #xab; fi # xbb; A mondat első sorában #xab; ha # xbb; Olyan feltétel van megadva, amely értéket vehet fel #xab; true # xbb; vagy #xab; false # xbb;:
jel #xab ;! # xbb; egy negatív művelet #xab; nem # xbb; amely lehetővé teszi a blokkot #xab; ha # xbb; Végezze el, ha a zárójelben szereplő kifejezés nem igaz. Lényegében a ps parancs segítségével megtalálható a futó Netscape folyamat a felhasználó számára. Ilyen folyamat hiányában a szkript folytatja az idézett szöveg kimenetét:
Ezután megjelenik a Netscape gyorsítótár, amely a felhasználó főkönyvtárában található:
Abban az esetben, ha a felhasználónak van futó Netscape folyamata, a tolmács kilép a blokkból #xab; ha # xbb ;, a záradék végrehajtása nélkül #xab; majd # xbb;
Mentse el a szkriptet. Mentettem a név alatt #xab; tiszta # xbb; A szkriptet úgy is megnevezheti, ahogyan azt szeretné, de ne nevezze meg a meglévő csapat nevét. Viszontbiztosítás esetén futtassa a következő parancsot a második konzolon:
Ha valamilyen módon elérhető, akkor létezik egy parancs ezzel a névvel, és egy másik nevet kell választania. Ha azonban az eredmény így néz ki:
akkor valószínűleg jó nevet választott a forgatókönyvedre.
A parancsfájl mentése után be kell állítania a végrehajtható fájl attribútumait:
Jó ötlet létrehozni egy bin alkönyvtárat a saját könyvtárában, amelyben tárolja a parancsfájlokat:
Végül ellenőrizze a szkript teljesítményét, mielőtt átadná a cronnak. A bin könyvtárban írja:
Ha másik könyvtárban van, írja:
Ha a C-shell tolmácsot használja, és kap egy üzenetet #xab; A parancs nem található # xbb;, írja be:
és indítsa újra a szkriptet.
Most készen állunk egy crontab fájl létrehozására, hogy a cron végrehajtsa a parancsfájlunkat, valamint a find parancsot. Jelentkezzen be a rendszerbe, mint normál felhasználó. Regisztrálok a genisis név alatt. Most írj:
Mivel vi vagyunk, nyomjuk meg a gombot #xab; ESC ", majd a karakter #xab; i # xbb; a beillesztési módba való belépéshez, írja be ezt a szöveget:
(természetesen az 5-ös és a 6-os vonalak valójában egy sor).
Ha holnap ellenőrizze a postaládáját, két cron betűt fog látni a crontab fájl tevékenységi bejegyzéseinek eredményei között. Ha a parancsok sikeresek, akkor valami hasonló lesz:
Most néhány végső megjegyzés a crontab-ról. Ha szeretné megtekinteni a crontab fájljának tartalmát, írja be:
Ha módosítani szeretné ezt a fájlt, írja be újra a crontab -e-t.
Csak a superuser root jogosult megnézni, hogy mely felhasználóknak vannak crontab fájlok telepítve. Jelentkezzen be root felhasználóként, és próbáljon meg írni a következőket:
Új bejegyzést kell látnia a felhasználónévvel, amely csak létrehozta a crontab fájlt.