Kā iegūt parametrus no termināļa, izmantojot Shell Scripting

El Shell skripti, Tas attiecas uz sarežģītu pasūtījumu izpilde uz GNU / Linux terminālis (konsole), ir ļoti noderīgi automatizēt rutīnas un svarīgas darbības mūsu iekšienē GNU / Linux operētājsistēma, kas ļauj mums optimizēt mūsu Resursi un laiks, tas ir, ar to, kas šeit ir, mēs izpētīsim, kā no termināla mēs varam izpildīt manuālas komandas, kas pēc tam mums ļauj plānot / automatizēt aktivitātes par komandas taupīšanu Stundas / darbs manuāli vai klātienē, izpildot minētos pasūtījumus Bash Shell vai saderīgā skriptā un izskaidrojot tos praktiski un vienkārši.

Selection_007

Mēs aptversim kā viena komandas komanda podemos izvilkt un parādīt vērtības / informāciju no operētājsistēmas / aparatūras, kuru pēc tam mēs varam ieviest a Bash Shell skripts automatizēt noteiktu uzdevumu. Koncentrējoties uz Labākā pieredze nepieciešams, lai iegūtu izcilu skripta dizainu efektīvāka un praktiskāka.

--------------------
Iegūstiet pirmā sistēmā izveidotā lietotāja vārdu:
--------------------

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

———————————————————————
Iegūstiet pirmā sistēmā izveidotā lietotāja / home ceļu:
———————————————————————

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

-------------
Pārbaudiet pašreizējā aprīkojuma datumu:
-------------

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

------------
Pārbaudiet pašreizējo aprīkojuma laiku:
------------

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

————————————————
Pārbaudiet, vai resursdatoram ir interneta savienojums:
————————————————

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
-------------
Pārbaudiet operētājsistēmas veidu:
-------------

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

----------------------
Pārbaudiet operētājsistēmas nosaukumu, versiju un apakšversiju:
----------------------
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

----------------
Pārbaudiet operētājsistēmas arhitektūru:
----------------

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

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

------------------
Pārbaudiet operētājsistēmas kodola versiju:
------------------

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

----------
Pārbaudiet resursdatora nosaukumu:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Pārbaudiet iekšējo un ārējo IP (galvenā interneta izeja):
----------------------

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

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

------------------
Tīkla saskarņu pārbaudes vērtības (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
——————————————————
Pārbaudiet operētājsistēmas starpniekserveri / vārteju:
——————————————————

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

————————————————
Pārbaudiet resursdatora domēna nosaukumu:
————————————————

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

---------------------
Pārbaudiet resursdatora DNS servera tīkla adresi (IP):
---------------------

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

-------------
Pārbaudiet lietotājus, kas saistīti ar resursdatoru:
-------------

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
—————————————————————————————————————————
Pārbaudiet lietotāja mapi ar vairāk datu (failu skaits / lielums baitos) operētājsistēmā:
----------------------------------

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

—————————————————————————————
Pārbaudiet lielumu lietotājmapes vai citas operētājsistēmas mapes lielumā baitos:
—————————————————————————————

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

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

--------------------
Pārbaudiet izveidotās lietotāju mapes (nosaukumus un numurus):
--------------------

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

---------------------
Pārbaudiet lietotājus ar izveidoto UID 0 UN 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

--------------
Pārbaudiet RAM un maiņas atmiņas statusu:
--------------

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

------------------------
Pārbaudiet SATA diska nodalījumu / pievienošanas punkta stāvokli:
------------------------

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

---------------------
Pārbaudiet vidējo sistēmas slodzi (rindā esošie procesi):
---------------------

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

——————————————————
Pārbaudiet zombiju procesus operētājsistēmā:
——————————————————

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

---------------------
Pārbaudiet kopējo darba laiku (sākums / ieslēgts):
---------------------

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

---------------
Pārbaudiet video kartes parametrus:
---------------

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

Veidotājs:

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

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

Modulis (draiveris):

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

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

3D paātrinājums:

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

--------------
Pārbaudiet procesora (CPU) parametrus:
--------------

===========

Veidotājs:

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

=======

Modelis:

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

=========

cantidad:

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

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

Kodoli uz CPU:

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

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

Kopējais serdeņu skaits uz 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

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

CPU kešatmiņa:

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

Es ceru, ka šie mazie "Padomi" ļauj viņiem viegli veikt pamata, bet noderīgas optimizācijas, kuras parasti ir paredzētas tikai cilvēkiem, kuri ir eksperti Tehnoloģija, skaitļošana, bezmaksas programmatūra un GNU / Linux.

PARAUGU EKRĀNI

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

ATGĀDINĀJUMS: Ja kāda komandrinda neizdodas izpildīt vai parāda pareizu vērtību, noteikti manuāli pārbaudiet katru komandrindas sadaļu, lai mēģinātu pielāgot dažu mainīgo vērtības vai sintaksi.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.

  1.   Eduardo teica

    Liels paldies.

    Ļoti noderīgs.

  2.   HO2Gi teica

    Ļoti labi, paldies .

  3.   Ing. Hosē Alberts teica

    Prieks sadarboties! Drīz es daudz vairāk pievērsīšos Shell Scripting izmantošanai ļoti praktiskos gadījumos.

  4.   cr0t0 teica

    Ļoti labs inženieris! Cerams, ka ir vairāk rakstu Shell Scripting.

  5.   Fransisko Tovars teica

    Tur parādītās komandas ir izcilas un ļoti noderīgas.

  6.   lietotāja arhs teica

    Paldies par vērtīgo informāciju; bet manā gadījumā dažas komandas nedod gaidīto rezultātu, piemēram, komandas "kas" un "w" neko neparāda; tas notika ar mani, kopš es veicu kādu sistēmas atjauninājumu (es izmantoju archlinux ar ekrāna pārvaldnieku "lxdm" un grafisko vidi "xfce 4.12"). Jebkura ideja par to, kas notiek (rezultāts ir tāds pats, pat ja es izmantoju lietotāja sakni).
    Paldies.

  7.   Ing. Hosē Alberts teica

    Viņi vēlas, lai ar Shell Scripting izveidotu ekspertu sistēmu, kas pēc pieprasījuma ziņojuma veidā ģenerēs visu sistēmas parametru ieguvi.

    Piemērs tam, ko var izdarīt, izmantojot čaulas skriptu:

    LPI-SB8 testa ekrāna apraide (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)

    Skatīt ekrāna apraidi: https://www.youtube.com/watch?v=cWpVQcbgCyY