Преди време прочетох, че една от отличителните характеристики на ефективен системен администратор / инженер е мързелът. В началото изглеждаше малко противоречиво, но след това авторът продължи да обяснява защо:
ако системен администратор прекарва по -голямата част от времето си в решаване на проблеми и извършване на повтарящи се задачи, можете да подозирате, че той или тя не прави нещата съвсем правилно. С други думи, ефективен системен администратор / инженер трябва да разработи план за изпълнение на повтарящи се задачи с възможно най -малко действия от негова страна и трябва да предвиди проблеми, като използва,
например инструментите, разгледани в част 3 - Наблюдавайте отчетите за системна активност, като използвате набори от инструменти на Linux от тази поредица. По този начин, въпреки че може да изглежда, че не прави много, това е така, защото повечето от неговите / нейните отговорности имат са били обгрижени с помощта на скриптове на черупки, за което ще говорим в това урок.
С няколко думи, скриптът на черупката не е нищо повече и нищо по -малко от програма, която се изпълнява стъпка по стъпка от черупка, която е друга програма, която осигурява интерфейсен слой между ядрото на Linux и края потребител.
По подразбиране черупката, използвана за потребителски акаунти в RHEL 7 е bash (/bin/bash). Ако искате подробно описание и историческа информация, можете да се обърнете към тази статия в Уикипедия.
За да научите повече за огромния набор от функции, предоставяни от тази обвивка, може да искате да проверите нейната man страница, който се изтегля в PDF формат на адрес (Bash команди). Освен това се предполага, че сте запознати с командите на Linux (ако не, силно ви съветвам да преминете през тях Ръководство от начинаещи към SysAdmin статия в Tecmint.com преди да продължите). Сега нека започнем.
За наше удобство, нека създадем директория за съхраняване на нашите скриптове на черупка:
# скрипта mkdir. # cd скриптове.
И отворете нов текстов файл с име system_info.sh
с предпочитания от вас текстов редактор. Ще започнем с вмъкване на няколко коментара в горната част и някои команди след това:
#!/bin/bash # Примерен скрипт, написан за част 4 от поредицата RHCE. # Този скрипт ще върне следния набор от системна информация: # -Информация за хост: echo -e "\ e [31; 43m ***** ИНФОРМАЦИЯ ЗА ХОСТИМ***** \ e [0m " hostnamectl. ехо "" # -Използване на системното дисково пространство на системата: echo -e "\ e [31; 43m *****ИЗПОЛЗВАНЕ НА ПРОСТРАНСТВОТО НА ДИСКОВА СИСТЕМА***** \ e [0m " df -h. ехо "" # -Свободна и използвана памет в системата: echo -e "\ e [31; 43m *****БЕЗПЛАТНА И ИЗПОЛЗВАНА ПАМЕТ***** \ e [0m " Безплатно. ехо "" # -Натоварване и зареждане на системата: echo -e "\ e [31; 43m *****СРЕДСТВО НА НАСТРОЯВАНЕ НА СИСТЕМАТА***** \ e [0m " време на работа. ехо "" # -Влезли потребители: echo -e "\ e [31; 43m *****В МОМЕНТА ВЛИЗАНИ ПОТРЕБИТЕЛИ***** \ e [0m " Кой. ехо "" # -Топ 5 процеса, що се отнася до използването на паметта. ехо -е "\ е [31; 43м *****ТОП 5 ПРОЦЕСА ЗА ПОТРЕБЯВАНЕ НА ПАМЕТ***** \ e [0m " ps -eo%mem,%cpu, comm --sort = -%mem | глава -n 6. ехо "" echo -e "\ e [1; 32m Готово. \ e [0m"
След това дайте разрешения за изпълнение на скрипта:
# chmod +x system_info.sh.
и го стартирайте:
./system_info.sh.
Имайте предвид, че заглавките на всеки раздел са показани в цвят за по -добра визуализация:
Тази функция се осигурява от тази команда:
echo -e "\ e [COLOR1; COLOR2m\ e [0m "
Където ЦВЯТ1 и ЦВЯТ2 са съответно цветовете на преден план и фон (повече информация и опции са обяснени в този запис от Arch Linux Wiki) и е низът, който искате да покажете в цвят.
Задачите, които може да се наложи да автоматизирате, могат да варират в зависимост от случая. По този начин не можем да обхванем всички възможни сценарии в една статия, но ще представим три класически задачи, които могат да бъдат автоматизирани с помощта на скриптове на черупки:
1) актуализирайте локалната база данни с файлове, 2) намерете (и алтернативно изтрийте) файлове с 777 разрешения и 3) предупреждение, когато използването на файловата система надвишава определено ограничение.
Нека създадем файл с име auto_tasks.sh
в нашата директория с скриптове със следното съдържание:
#!/bin/bash # Примерен скрипт за автоматизиране на задачи: # -Актуализиране на локална база данни с файлове: echo -e "\ e [4; 32mАКТУАЛИЗИРАНЕ НА МЕСТНАТА БАЗА ДАННИ\ e [0m " актуализиран b. ако [$? == 0 ]; след това echo "Локалната база данни с файлове е актуализирана правилно." else echo "Локалната база данни с файлове не е актуализирана правилно." fi. echo "" # -Намерете и / или изтрийте файлове с 777 разрешения. ехо -е "\ е [4; 32мТЪРСЯТЕ ФАЙЛОВЕ С 777 РАЗРЕШЕНИЯ\ e [0m " # Активирайте всяка опция (коментирайте другия ред), но не и двете. # Вариант 1: Изтриване на файлове без подкана за потвърждение. Предполага GNU версия на find. #find -type f -perm 0777 -delete. # Вариант 2: Поискайте потвърждение, преди да изтриете файлове. По -преносим в различни системи. find -type f -perm 0777 -exec rm -i {} +; ехо "" # -Аларма, когато използването на файловата система надвишава определена граница echo -e "\ e [4; 32mПРОВЕРКА НА ИЗПОЛЗВАНЕТО НА ФАЙЛ СИСТЕМАТА\ e [0m " ПРАГ = 30. докато четете ред; do # Тази променлива съхранява пътя на файловата система като низ FILESYSTEM = $ (echo $ line | awk '{print $ 1}') # This променливата съхранява процента на използване (XX %) PERCENTAGE = $ (echo $ ред | awk '{print $ 5}') # Използване на процента без % знак. USAGE = $ {PERCENTAGE%?} Ако [$ USAGE -gt $ THRESHOLD]; след това ехо "Останалото налично пространство в $ FILESYSTEM е критично ниско. Използвано: $ PERCENTAGE "fi. направено <Моля, обърнете внимание, че има разстояние между двете
<
знаци в последния ред на скрипта.Използване на Cron
За да направите ефективността още една крачка напред, няма да искате да седите пред компютъра си и да стартирате тези скриптове ръчно. По -скоро ще използвате cron за да планирате тези задачи да се изпълняват периодично и изпраща резултатите до предварително определен списък с получатели по имейл или да ги запишете във файл, който може да бъде прегледан с помощта на уеб браузър.
Следният скрипт (filesystem_usage.sh) ще изпълнява добре познатия df -h команда, форматирайте изхода в HTML таблица и го запишете в report.html файл:
#!/bin/bash. # Примерен скрипт за демонстриране на създаването на HTML отчет с помощта на скриптове на обвивката. # Уеб директория. WEB_DIR =/var/www/html. # Малко CSS и оформление на таблица, за да изглежда отчетът по -хубав. ехо ""> $ WEB_DIR/report.html. # Прегледайте името на хоста и го вмъкнете в горната част на html тялото. HOST = $ (име на хост) echo "Използване на файловата система за хост$ HOST
Последна актуализация: $ (дата)
Файлова система | Размер | Използвайте % |
---|---|---|
">> $ WEB_DIR/report.html. echo $ line | awk '{print $ 1}' >> $ WEB_DIR/report.html. ехо " | ">> $ WEB_DIR/report.html. echo $ line | awk '{print $ 2}' >> $ WEB_DIR/report.html. ехо " | ">> $ WEB_DIR/report.html. echo $ line | awk '{print $ 5}' >> $ WEB_DIR/report.html. ехо " |