Administrator sustava često mora ponavljati naredbu u određenom vremenskom razdoblju. Često se takvi zadaci mogu lako dovršiti jednostavnim cron naredbe. U većini slučajeva to bi trebalo funkcionirati, ali najkraće razdoblje koje možete pokrenuti cron naredba je svaka 1 minuta. Vjerovali ili ne, u mnogim slučajevima to je presporo.
U ovom ćete vodiču naučiti jednostavne tehnike skriptiranja za praćenje ili držanje na oku određene komande u neprekidnom stanju, slično naredba top (neprestano nadgledajte proces i iskorištenost memorije) prema zadanim postavkama svake 3 sekunde.
Nećemo prestati raspravljati o razlozima zašto biste morali toliko često izvršavati naredbe. Vjerujem da svatko ima različite razloge za to u svom svakodnevnom poslu ili čak kod kuće na osobnim i prijenosnim računalima.
Gledati je Linux naredba koja vam omogućuje povremeno izvršavanje naredbe ili programa, a prikazuje i izlaz na ekranu. To znači da ćete na vrijeme moći vidjeti izlaz programa. Prema zadanim postavkama sat ponovno pokreće naredbu/program svake 2 sekunde. Interval se može lako promijeniti kako bi zadovoljio vaše zahtjeve.
"Watch" je iznimno jednostavan za korištenje, da biste ga testirali, možete odmah pokrenuti Linux terminal i upisati sljedeću naredbu:
# gledati besplatno -m.
Gornja naredba provjerit će slobodnu memoriju vašeg sustava i ažurirati rezultate besplatna naredba svake dvije sekunde.
Kao što se vidi iz gornjeg izlaza, imate zaglavlje koje prikazuje informacije o (s lijeva na desno) intervalu ažuriranja, naredbi koja se izvršava i trenutnom vremenu. Ako želite sakriti ovo zaglavlje, možete koristiti -t
opcija.
Sljedeće logično pitanje je - kako promijeniti interval izvođenja. U tu svrhu možete koristiti -n
opciju koja određuje interval s kojim će se naredba izvršavati. Ovaj interval je određen u sekundama. Recimo da želite pokrenuti svoj skripta.sh
datoteku svakih 10 sekundi, možete to učiniti ovako:
# sat -n 10 skripta.sh.
Bilješka da ako pokrenete naredbu kao što je gore prikazano, morat ćete CD
u imenik (saznajte Naučite 15 primjera naredbi za cd) gdje se skripta nalazi ili na neki drugi način navedite puni put do te skripte.
Druge korisne opcije naredbe watch su:
-b
-stvara zvučni signal ako izlaz naredbe nije nula.-c
- Tumači ANSI sekvence boja.-d
- ističe promjene u izlazu naredbi.Recimo da želite pratiti prijavljene korisnike, vrijeme rada poslužitelja i prosječno učitavati izlaz u kontinuiranoj fazi svakih nekoliko sekundi, a zatim upotrijebite sljedeću naredbu kao što je prikazano:
# sat rada.
Za izlaz iz naredbe pritisnite CTRL+C
.
Ovdje, 'produženje rada'
naredba će se pokrenuti i prema zadanim postavkama prikazati ažurirane rezultate svake 2 sekunde.
U Linuxu, dok kopirate datoteke s jednog mjesta na drugo pomoću k.č
naredbu, napredak podataka nije prikazan, da biste vidjeli napredak podataka koji se kopiraju, možete koristiti Gledati
zapovijedi zajedno s naredba du -s za provjeru upotrebe diska u stvarnom vremenu.
# cp ubuntu-15.10-desktop-amd64.iso/home/tecmint/& # sat -n 0,1 du -s /home/tecmint/ubuntu-15.10-desktop-amd64.iso
Ako mislite da je gornji postupak previše kompliciran za postići, predlažem vam da krenete Naredba za unaprijed kopiranje, koji prikazuje napredak podataka tijekom kopiranja.
Spavanje se često koristi za otklanjanje pogrešaka skripti ljuske, ali ima i mnoge druge korisne svrhe. Na primjer, u kombinaciji s za
ili dok
petlje, možete postići prilično izvrsne rezultate.
Ako ste tek počeli s bash skriptiranjem, možete pogledati naš vodič o bash petljama ovdje.
U slučaju da prvi put čujete za "spavati"
naredba, koristi se za odgodu nečega na određeno vrijeme. U skriptama ga možete upotrijebiti da biste skripti rekli da pokrene naredbu 1, pričeka 10 sekundi, a zatim pokrene naredbu 2.
S gornjim petljama možete reći bashu da pokrene naredbu, spavati za N količinu sekundi, a zatim ponovno pokrenite naredbu.
Ispod možete vidjeti primjere obje petlje:
# for i u {1..10}; do echo -n "Ovo je test u petlji $ i"; datum; spavati 5; učinjeno.
Gornji jedan liner će pokrenuti naredba echo i prikazati trenutni datum, ukupno 10 puta, s 5 sekundi mirovanja između izvršenja.
Evo primjera rezultata:
Ovo je test u petlji 1 sri veljača 17 20:49:47 EET 2016. Ovo je test u petlji 2 Sri Vel 17, 20:49:52 EET 2016. Ovo je test u petlji 3 sri veljača 17 20:49:57 EET 2016. Ovo je test u petlji 4 sri veljača 17 20:50:02 EET 2016. Ovo je test u petlji 5 sri veljača 17 20:50:07 EET 2016. Ovo je test u petlji 6 sri veljača 17 20:50:12 EET 2016. Ovo je test u petlji 7 sri veljača 17 20:50:17 EET 2016. Ovo je test u petlji 8 Wed Feb 17 20:50:22 EET 2016. Ovo je test u petlji 9 Sri Feb 17 20:50:27 EET 2016. Ovo je test u petlji 10 sri veljača 17 20:50:32 EET 2016.
Možete promijeniti jeka i datum naredbe s vlastitim naredbama ili skriptom i promijenite interval mirovanja prema svojim potrebama.
# while true; do echo -n "Ovo je test while petlje"; date; spavati 5; učinjeno
Evo primjera izlaza:
Ovo je test while loopWed 17. veljače 20:52:32 EET 2016. Ovo je test while loopWed Feb 17 20:52:37 EET 2016. Ovo je test while loopWed Feb 17 20:52:42 EET 2016. Ovo je test while loopWed Feb 17 20:52:47 EET 2016. Ovo je test while loopWed 17. veljače 20:52:52 EET 2016. Ovo je test while loopWed Feb 17 20:52:57 EET 2016.
Gornja naredba će se izvoditi sve dok ne postane ubio ili prekinuo korisnik. Može vam dobro doći ako trebate pokrenuti naredbu koja se izvodi u pozadini i ne želite računati na to cron.
Važno: Kada koristite gore navedene metode, toplo se preporučuje da postavite interval dovoljno dugo kako biste naredbi dali dovoljno vremena da dovrši izvođenje, prije sljedećeg izvođenja.
Uzorci u ovom vodiču korisni su, ali nemaju namjeru potpuno zamijeniti cron uslužni program. Na vama je da pronađete koja vam bolje odgovara, ali ako moramo razdvojiti uporabu obje tehnike, rekao bih ovo:
Kao i uvijek, ako imate pitanja ili komentara, ne ustručavajte se poslati ih u odjeljku za komentare ispod.