Ako extrahovať parametre z terminálu pomocou Shell Scripting

El Shell skriptovanie, Odkazuje na vykonávanie zložitých objednávok o Terminál GNU / Linux (konzola), je veľmi užitočné automatizovať bežné a dôležité činnosti v rámci našej spoločnosti Operačný systém GNU / Linux, čo nám umožňuje optimalizovať naše Zdroje a čas, to znamená, čo tu je obsiahnuté, preskúmame, ako z terminálu môžeme vykonávať manuálne príkazy, ktoré nám potom umožňujú naplánovať / automatizovať aktivity o zachraňovaní tímu Hodiny / práca manuálneho alebo osobného vykonania, implementácie uvedených príkazov v skripte Bash Shell alebo kompatibilného a vysvetleného praktickým a jednoduchým spôsobom.

Výber_007

Prikryjeme ako v jediný príkaz príkaz Podemos extrahovať a zobraziť hodnoty / informácie z operačného systému / hardvéru, ktoré potom môžeme implementovať v rámci a Bash Shell skript automatizovať konkrétnu úlohu. Zameranie na Osvedčené postupy nevyhnutné na získanie vynikajúcej podoby skriptu efektívnejšie a praktickejšie.

--------------------
Získajte meno prvého používateľa vytvoreného v systéme:
--------------------

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

----------------------
Získajte cestu k / home prvého používateľa vytvoreného v systéme:
----------------------

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

-------------
Skontrolujte aktuálny dátum vybavenia:
-------------

FECHA_ACTUAL=$(date +"%d %b %y") ; echo $FECHA_ACTUAL

------------
Skontrolujte aktuálny čas zariadenia:
------------

HORA_ACTUAL=$(date +"%H:%M") ; echo $HORA_ACTUAL

----------------
Skontrolujte, či má hostiteľ internetové pripojenie:
----------------

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
-------------
Skontrolujte typ operačného systému:
-------------

SISTEMA_OPERATIVO=$(uname -o) ; echo $SISTEMA_OPERATIVO

----------------------
Skontrolujte názov, verziu a podverziu operačného systému:
----------------------
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

----------------
Skontrolujte architektúru operačného systému:
----------------

ARQUITECTURA=$(uname -m) ; echo $ARQUITECTURA

ARQUITECTURA=$(uname -m) ; if [[ "$ARQUITECTURA" = "x86" ]]; then ARQ_SISTEMA=32; else ARQ_SISTEMA=64; fi ; echo $ARQ_SISTEMA

------------------
Skontrolujte verziu operačného systému s jadrom:
------------------

VERSION_KERNEL=$(uname -r) ; echo $VERSION_KERNEL

----------
Skontrolujte meno hostiteľa:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Skontrolujte internú a externú IP (hlavný internetový výstup):
----------------------

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

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

------------------
Skontrolujte hodnoty (IP / MAC) sieťových rozhraní:
------------------

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
-----------------
Skontrolujte proxy server / bránu operačného systému:
-----------------

PROXY_GATEWAY=$(route -n | sed -n '3p' | awk '{print $2}') ; echo $PROXY_GATEWAY

----------------
Skontrolujte názov domény hostiteľskej siete:
----------------

DOMINIO=$(cat /etc/resolv.conf | sed '2 d' | grep search | sed -n '1p' | awk '{print $2}') ; echo $DOMINIO

---------------------
Skontrolujte sieťovú adresu (IP) hostiteľského servera DNS:
---------------------

IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}') ; echo $IP_SERVIDOR_DNS

-------------
Skontrolujte používateľov pripojených k hostiteľovi:
-------------

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
---------------------------------
Skontrolujte priečinok používateľa s väčším počtom údajov (počet súborov / veľkosť v bajtoch) v operačnom systéme:
----------------------------------

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

------------------------------
Skontrolujte veľkosť v bajtoch priečinka Superuser alebo iného priečinka operačného systému:
------------------------------

DATA_ROOT=$(du -sh /root | awk '{print $1}') ; echo $DATA_ROOT

DATA_CARPETA1=$(du -sh /var | awk '{print $1}') ; echo $DATA_CARPETA1

--------------------
Skontrolujte vytvorené priečinky používateľa (mená a čísla):
--------------------

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

---------------------
Skontrolujte používateľov s vytvoreným UID 0 A 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

--------------
Skontrolujte stav pamäte RAM a pamäte Swap:
--------------

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

------------------------
Skontrolujte stav oddielov / bodu pripojenia disku 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

---------------------
Skontrolujte priemerné zaťaženie systému (procesy vo fronte):
---------------------

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

-----------------
Skontrolujte procesy Zombies v operačnom systéme:
-----------------

PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}') ; echo $PROC_ZOMBIE

---------------------
Skontrolujte celkový pracovný čas (štart / zapnutie):
---------------------

TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,) ; echo $TIEMPO_ENCENDIDO

---------------
Skontrolujte parametre grafickej karty:
---------------

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

Výrobca:

FAB_TVIDEO=$(lspci -v | grep "VGA" | cut -d " " -f05) ; echo $FAB_TVIDEO

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

RAM:

MEM_TVIDEO=$(lspci -v -s `lspci | awk '/VGA/{print $1}'` | sed -n '/Memory.*, prefetchable/s/.*\[size=\([^]]\+\)M\]/\1/p') ; echo $MEM_TVIDEO

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

Modul (ovládač):

DRV_TVIDEO=$(lspci -nnk | grep -i vga -A3 | grep 'in use' | cut -d " " -f05) ; echo $DRV_TVIDEO

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

3D zrýchlenie:

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

--------------
Skontrolujte parametre procesora (CPU):
--------------

===========

Výrobca:

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}') ; echo $FABRICANTE_CPU

=======

Modelo:

MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $MODELO_CPU

=========

množstvo:

NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; echo $TOTAL_CPU

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

Jadrá na procesor:

NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; echo $NUCLEO_CPU

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

Celkový počet jadier na procesor:

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

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

Vyrovnávacia pamäť procesora:

CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $CACHE_CPU

Dúfam, že títo malí „Tipy“ uľahčiť im vykonávanie základných, ale užitočných optimalizácií, ktoré sú vo všeobecnosti vyhradené iba pre ľudí, ktorí sú odborníkmi na dané odvetvie Technológia, výpočtová technika, slobodný softvér a GNU / Linux.

OBRAZOVKY NA VZORKU

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

PRIPOMENUTIE: Ak sa niektorý príkazový riadok nepodarí vykonať alebo zobrazuje správnu hodnotu, nezabudnite každú časť príkazového riadku ručne otestovať, aby ste sa pokúsili upraviť hodnoty alebo syntax niektorých premenných.


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.

  1.   Eduardo dijo

    Děkuju mnohokrát.

    Veľmi užitočný.

  2.   HO2Gi dijo

    Veľmi dobre, ďakujem .

  3.   Ing.Jose Albert dijo

    Radosť spolupracovať! Čoskoro pripojím oveľa viac k používaniu Shell Scripting vo veľmi praktických prípadoch.

  4.   cr0t0 dijo

    Veľmi dobrý inžinier! Dúfajme, že existuje viac článkov o skriptovaní Shell.

  5.   Františka Tovara dijo

    Zobrazené príkazy sú vynikajúce a veľmi užitočné.

  6.   userarch dijo

    Ďakujem za cenné informácie; ale v mojom prípade niektoré príkazy nedávajú očakávaný výsledok, napríklad príkaz „kto“ a „w“ nič neukazujú; To sa mi stalo odvtedy, čo som urobil nejakú aktualizáciu systému (používam archlinux s manažérom obrazovky „lxdm“ a grafickým prostredím „xfce 4.12“). Akákoľvek predstava, čo sa stane (výsledok je rovnaký, aj keď použijem root používateľa).
    Ďakujem.

  7.   Ing.Jose Albert dijo

    Chceli by odborný systém vyrobený pomocou programu Shell Scripting, ktorý na požiadanie vygeneruje extrakciu všetkých parametrov systému vo forme správy.

    Príklad toho, čo sa dá robiť pomocou Shell Scripting:

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

    Pozri Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY