El Схелл Сцриптинг, Односи се на извршење сложених налога о њему ГНУ / Линук терминал (конзола), веома је корисно аутоматизовати рутинске и важне активности у оквиру нашег ГНУ / Линук оперативни систем, што нам омогућава да оптимизујемо наше Ресурси и време, односно са оним што је овде садржано истражићемо како са терминала можемо извршити ручне команде које нам то дозвољавају распоред / аутоматизовати активности око уштеде у тиму Сати / рад ручног или лицем у лице извршења, спровођење наведених налога у Басх Схелл скрипти или компатибилно и објашњено на практичан и једноставан начин.
Покриваћемо као у једну командну команду подемос издвајање и приказ вредности / информација из оперативног система / хардвера, коју затим можемо применити у оквиру а Басх Схелл сценарио за аутоматизацију одређеног задатка. Фокусирајући се на Најбоље праксе неопходан за постизање изврсног дизајна скрипте на тај начин ефикасније и практичније.
--------------------
Дохватите име првог корисника креираног у систему:
--------------------
USER_1000=$(cat /etc/passwd | grep 1000 | cut -d: -f1) ; echo $USER_1000
USER_1001=$(cat /etc/passwd | grep 1001 | cut -d: -f1) ; echo $USER_1001
———————————————————————
Набавите / хоме путању првог корисника креираног на систему:
———————————————————————
USER_1000=$(cat /etc/passwd | grep 1000 | cut -d: -f1) ; HOME_USER_1000=/home/$USER_1000 ; echo $HOME_USER_1000
USER_1001=$(cat /etc/passwd | grep 1001 | cut -d: -f1) ; HOME_USER_1001=/home/$USER_1001 ; echo $HOME_USER_1001
-------------
Проверите датум тренутне опреме:
-------------
FECHA_ACTUAL=$(date +"%d %b %y") ; echo $FECHA_ACTUAL
------------
Проверите тренутно време опреме:
------------
HORA_ACTUAL=$(date +"%H:%M") ; echo $HORA_ACTUAL
———————————————––
Проверите да ли домаћин има интернет везу:
———————————————––
if ping -c 1 8.8.8.8 &> /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi ; echo $CONEXION_INTERNET
TEST_PING=$(ping 192.168.3.249 -c 5 | grep packet | awk '{print $6}' | cut -f1 -d%) ; echo $TEST_PING % de Perdida de paquetes
TEST_LATENCIA=$(ping 8.8.8.8 -c 5 | grep packet | awk '{print $10}' | cut -f1 -d%) ; echo $TEST_LATENCIA de Latencia del Enlace
—————————————
Проверите тип оперативног система:
—————————————
SISTEMA_OPERATIVO=$(uname -o) ; echo $SISTEMA_OPERATIVO
----------------------
Проверите назив, верзију и субверзију оперативног система:
----------------------
NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\") ; echo $NOMBRE_SISTEMA
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g') ; echo $VERSION_SISTEMA
SUBVERSION_SISTEMA=$(lsb_release -d | awk '{print $4}') ; echo $SUBVERSION_SISTEMA
----------------
Проверите архитектуру оперативног система:
----------------
ARQUITECTURA=$(uname -m) ; echo $ARQUITECTURA
ARQUITECTURA=$(uname -m) ; if [[ "$ARQUITECTURA" = "x86" ]]; then ARQ_SISTEMA=32; else ARQ_SISTEMA=64; fi ; echo $ARQ_SISTEMA
------------------
Проверите верзију језгра оперативног система:
------------------
VERSION_KERNEL=$(uname -r) ; echo $VERSION_KERNEL
----------
Проверите име хоста:
----------
NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Проверите интерну и екстерну ИП адресу (главни Интернет излаз):
----------------------
IP_INTERNA=$(hostname -I) ; echo $IP_INTERNA
IP_EXTERNA=$(curl -s ipecho.net/plain;echo) ; echo $IP_EXTERNA
------------------
Проверите вредности (ИП / МАЦ) мрежних интерфејса:
------------------
IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1) ; echo $IP_ETH0
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}') ; echo $MAC_ETH0
IP_WLAN0=$(ifconfig wlan0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1) ; echo $IP_WLAN0
MAC_WLAN0=$(ifconfig wlan0 | sed -n '1p' | awk '{print $5}') ; echo $MAC_WLAN0
——————————————————
Проверите проки / мрежни пролаз оперативног система:
——————————————————
PROXY_GATEWAY=$(route -n | sed -n '3p' | awk '{print $2}') ; echo $PROXY_GATEWAY
———————————————––
Проверите име домена мреже хостова:
———————————————––
DOMINIO=$(cat /etc/resolv.conf | sed '2 d' | grep search | sed -n '1p' | awk '{print $2}') ; echo $DOMINIO
—————————————————————
Проверите мрежну адресу (ИП) хостованог ДНС сервера:
—————————————————————
IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}') ; echo $IP_SERVIDOR_DNS
————————————–
Проверите кориснике повезане са хостом:
————————————–
who>/tmp/who ; echo -e "Usuarios conectados al Host :" && echo "" && echo "Usuarios Puertos Fecha Hora Pantalla" ; echo "*************************************************************************" && cat /tmp/who
USUARIOS_CONECTADOS=$(who | awk '{print $1}') ; echo $USUARIOS_CONECTADOS
USER_ONLINE1=$(who | awk '{print $1}') ; echo $USER_ONLINE1 | wc -w
USER_ONLINE2=$(top -n 1 -b | grep "load average:" | awk '{print $6}') ; echo $USER_ONLINE2
——————————————————————————————————
Проверите корисничку мапу са више података (број датотека / величина у бајтовима) у оперативном систему:
----------------------------------
CARPETA_USUARIO1=$(ls -l /home | sed '1 d' | sort -k2 | sed q | awk '{print $9}') ; echo $CARPETA_USUARIO1
DATA_USUARIO1=$(du -sh /home/* | sort -r | sed q | awk '{print $1}') ; echo $DATA_USUARIO1
———————————————————————————————
Проверите величину у бајтовима мапе суперкорисника или друге мапе оперативног система:
———————————————————————————————
DATA_ROOT=$(du -sh /root | awk '{print $1}') ; echo $DATA_ROOT
DATA_CARPETA1=$(du -sh /var | awk '{print $1}') ; echo $DATA_CARPETA1
--------------------
Означите креиране корисничке мапе (имена и бројеви):
--------------------
NOMBRES_CARPETAS=$(ls -l /home | sed '1 d' | awk '{print $9}') ; echo $NOMBRES_CARPETAS
NUMERO_CARPETAS=$(ls -l /home | sed '1 d' | awk '{print $9}') ; echo $NUMERO_CARPETAS | wc -w
—————————————————————
Проверите кориснике са креираним УИД 0 И ГИД 0 (СУПЕРУСЕРС):
—————————————————————
SUPERUSUARIOS_UID=$(awk -F: '{if ($3==0) print $1}' /etc/passwd) ; echo $SUPERUSUARIOS_UID
SUPERUSUARIOS_GID=$(awk -F: '{if ($3==0) print $1}' /etc/passwd) ; echo $SUPERUSUARIOS_GID
--------------
Проверите статус РАМ-а и замените меморију:
--------------
MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}') ; echo $MEM_TOTAL
MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}') ; echo $MEM_USADA
MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}') ; echo $MEM_LIBRE
MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}') ; echo $MEM_COMPARTIDA
MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}') ; echo $MEM_ALMACENADA
MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}') ; echo $MEM_CACHEADA
SWAP_TOTAL=$(free -h | sed '1 d' | grep Swap: | awk '{print $2}') ; echo $SWAP_TOTAL
SWAP_USADA=$(free -h | sed '1 d' | grep Swap: | awk '{print $3}') ; echo $SWAP_USADA
SWAP_LIBRE=$(free -h | sed '1 d' | grep Swap: | awk '{print $4}') ; echo $SWAP_LIBRE
------------------------
Проверите стање партиција / тачку монтирања САТА диска:
------------------------
PART1_TOTAL=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $2}') ; echo $PART1_TOTAL
PART1_USADO=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $3}') ; echo $PART1_USADO
PART1_DISPONIBLE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $4}') ; echo $PART1_DISPONIBLE
PART1_PORCENTAJE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $5}') ; echo $PART1_PORCENTAJE
PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep /dev/sda5 | awk '{print $6}') ; echo $PART1_PUNTOMONTAJE
—————————————————————
Проверите просечно оптерећење система (процеси у реду):
—————————————————————
CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $10}' | sed 's/,//2') ; echo $CARGA_1MIN
CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $11}' | sed 's/,//2') ; echo $CARGA_5MIN
CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2') ; echo $CARGA_15MIN
CARGA_1MIN=$(uptime | awk '{print $8}' | sed 's/,//2') ; echo $CARGA_1MIN
CARGA_5MIN=$(uptime | awk '{print $9}' | sed 's/,//2') ; echo $CARGA_5MIN
CARGA_15MIN=$(uptime | awk '{print $10}' | sed 's/,//2') ; echo $CARGA_15MIN
——————————————————
Проверите Зомбиес процесе у оперативном систему:
——————————————————
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}') ; echo $PROC_ZOMBIE
—————————————————————
Проверите укупно радно време (Старт / Он):
—————————————————————
TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,) ; echo $TIEMPO_ENCENDIDO
---------------
Проверите параметре видео картице:
---------------
============
Произвођач:
FAB_TVIDEO=$(lspci -v | grep "VGA" | cut -d " " -f05) ; echo $FAB_TVIDEO
============
РАМ:
MEM_TVIDEO=$(lspci -v -s `lspci | awk '/VGA/{print $1}'` | sed -n '/Memory.*, prefetchable/s/.*\[size=\([^]]\+\)M\]/\1/p') ; echo $MEM_TVIDEO
================
Модул (покретачки програм):
DRV_TVIDEO=$(lspci -nnk | grep -i vga -A3 | grep 'in use' | cut -d " " -f05) ; echo $DRV_TVIDEO
===============
3Д убрзање:
A3D_TVIDEO=$(glxinfo | grep "direct rendering: Yes" | awk '{print $3}') ; echo $A3D_TVIDEO
--------------
Провери параметре процесора (ЦПУ):
--------------
===========
Произвођач:
FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}') ; echo $FABRICANTE_CPU
=======
Модело:
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $MODELO_CPU
=========
Цантидад:
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; echo $TOTAL_CPU
================
Језгра по ЦПУ:
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; echo $NUCLEO_CPU
==========================
Укупан број језгара по процесорима:
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; TOTAL_NUCLEO_CPU=$((`expr $TOTAL_CPU \* $NUCLEO_CPU`)) ; echo $TOTAL_NUCLEO_CPU
======================
ЦПУ кеш меморија:
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $CACHE_CPU
Надам се ове мале "Савети" олакшати им извођење основних, али корисних оптимизација, које су углавном резервисане само за стручњаке у Технологија, рачунарство, слободни софтвер и ГНУ / Линук.
УЗОРЦИ ЕКРАНИ
ПОДСЈЕТНИК: Ако било која командна линија не успе да изврши или прикаже исправну вредност, будите сигурни да сте ручно тестирали сваки одељак командне линије да бисте покушали да прилагодите вредности или синтаксу неких променљивих.
Пуно Вам хвала.
Веома корисно.
Врло добро хвала.
Задовољство ми је сарађивати! Ускоро ћу се још много осврнути на употребу Схелл скриптирања у врло практичним случајевима.
Врло добар инжењер! Надам се да има још чланака о Схелл Сцриптингу.
Тамо приказане команде су изврсне и врло корисне.
Хвала вам на драгоценим информацијама; али у мом случају неке команде не дају очекивани резултат, на пример команде „ко“ и „в“ не показују ништа; ово ми се десило откако сам обавио неко ажурирање система (користим арцхлинук са менаџером екрана „лкдм“ и графичким окружењем „кфце 4.12“). Било која идеја шта се дешава (резултат је исти чак и ако користим кориснички роот).
Хвала.
Они би желели стручни систем направљен помоћу Схелл Сцриптинг-а који ће на захтев генерисати издвајање свих параметара система у облику извештаја.
Пример онога што се може урадити помоћу Схелл Сцриптинг:
ЛПИ-СБ8 Тест СцреенЦаст (ЛИНУКС ПОСТ ИНСТАЛЛ - СЦРИПТ БИЦЕНТЕНАРИО 8.0.0)
(лпи_сб8_адецуацион-аудиовисуал_2016.сх / 43Кб)
Погледајте Сцреенцаст: https://www.youtube.com/watch?v=cWpVQcbgCyY