Cum se extrag parametrii din Terminal aplicând Shell Scripting

El shell a Scripting, Se referă la executarea ordinelor complexe pe Terminal GNU / Linux (Consolă), este foarte util să automatizăm activitățile de rutină și importante din cadrul nostru Sistem de operare GNU / Linux, ceea ce ne permite să ne optimizăm Resurse și timp, adică, cu ceea ce este conținut aici, vom explora cum de la terminal putem executa comenzi manuale care apoi ne permit programează / automatizează activități despre salvarea unei echipe Ore / travaliu de execuție manuală sau față în față, implementând ordinele menționate într-un script Bash Shell sau compatibil și explicat într-un mod practic și simplu.

Selección_007

Vom acoperi ca în o singură comandă de comandă noi extrageți și afișați valori / informații din sistemul de operare / hardware, pe care apoi îl putem implementa în cadrul unui Script Bash Shell pentru a automatiza o sarcină specifică. Concentrându-ne pe Cele mai bune practici necesar pentru a obține un design excelent al unui script în cale mai eficient și practic.

--------------------
Obțineți numele primului utilizator creat în sistem:
--------------------

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

----------------------
Obțineți calea / home a primului utilizator creat pe sistem:
----------------------

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

-------------
Verificați data echipamentului curent:
-------------

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

------------
Verificați timpul curent al echipamentului:
------------

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

----------------
Verificați dacă gazda are o conexiune la internet:
----------------

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
-------------
Verificați tipul de sistem de operare:
-------------

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

----------------------
Verificați numele, versiunea și subversiunea sistemului de operare:
----------------------
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

----------------
Verificați arhitectura sistemului de operare:
----------------

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

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

------------------
Verificați versiunea kernel a sistemului de operare:
------------------

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

----------
Verificați numele gazdei:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Verificați IP intern și extern (ieșire principală Internet):
----------------------

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

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

------------------
Verificați valorile (IP / MAC) ale interfețelor de rețea:
------------------

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
-----------------
Verificați proxy-ul / gateway-ul sistemului de operare:
-----------------

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

----------------
Verificați numele domeniului rețelei gazdă:
----------------

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

---------------------
Verificați adresa de rețea (IP) a serverului DNS gazdă:
---------------------

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

-------------
Verificați utilizatorii conectați la gazdă:
-------------

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
---------------------------------
Verificați folderul utilizatorului cu mai multe date (numărul de fișiere / dimensiune în octeți) în sistemul de operare:
----------------------------------

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

------------------------------
Verificați dimensiunea în octeți a dosarului superutilizator sau a altui dosar al sistemului de operare:
------------------------------

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

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

--------------------
Verificați folderele de utilizator create (nume și numere):
--------------------

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

---------------------
Verificați Utilizatorii cu UID 0 ȘI GID 0 (SUPERURI) creat:
---------------------

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

--------------
Verificați starea memoriei RAM și a swap-ului:
--------------

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

------------------------
Verificați starea partițiilor / punctul de montare al unui disc 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

---------------------
Verificați încărcarea medie a sistemului (procese în coadă):
---------------------

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

-----------------
Verificați procesele Zombies în sistemul de operare:
-----------------

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

---------------------
Verificați timpul total de lucru (pornire / pornire):
---------------------

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

---------------
Verificați parametrii plăcii video:
---------------

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

Producator:

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

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

Memorie RAM:

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

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

Modul (driver):

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

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

Accelerație 3D:

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

--------------
Verificați parametrii procesorului (CPU):
--------------

===========

Producator:

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

=======

Model:

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

=========

cantitate:

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

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

Cores per CPU:

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

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

Totalul nucleelor ​​per 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

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

Memorie cache CPU:

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

Sper ca acești micuți "Sfaturi" le permite acestora să realizeze cu ușurință optimizări de bază, dar utile, care sunt, în general, rezervate numai experților din Tehnologie, Calculatoare, Software gratuit și GNU / Linux.

PROBE DE ECRANE

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

ADUCERE AMINTE: Dacă o linie de comandă nu reușește să execute sau să afișeze valoarea corectă, asigurați-vă că testați manual fiecare secțiune a promptului de comandă pentru a încerca să ajustați valorile sau sintaxa unor variabile.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   Eduardo el a spus

    Mulţumesc mult.

    Foarte util.

  2.   HO2Gi el a spus

    Foarte bine, multumesc .

  3.   Jose Albert el a spus

    O plăcere să colaborez! În curând voi folosi multe altele despre utilizarea Shell Scripting în cazuri foarte practice.

  4.   cr0t0 el a spus

    Foarte bun inginer! Sperăm că există mai multe articole Shell Scripting.

  5.   Francis Tovar el a spus

    Comenzile afișate acolo sunt excelente și foarte utile.

  6.   userarch el a spus

    Vă mulțumim pentru informațiile valoroase; dar în cazul meu unele comenzi nu dau rezultatul scontat, de exemplu comanda „cine” și „w” nu arată nimic; Mi s-a întâmplat asta de când am făcut unele actualizări de sistem (folosesc archlinux cu managerul de ecran „lxdm” și mediul grafic „xfce 4.12”). Orice idee despre ce se întâmplă (rezultatul este același, chiar dacă folosesc user root).
    Mulţumesc.

  7.   Jose Albert el a spus

    Ar dori un sistem expert realizat cu Shell Scripting care, la cerere, va genera extragerea tuturor parametrilor sistemului sub forma unui raport.

    Un exemplu de ceea ce se poate face cu Shell Scripting:

    Test ScreenCast LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

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