El "Shell scenarijus, Tai reiškia sudėtingų užsakymų vykdymas apie GNU / „Linux“ terminalas (konsolė), labai naudinga automatizuoti įprastą ir svarbią veiklą mūsų viduje GNU / Linux operacinė sistema, kuris leidžia mums optimizuoti savo Ištekliai ir laikas, tai yra tai, kas čia yra, mes ištirsime, kaip iš terminalo mes galime vykdyti rankines komandų komandas, kurios mums tada leidžia planuoti / automatizuoti veikla apie komandos taupymą Valandos / darbas rankinis arba tiesioginis vykdymas, vykdant nurodymus „Bash Shell“ scenarijuje arba suderinamuose ir paaiškinamuose praktiškai ir paprastai.
Apimsime kaip vienos komandos komanda podemos išskleisti ir rodyti vertes / informaciją iš operacinės sistemos / aparatinės įrangos, kurią tada galime įgyvendinti per a „Bash Shell“ scenarijus automatizuoti konkrečią užduotį. Didžiausias dėmesys Geriausia praktika norint gauti puikų scenarijaus dizainą efektyviau ir praktiškiau.
--------------------
Gaukite pirmojo sistemoje sukurto vartotojo vardą:
--------------------
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
————————————————————————
Gaukite pirmojo sistemoje sukurto vartotojo / home kelią:
————————————————————————
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
-------------
Patikrinkite dabartinės įrangos datą:
-------------
FECHA_ACTUAL=$(date +"%d %b %y") ; echo $FECHA_ACTUAL
------------
Patikrinkite dabartinį įrangos laiką:
------------
HORA_ACTUAL=$(date +"%H:%M") ; echo $HORA_ACTUAL
————————————————
Patikrinkite, ar pagrindiniame kompiuteryje yra interneto ryšys:
————————————————
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
-------------
Patikrinkite operacinės sistemos tipą:
-------------
SISTEMA_OPERATIVO=$(uname -o) ; echo $SISTEMA_OPERATIVO
----------------------
Patikrinkite operacinės sistemos pavadinimą, versiją ir pakeitimą:
----------------------
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
----------------
Patikrinkite operacinės sistemos architektūrą:
----------------
ARQUITECTURA=$(uname -m) ; echo $ARQUITECTURA
ARQUITECTURA=$(uname -m) ; if [[ "$ARQUITECTURA" = "x86" ]]; then ARQ_SISTEMA=32; else ARQ_SISTEMA=64; fi ; echo $ARQ_SISTEMA
------------------
Patikrinkite operacinės sistemos branduolio versiją:
------------------
VERSION_KERNEL=$(uname -r) ; echo $VERSION_KERNEL
----------
Patikrinkite pagrindinio kompiuterio pavadinimą:
----------
NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Patikrinkite vidinį ir išorinį IP (pagrindinis interneto išėjimas):
----------------------
IP_INTERNA=$(hostname -I) ; echo $IP_INTERNA
IP_EXTERNA=$(curl -s ipecho.net/plain;echo) ; echo $IP_EXTERNA
------------------
Patikrinkite tinklo sąsajų vertes (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
——————————————————
Patikrinkite operacinės sistemos tarpinį serverį / šliuzą:
——————————————————
PROXY_GATEWAY=$(route -n | sed -n '3p' | awk '{print $2}') ; echo $PROXY_GATEWAY
————————————————
Patikrinkite pagrindinio tinklo domeno vardą:
————————————————
DOMINIO=$(cat /etc/resolv.conf | sed '2 d' | grep search | sed -n '1p' | awk '{print $2}') ; echo $DOMINIO
---------------------
Patikrinkite pagrindinio DNS serverio tinklo adresą (IP):
---------------------
IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}') ; echo $IP_SERVIDOR_DNS
-------------
Patikrinkite prie pagrindinio kompiuterio prisijungusius vartotojus:
-------------
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
————————————————————————————————
Patikrinkite vartotojo aplanką su daugiau duomenų (failų skaičius / dydis baitais) operacinėje sistemoje:
----------------------------------
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
—————————————————————————————
Patikrinkite „Superuser“ aplanko ar kito operacinės sistemos aplanko dydį baitais:
—————————————————————————————
DATA_ROOT=$(du -sh /root | awk '{print $1}') ; echo $DATA_ROOT
DATA_CARPETA1=$(du -sh /var | awk '{print $1}') ; echo $DATA_CARPETA1
--------------------
Patikrinkite sukurtus vartotojo aplankus (vardus ir numerius):
--------------------
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
---------------------
Patikrinkite vartotojus su sukurtais UID 0 IR 0 GID (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
--------------
Patikrinkite RAM ir keičiamosios atminties būseną:
--------------
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
------------------------
Patikrinkite skaidinių būseną / SATA disko prijungimo tašką:
------------------------
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
---------------------
Patikrinkite vidutinę sistemos apkrovą (eilėje esantys procesai):
---------------------
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
——————————————————
Patikrinkite „Zombies“ procesus operacinėje sistemoje:
——————————————————
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}') ; echo $PROC_ZOMBIE
---------------------
Patikrinkite bendrą darbo laiką (pradžia / įjungta):
---------------------
TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,) ; echo $TIEMPO_ENCENDIDO
---------------
Patikrinkite vaizdo plokštės parametrus:
---------------
============
Rodiklis
Kūrėjas:
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 (tvarkyklė):
DRV_TVIDEO=$(lspci -nnk | grep -i vga -A3 | grep 'in use' | cut -d " " -f05) ; echo $DRV_TVIDEO
===============
3D pagreitis:
A3D_TVIDEO=$(glxinfo | grep "direct rendering: Yes" | awk '{print $3}') ; echo $A3D_TVIDEO
--------------
Patikrinkite procesoriaus (procesoriaus) parametrus:
--------------
===========
Kūrėjas:
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
=========
Kiekis:
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; echo $TOTAL_CPU
================
Branduoliai vienam procesoriui:
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; echo $NUCLEO_CPU
==========================
Iš viso branduolių vienam procesoriui:
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 talpyklos atmintis:
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $CACHE_CPU
Tikiuosi, kad šie mažyliai „Patarimai“ palengvins jiems pagrindinius, bet naudingus optimizavimus, kurie paprastai yra skirti tik ekspertams Technologija, skaičiavimas, nemokama programinė įranga ir GNU / Linux.
MĖGINIŲ EKRANAI
PRIMINIMAS: Jei kurios nors komandinės eilutės nepavyksta vykdyti arba rodoma teisinga reikšmė, būtinai rankiniu būdu patikrinkite kiekvieną komandų eilutės sekciją, kad pabandytumėte pakoreguoti kai kurių kintamųjų reikšmes ar sintaksę.
7 komentarai, palikite savo
Labai ačiū.
Labai naudingas.
Labai gerai, ačiū .
Malonu bendradarbiauti! Netrukus daug daugiau naudosiu „Shell Scripting“ naudojimu labai praktiškais atvejais.
Labai geras inžinierius! Tikimės, kad yra daugiau „Shell Scripting“ straipsnių.
Parodytos komandos yra puikios ir labai naudingos.
Ačiū už vertingą informaciją; bet mano atveju kai kurios komandos neduoda laukiamo rezultato, pavyzdžiui, komandos „kas“ ir „w“ nieko nerodo; taip nutiko man, nes atlikau tam tikrą sistemos atnaujinimą (naudoju „archlinux“ su ekrano tvarkykle „lxdm“ ir grafine aplinka „xfce 4.12“). Bet kokia idėja, kas vyksta (rezultatas yra tas pats, net jei aš naudoju vartotojo šaknį).
Ačiū.
Jie norėtų, kad su „Shell Scripting“ sukurta ekspertinė sistema sukurtų visų sistemos parametrų ištraukimą ataskaitos forma.
Pavyzdys, ką galima padaryti naudojant „Shell Scripting“:
„LPI-SB8“ bandomasis ekrano perdavimas („LINUX POST INSTALL“ - „SCRIPT BICENTENARIO 8.0.0“)
(„lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)
Žr. „Screencast“: https://www.youtube.com/watch?v=cWpVQcbgCyY