Як атрымаць параметры з тэрмінала, ужываючы сцэнарыі Shell

El Абалонка сцэнарыяў, Гэта адносіцца да выкананне складаных заказаў на Тэрмінал GNU / Linux (кансоль), вельмі карысна аўтаматызаваць звычайныя і важныя мерапрыемствы ў рамках нашага Аперацыйная сістэма GNU / Linux, што дазваляе нам аптымізаваць нашы Рэсурсы і час, гэта значыць, з улікам гэтага мы будзем вывучаць, як з тэрмінала мы можам выконваць ручныя загады каманд, якія потым дазваляюць нам графік / аўтаматызаваць дзейнасць па эканоміі каманды Гадзіны працы ручнога альбо вочнага выканання, рэалізацыя названых загадаў у сцэнарыі Bash Shell альбо сумяшчальнасць і тлумачэнне практычна і проста.

Выбар_007Мы пакрыем як у адна камандная каманда мы выманне і адлюстраванне значэнняў / інфармацыі з аперацыйнай сістэмы / абсталявання, які мы зможам потым рэалізаваць на працягу Сцэнар Bash Shell для аўтаматызацыі канкрэтнай задачы. Засяроджванне ўвагі на Лепшыя практыкі неабходна атрымаць выдатны дызайн сцэнарыя больш эфектыўна і практычна.

--------------------
Атрымайце імя першага карыстальніка, створанага ў сістэме:
--------------------

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

----------------------
Атрымаць / home шлях першага карыстальніка, створанага ў сістэме:
----------------------

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 (асноўны выхад у Інтэрнэт):
----------------------

IP_INTERNA=$(hostname -I) ; echo $IP_INTERNA

IP_EXTERNA=$(curl -s ipecho.net/plain;echo) ; echo $IP_EXTERNA

------------------
Кантрольныя значэнні (IP / MAC) сеткавых інтэрфейсаў:
------------------

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) хоставага DNS-сервера:
---------------------

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

---------------------
Праверце карыстальнікаў з UID 0 І GID 0 (SUPERUSERS) створаны:
---------------------

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

------------------------
Праверце стан раздзелаў / кропку мантавання дыска SATA:
------------------------

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

-----------------
Праверце працэсы Zombies у аперацыйнай сістэме:
-----------------

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

===============

3D-паскарэнне:

A3D_TVIDEO=$(glxinfo | grep "direct rendering: Yes" | awk '{print $3}') ; echo $A3D_TVIDEO

--------------
Праверце параметры працэсара (CPU):
--------------

===========

Вытворца:

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

Я спадзяюся, што гэтыя малыя "Парады" палегчыць ім выкананне асноўных, але карысных аптымізацый, якія звычайна прызначаны толькі для экспертаў Тэхналогіі, вылічальная тэхніка, свабоднае праграмнае забеспячэнне і GNU / Linux.

УЗОРЫ ЭКРАНАЎ

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

НАПАМЯНЕННЕ: Калі які-небудзь камандны радок не можа выканаць альбо адлюстроўвае правільнае значэнне, абавязкова правярайце кожны раздзел каманднага радка ўручную, каб паспрабаваць наладзіць значэнні альбо сінтаксіс некаторых зменных.


Змест артыкула адпавядае нашым прынцыпам рэдакцыйная этыка. Каб паведаміць пра памылку, націсніце тут.

7 каментарыяў, пакіньце свой

Пакіньце свой каментар

Ваш электронны адрас не будзе апублікаваны.

*

*

  1. Адказны за дадзеныя: Мігель Анхель Гатон
  2. Прызначэнне дадзеных: Кантроль спаму, кіраванне каментарыямі.
  3. Легітымнасць: ваша згода
  4. Перадача дадзеных: Дадзеныя не будуць перададзены трэцім асобам, за выключэннем юрыдычных абавязкаў.
  5. Захоўванне дадзеных: База дадзеных, размешчаная Occentus Networks (ЕС)
  6. Правы: у любы час вы можаце абмежаваць, аднавіць і выдаліць сваю інфармацыю.

  1.   Эдуарда сказаў

    Вялікае дзякуй.

    Вельмі карысна.

  2.   HO2Gi сказаў

    Вельмі добры дзякуй.

  3.   Інжынер Хасэ Альберт сказаў

    Прыемна супрацоўнічаць! Неўзабаве я распавяду пра выкарыстанне сцэнарыяў Shell у вельмі практычных выпадках.

  4.   cr0t0 сказаў

    Вельмі добры інжынер! Спадзяюся, ёсць яшчэ артыкулы пра сцэнарыі Shell.

  5.   Францыска Тавар сказаў

    Каманды, паказаныя там, выдатныя і вельмі карысныя.

  6.   userarch сказаў

    Дзякуй за каштоўную інфармацыю; але ў маім выпадку некаторыя каманды не даюць чаканага выніку, напрыклад каманды "хто" і "ш" нічога не паказваюць; Гэта адбылося са мной пасля таго, як я зрабіў нейкае абнаўленне сістэмы (я выкарыстоўваю archlinux з дыспетчарам экрана "lxdm" і графічным асяроддзем "xfce 4.12"). Любая ідэя, што адбываецца (вынік той самы, нават калі я выкарыстоўваю каранёвую сістэму карыстальніка).
    Дзякуй.

  7.   Інжынер Хасэ Альберт сказаў

    Яны хацелі б атрымаць экспертную сістэму, створаную з дапамогай Shell Scripting, якая па запыце генеруе выманне ўсіх параметраў сістэмы ў выглядзе справаздачы.

    Прыклад таго, што можна зрабіць са сцэнарыямі Shell:

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisual_2016.sh / 43 Кб)

    Глядзіце скрынкаст: https://www.youtube.com/watch?v=cWpVQcbgCyY