Hogyan lehet kibontani a paramétereket a terminálból a Shell Scripting alkalmazásával

El Shell Scripting, Ez a komplex megrendelések végrehajtása én GNU / Linux terminál (konzol), nagyon hasznos a rutin és a fontos tevékenységek automatizálása a mi munkánkban GNU / Linux operációs rendszer, amely lehetővé teszi számunkra, hogy optimalizáljuk Források és idő, vagyis az itt foglaltakkal megvizsgáljuk, hogy a terminálból hogyan tudjuk végrehajtani a kézi parancsokat, amelyek ezt követően lehetővé teszik számunkra ütemezés / automatizálás tevékenységek egy csapat megtakarításáról Óra / munkaerő kézi vagy személyes végrehajtás, az említett megrendelések végrehajtása Bash Shell Script-ben vagy kompatibilis és praktikus és egyszerű módon megmagyarázva.

Kiválasztás_007

Kitérünk, mint a egyetlen parancs parancs Podemos kibontani és megjeleníteni az operációs rendszer / hardver értékeit / információit, amelyet aztán a Bash Shell szkript egy adott feladat automatizálására. Összpontosítva a Legjobb gyakorlatok szükséges ahhoz, hogy a szkript kiválóan megtervezhető legyen hatékonyabb és praktikusabb.

--------------------
Szerezze be a rendszerben létrehozott első felhasználó nevét:
--------------------

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

----------------------
Szerezze be a rendszeren létrehozott első felhasználó / home elérési útját:
----------------------

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

-------------
Ellenőrizze a jelenlegi berendezés dátumát:
-------------

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

------------
Ellenőrizze a berendezés aktuális idejét:
------------

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

----------------
Ellenőrizze, hogy a Gazdának van-e internetkapcsolata:
----------------

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
-------------
Ellenőrizze az operációs rendszer típusát:
-------------

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

----------------------
Ellenőrizze az operációs rendszer nevét, verzióját és alverzióját:
----------------------
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

----------------
Ellenőrizze az operációs rendszer architektúráját:
----------------

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

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

------------------
Ellenőrizze az operációs rendszer kernelváltozatát:
------------------

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

----------
Ellenőrizze a gazdagép nevét:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Ellenőrizze a belső és külső IP-t (fő internetes kimenet):
----------------------

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

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

------------------
Ellenőrizze a hálózati interfészek értékeit (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
-----------------
Ellenőrizze az operációs rendszer proxyját / átjáróját:
-----------------

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

----------------
Ellenőrizze a Gazdahálózat domain nevét:
----------------

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

---------------------
Ellenőrizze a hoszt DNS-kiszolgálójának hálózati címét (IP):
---------------------

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

-------------
Ellenőrizze a gazdagéphez csatlakozott felhasználókat:
-------------

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
---------------------------------
Ellenőrizze a felhasználói mappát további adatokkal (fájlok száma / méret bájtban) az operációs rendszerben:
----------------------------------

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

------------------------------
Ellenőrizze a méretet bájtban a felsőfelhasználói mappában vagy az operációs rendszer más mappájában:
------------------------------

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

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

a a a a a a a a a a a a a a
Ellenőrizze a létrehozott felhasználói mappákat (nevek és számok):
a a a a a a a a a a a a a a

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

---------------------
Ellenőrizze a létrehozott UID 0 ÉS GID 0 (SUPERUSERS) felhasználókat:
---------------------

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

--------------
Ellenőrizze a RAM és a Swap memória állapotát:
--------------

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

------------------------
Ellenőrizze a SATA lemez partícióinak állapotát / csatlakozási pontját:
------------------------

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

---------------------
Ellenőrizze az átlagos rendszerterhelést (várakozási folyamatok):
---------------------

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

-----------------
Ellenőrizze a zombik folyamatait az operációs rendszerben:
-----------------

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

---------------------
Ellenőrizze a teljes munkaidőt (Start / On):
---------------------

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

---------------
Ellenőrizze a videokártya paramétereit:
---------------

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

Készítő:

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 (illesztőprogram):

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

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

3D gyorsulás:

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

--------------
A processzor (CPU) paramétereinek ellenőrzése:
--------------

===========

Készítő:

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

=========

Cantidad:

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

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

Magok CPU-nként:

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

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

Teljes mag / 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 gyorsítótár memória:

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

Remélem, ezek a kicsik "Tippek" megkönnyítik számukra az alapvető, de hasznos optimalizálások elvégzését, amelyeket általában csak az Egyesült Államok szakértői tartanak fenn Technológia, számítástechnika, szabad szoftver és GNU / Linux.

MINTAKÉPEK

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

EMLÉKEZTETŐ: Ha bármelyik parancssor nem hajtható végre, vagy a megfelelő értéket jeleníti meg, mindenképpen tesztelje manuálisan a parancssor egyes szakaszait, hogy megpróbálja módosítani egyes változók értékeit vagy szintaxisát.


7 hozzászólás, hagyd a tiedet

Hagyja megjegyzését

E-mail címed nem kerül nyilvánosságra. Kötelező mezők vannak jelölve *

*

*

  1. Az adatokért felelős: Miguel Ángel Gatón
  2. Az adatok célja: A SPAM ellenőrzése, a megjegyzések kezelése.
  3. Legitimáció: Az Ön beleegyezése
  4. Az adatok közlése: Az adatokat csak jogi kötelezettség alapján továbbítjuk harmadik felekkel.
  5. Adattárolás: Az Occentus Networks (EU) által üzemeltetett adatbázis
  6. Jogok: Bármikor korlátozhatja, helyreállíthatja és törölheti adatait.

  1.   Eduardo dijo

    Köszönöm szépen.

    Nagyon hasznos.

  2.   HO2Gi dijo

    Jól, köszi .

  3.   José Albert dijo

    Öröm együttműködni! Hamarosan még sok másra fogok támaszkodni a Shell Scripting használatával nagyon praktikus esetekben.

  4.   cr0t0 dijo

    Nagyon jó mérnök! Remélhetőleg több Shell Scripting cikk is található.

  5.   Tovar Ferenc dijo

    Az ott bemutatott parancsok kiválóak és nagyon hasznosak.

  6.   userarch dijo

    Köszönöm az értékes információkat; de az én esetemben néhány parancs nem adja meg a várt eredményt, például a "ki" és a "w" parancs nem mutat semmit; ez velem történt, mivel némi rendszerfrissítést hajtottam végre (az archlinuxot az "lxdm" képernyőkezelővel és az "xfce 4.12" grafikus környezettel használom). Bármi ötlet, hogy mi történik (az eredmény ugyanaz, akkor is, ha felhasználói root-t használok).
    Köszönöm.

  7.   José Albert dijo

    Szeretnének egy Shell Scripting segítségével készített szakértői rendszert, amely kérésre jelentés formájában elkészíti a rendszer összes paraméterének kinyerését.

    Példa a Shell Scripting használatára:

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

    Lásd: Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY