Si të nxirrni parametrat nga Terminali duke përdorur Shell Scripting

El Shell Scripting, Ajo i referohet ekzekutimi i urdhrave komplekse rreth Terminali GNU / Linux (Console), është shumë e dobishme të automatizojmë aktivitetet rutinë dhe të rëndësishme brenda aktiviteteve tona Sistemi Operativ GNU / Linux, gjë që na lejon të zgjedhim tonat Burimet dhe koha, kjo është, me atë që përmbahet këtu ne do të shqyrtojmë se si nga terminali mund të ekzekutojmë urdhra manualë të komandës që më pas na lejojnë orarin / automatizimin aktivitetet në lidhje me kursimin e një ekipi Orët / Puna të ekzekutimit manual ose ballë për ballë, duke zbatuar urdhrat e përmendur në një Shkrim Bash Shell ose të përputhshëm dhe të shpjeguara në një mënyrë praktike dhe të thjeshtë.

Përzgjedhja_007

Ne do të mbulojmë si në një komandë e vetme komanduese Podemos nxjerr dhe shfaq vlerat / informacionet nga Sistemi Operativ / Hardware, të cilën më pas mund ta implementojmë brenda një Skenari Bash Shell për të automatizuar një detyrë specifike. Duke u përqëndruar në Praktikat më të mira e nevojshme për të marrë një model të shkëlqyeshëm të një Skripti më efikase dhe praktike.

--------------------
Merrni emrin e përdoruesit të parë të krijuar 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

----------------------
Merrni rrugën / shtëpinë e përdoruesit të parë të krijuar në 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

-------------
Kontrolloni datën e pajisjeve aktuale:
-------------

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

------------
Kontrolloni kohën aktuale të pajisjeve:
------------

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

————————————————–
Kontrolloni nëse Pritësi ka një lidhje interneti:
————————————————–

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
-------------
Kontrolloni llojin e sistemit operativ:
-------------

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

----------------------
Kontrolloni emrin, versionin dhe përmbysjen e sistemit operativ:
----------------------
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

----------------
Kontrolloni arkitekturën e sistemit operativ:
----------------

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

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

------------------
Kontrolloni versionin e kernelit të Sistemit Operativ:
------------------

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

----------
Kontrolloni emrin e hostit:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Kontrolloni IP-në e Brendshme dhe të Jashtme (Dalja Kryesore e Internetit):
----------------------

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

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

------------------
Kontrolloni vlerat (IP / MAC) të ndërfaqeve të rrjetit:
------------------

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
——————————————————
Kontrolloni Proxy / Gateway të Sistemit Operativ:
——————————————————

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

————————————————–
Kontrolloni emrin e domenit të rrjetit host:
————————————————–

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

---------------------
Kontrolloni adresën e rrjetit (IP) të serverit DNS host:
---------------------

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

-------------
Kontrolloni përdoruesit e lidhur me hostin:
-------------

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
---------------------------------
Kontrolloni Dosjen e Përdoruesit me më shumë të dhëna (# nga Skedarët / Madhësia në Bajte) në sistemin operativ:
----------------------------------

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

------------------------------
Kontrolloni Madhësinë në Bajte të Dosjes Superuser ose Dosje tjetër të Sistemit Operativ:
------------------------------

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

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

————————————————————–
Kontrolloni Dosjet e Krijuara të Përdoruesit (Emrat dhe Numrat):
————————————————————–

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

---------------------
Kontrolloni përdoruesit me UID 0 dhe GID 0 (SUPERUSERS) të krijuar:
---------------------

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

--------------
Kontrolloni statusin e RAM dhe kujtesës 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

------------------------
Kontrolloni gjendjen e ndarjeve / pikës së montimit të një 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

---------------------
Kontrolloni ngarkesën mesatare të sistemit (proceset në radhë):
---------------------

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

——————————————————
Kontrolloni proceset e Zombies në sistemin operativ:
——————————————————

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

---------------------
Kontrolloni kohën totale të punës (fillimi / ndezja):
---------------------

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

---------------
Kontrolloni parametrat e kartës video:
---------------

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

Prodhuesi:

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

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

Kujtesa RAM:

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

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

Moduli (Drejtuesi):

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

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

Nxitimi 3D:

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

--------------
Kontrolloni parametrat e procesorit (CPU):
--------------

===========

Prodhuesi:

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

=======

Modeli:

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

=========

Sasia:

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

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

Bërthamat për CPU:

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

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

Bërthamat totale për 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 e CPU:

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

Unë shpresoj që këta të vegjël "Këshilla" e bëjnë më të lehtë për ta që të kryejnë optimizime themelore, por të dobishme, të cilat zakonisht janë të rezervuara vetëm për ekspertët në Teknologji, Informatikë, Program i Lirë dhe GNU / Linux.

Ekranet e mostrës

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

KUJDES: Nëse ndonjë rresht komande nuk arrin të ekzekutojë ose shfaq vlerën e saktë, sigurohuni që të provoni manualisht secilën pjesë të komandës së shpejtë për të provuar dhe rregulluar vlerat ose sintaksën e disa ndryshoreve.


7 komente, lini tuajën

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.

  1.   Eduardo dijo

    Shumë falemnderit.

    Shumë e dobishme.

  2.   Ho2gi dijo

    Shumë mirë faleminderit .

  3.   Ing Jose Albert dijo

    Një kënaqësi për të bashkëpunuar! Së shpejti do të përdor shumë më tepër në përdorimin e Shell Scripting në raste shumë praktike.

  4.   cr0t0 dijo

    Inxhinier shumë i mirë! Shpresojmë që ka më shumë artikuj të Shkrimit të Shellit.

  5.   Francis Tovar dijo

    Komandat e paraqitura atje janë të shkëlqyera dhe shumë të dobishme.

  6.   userark dijo

    Faleminderit për informacionin e vlefshëm; por në rastin tim disa komanda nuk japin rezultatin e pritur, për shembull komanda "kush" dhe "w" nuk tregojnë asgjë; Kjo më ka ndodhur që kur kam bërë një azhurnim të sistemit (përdor archlinux me menaxherin e ekranit "lxdm" dhe ambientin grafik "xfce 4.12"). Çdo ide çfarë ndodh (rezultati është i njëjtë edhe nëse përdor rrënjën e përdoruesit).
    Ju faleminderit.

  7.   Ing Jose Albert dijo

    Ata do të dëshironin një Sistem ekspert të bërë me Shell Scripting që sipas kërkesës do të gjenerojë nxjerrjen e të gjithë parametrave të sistemit në formën e një Raporti.

    Një shembull i asaj që mund të bëhet me Shell Scripting:

    ScreenCast i Testit LPI-SB8 (INSTALIMI I POSTS LINUX - BICENTENARIO SHKRIMI 8.0.0)
    (lpi_sb8_adecuación-audiovizual_2016.sh / 43Kb)

    Shikoni shfaqjen në ekran: https://www.youtube.com/watch?v=cWpVQcbgCyY