Пре извесног времена сам прочитао да је једна од карактеристика ефикасног администратора / инжењера система лењост. У почетку је деловало мало контрадикторно, али је аутор затим објаснио зашто:
ако системски администратор проводи већину свог времена решавајући проблеме и радећи понављајуће задатке, можете посумњати да он или она не раде ствари како треба. Другим речима, ефикасан системски администратор / инжењер треба да развије план за извршавање понављајућих задатака са што мање акције са своје стране и треба да предвиди проблеме користећи,
на пример, алати прегледани у 3. делу - Пратите извештаје о системским активностима користећи Линук скупове алата ове серије. Стога, иако се чини да он или она не раде много, то је зато што већина његових одговорности има збринуто уз помоћ скриптирања љуске, о чему ћемо говорити у овом Приручник.
Укратко, љуска скрипта није ништа више и ништа мање од програма који се извршава корак по корак помоћу љуске, што је још један програм који обезбеђује слој интерфејса између Линук језгра и краја корисника.
Подразумевано, љуска која се користи за корисничке налоге у РХЕЛ 7 је басх (/bin/bash). Ако желите детаљан опис и историјску позадину, можете се позвати на овај чланак на Википедији.
Да бисте сазнали више о огромном скупу функција које пружа ова љуска, можда бисте желели да проверите њену ман паге, који се преузима у ПДФ формату на адреси (Басх команде). Осим тога, претпоставља се да сте упознати са Линук командама (ако не, топло вам саветујем да прођете кроз њих Водич од почетника до СисАдмина чланак у Тецминт.цом пре него што наставите). Сада почнимо.
Ради наше удобности, креирајмо директоријум за складиштење скрипти љуске:
# мкдир скрипте. # цд скрипте.
И отворите нову текстуалну датотеку под називом систем_инфо.сх
помоћу жељеног уређивача текста. Почећемо убацивањем неколико коментара на врх и неколико наредби након тога:
#!/бин/басх # Узорак скрипте написане за 4. део РХЦЕ серије. # Ова скрипта ће вратити следећи скуп системских информација: # -Хостнаме информације: ецхо -е "\ е [31; 43м ***** ХОСТНАМЕ ИНФОРМАТИОН***** \ е [0м " хостнамецтл. одјек "" # -Корисник системског простора на диску: ецхо -е "\ е [31; 43м *****КОРИШЋЕЊЕ ПРОСТОРА НА ДИСКУ СИСТЕМА ДАТОТЕКА***** \ е [0м " дф -х. одјек "" # -Бесплатна и искоришћена меморија у систему: ецхо -е "\ е [31; 43м *****БЕСПЛАТНО И КОРИШЋЕНО СЕЋАЊЕ***** \ е [0м " бесплатно. одјек "" # -Сустав рада и учитавање: ецхо -е "\ е [31; 43м *****ТРАЈАЊЕ СИСТЕМА И ОПТЕРЕЋЕЊЕ***** \ е [0м " продужено време. одјек "" # -Пријављени корисници: ецхо -е "\ е [31; 43м *****ТРЕНУТНО ПРИЈАВЉЕНИ КОРИСНИЦИ***** \ е [0м " СЗО. одјек "" # -Топ 5 процеса што се тиче употребе меморије. ецхо -е "\ е [31; 43м *****ТОП 5 ПРОЦЕСА КОЈИ ПОТРОШАЈУ ПАМЋЕЊЕ***** \ е [0м " пс -ео%мем,%цпу, цомм --сорт = -%мем | глава -н 6. одјек "" ецхо -е "\ е [1; 32мУрађено. \ е [0м"
Затим дајте скрипти дозволе за извршавање:
# цхмод +к систем_инфо.сх.
и покрените га:
./систем_инфо.сх.
Имајте на уму да су заглавља сваког одељка приказана у боји ради боље визуализације:
Ова функција је обезбеђена овом командом:
ецхо -е "\ е [ЦОЛОР1; ЦОЛОР2м\ е [0м "
Где ЦОЛОР1 и ЦОЛОР2 су боје предњег плана и позадине (више информација и опција објашњени су у овом уносу из Арцх Линук Вики) и је низ који желите да прикажете у боји.
Задаци које ћете можда морати да аутоматизујете могу се разликовати од случаја до случаја. Дакле, не можемо покрити све могуће сценарије у једном чланку, али ћемо представити три класична задатка која се могу аутоматизирати помоћу скрипти љуске:
1) ажурирајте локалну базу датотека, 2) пронађите (и алтернативно избришите) датотеке помоћу 777 дозволе и 3) упозорење када употреба датотечног система пређе дефинисано ограничење.
Креирајмо датотеку под називом ауто_таскс.сх
у нашем директоријуму скрипти са следећим садржајем:
#!/бин/басх # Пример скрипте за аутоматизацију задатака: # -Ажурирај локалну базу датотека: ецхо -е "\ е [4; 32мАЖУРИРАЊЕ БАЗЕ ЛОКАЛНИХ ДАТОТЕКА\ е [0м " ажурирано б. ако [$? == 0 ]; затим ецхо "Локална база датотека је исправно ажурирана." елсе ецхо "Локална база датотека није исправно ажурирана." фи. ецхо "" # -Нађите и / или избришите датотеке са 777 дозвола. ецхо -е "\ е [4; 32мТРАЖИМ ДАТОТЕКЕ СА 777 ДОЗВОЛА\ е [0м " # Омогућите било коју опцију (коментаришите другу линију), али не обе. # Опција 1: Избришите датотеке без тражења потврде. Претпоставља ГНУ верзију налаза. #финд -типе ф -перм 0777 -делете. # Опција 2: Затражите потврду пре брисања датотека. Преносивији у више система. финд -типе ф -перм 0777 -екец рм -и {} +; одјек "" # -Упозорење када употреба датотечног система премаши дефинисано ограничење ецхо -е "\ е [4; 32мПРОВЕРА КОРИШЋЕЊА СИСТЕМА ДАТОТЕКЕ\ е [0м " ПРАГ = 30. док читате ред; до # Ова променљива чува путању система датотека као низ ФИЛЕСИСТЕМ = $ (ецхо $ лине | авк '{принт $ 1}') # Ово променљива складишти проценат употребе (КСКС %) ПЕРЦЕНТАГЕ = $ (ецхо $ линија | авк '{принт $ 5}') # Употреба процента без % знак. УСАГЕ = $ {ПЕРЦЕНТАГЕ%?} Ако [$ УСАГЕ -гт $ ТХРЕСХОЛД]; затим ецхо "Преостали расположиви простор у $ ФИЛЕСИСТЕМ -у је критично мали. Користи се: $ ПЕРЦЕНТАГЕ "фи. учињено <Имајте на уму да између њих постоји размак
<
знакови у последњој линији писма.Користећи Црон
Да бисте били још ефикаснији, нећете желети да седите испред рачунара и ручно покрећете те скрипте. Уместо тога, користићете црон да бисте заказали периодично извршавање тих задатака и слали резултате на унапред дефинисану листу прималаца путем е -поште или их сачували у датотеку која се може прегледати помоћу веб прегледача.
Следећа скрипта (филесистем_усаге.сх) ће покренути добро познату дф -х наредбом, форматирајте излаз у ХТМЛ табелу и сачувајте га у репорт.хтмл фајл:
#!/бин/басх. # Узорак скрипте за демонстрирање стварања ХТМЛ извештаја коришћењем схелл скриптирања. # Веб именик. ВЕБ_ДИР =/вар/ввв/хтмл. # Мало ЦСС -а и изгледа табеле да извештај изгледа мало лепше. одјек ""> $ ВЕБ_ДИР/репорт.хтмл. # Погледајте име хоста и уметните га при врху хтмл тела. ХОСТ = $ (име хоста) ецхо "Употреба датотечног система за хост$ ХОСТ
Последње измене: $ (датум)
Систем датотека | Величина | Користи % |
---|---|---|
">> $ ВЕБ_ДИР/репорт.хтмл. ецхо $ лине | авк '{принт $ 1}' >> $ ВЕБ_ДИР/репорт.хтмл. одјек " | ">> $ ВЕБ_ДИР/репорт.хтмл. ецхо $ лине | авк '{принт $ 2}' >> $ ВЕБ_ДИР/репорт.хтмл. одјек " | ">> $ ВЕБ_ДИР/репорт.хтмл. ецхо $ лине | авк '{принт $ 5}' >> $ ВЕБ_ДИР/репорт.хтмл. одјек " |