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.
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
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.
Liels paldies.
Ļoti noderīgs.
Ļoti labi, paldies .
Prieks sadarboties! Drīz es daudz vairāk pievērsīšos Shell Scripting izmantošanai ļoti praktiskos gadījumos.
Ļoti labs inženieris! Cerams, ka ir vairāk rakstu Shell Scripting.
Tur parādītās komandas ir izcilas un ļoti noderīgas.
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.
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