Како извући параметре из терминала применом Схелл Сцриптинг

El Схелл Сцриптинг, Односи се на извршење сложених налога о њему ГНУ / Линук терминал (конзола), веома је корисно аутоматизовати рутинске и важне активности у оквиру нашег ГНУ / Линук оперативни систем, што нам омогућава да оптимизујемо наше Ресурси и време, односно са оним што је овде садржано истражићемо како са терминала можемо извршити ручне команде које нам то дозвољавају распоред / аутоматизовати активности око уштеде у тиму Сати / рад ручног или лицем у лице извршења, спровођење наведених налога у Басх Схелл скрипти или компатибилно и објашњено на практичан и једноставан начин.

Селецтион_007

Покриваћемо као у једну командну команду подемос издвајање и приказ вредности / информација из оперативног система / хардвера, коју затим можемо применити у оквиру а Басх Схелл сценарио за аутоматизацију одређеног задатка. Фокусирајући се на Најбоље праксе неопходан за постизање изврсног дизајна скрипте на тај начин ефикасније и практичније.

--------------------
Дохватите име првог корисника креираног у систему:
--------------------

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

Надам се ове мале "Савети" олакшати им извођење основних, али корисних оптимизација, које су углавном резервисане само за стручњаке у Технологија, рачунарство, слободни софтвер и ГНУ / Линук.

УЗОРЦИ ЕКРАНИ

јалберт: басх - Консоле_008

јалберт: басх - Консоле_009

ПОДСЈЕТНИК: Ако било која командна линија не успе да изврши или прикаже исправну вредност, будите сигурни да сте ручно тестирали сваки одељак командне линије да бисте покушали да прилагодите вредности или синтаксу неких променљивих.


Оставите свој коментар

Ваша емаил адреса неће бити објављена. Обавезна поља су означена са *

*

*

  1. За податке одговоран: Мигуел Ангел Гатон
  2. Сврха података: Контрола нежељене поште, управљање коментарима.
  3. Легитимација: Ваш пристанак
  4. Комуникација података: Подаци се неће преносити трећим лицима, осим по законској обавези.
  5. Похрана података: База података коју хостује Оццентус Нетворкс (ЕУ)
  6. Права: У било ком тренутку можете ограничити, опоравити и избрисати своје податке.

  1.   Едуардо дијо

    Пуно Вам хвала.

    Веома корисно.

  2.   ХО2Ги дијо

    Врло добро хвала.

  3.   Инг. Јосе Алберт дијо

    Задовољство ми је сарађивати! Ускоро ћу се још много осврнути на употребу Схелл скриптирања у врло практичним случајевима.

  4.   цр0т0 дијо

    Врло добар инжењер! Надам се да има још чланака о Схелл Сцриптингу.

  5.   Францисцо Товар дијо

    Тамо приказане команде су изврсне и врло корисне.

  6.   усерарцх дијо

    Хвала вам на драгоценим информацијама; али у мом случају неке команде не дају очекивани резултат, на пример команде „ко“ и „в“ не показују ништа; ово ми се десило откако сам обавио неко ажурирање система (користим арцхлинук са менаџером екрана „лкдм“ и графичким окружењем „кфце 4.12“). Било која идеја шта се дешава (резултат је исти чак и ако користим кориснички роот).
    Хвала.

  7.   Инг. Јосе Алберт дијо

    Они би желели стручни систем направљен помоћу Схелл Сцриптинг-а који ће на захтев генерисати издвајање свих параметара система у облику извештаја.

    Пример онога што се може урадити помоћу Схелл Сцриптинг:

    ЛПИ-СБ8 Тест СцреенЦаст (ЛИНУКС ПОСТ ИНСТАЛЛ - СЦРИПТ БИЦЕНТЕНАРИО 8.0.0)
    (лпи_сб8_адецуацион-аудиовисуал_2016.сх / 43Кб)

    Погледајте Сцреенцаст: https://www.youtube.com/watch?v=cWpVQcbgCyY