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.