Cara mengekstrak parameter dari Terminal menggunakan Shell Scripting

El Shell Scripting, Ini mengacu pada eksekusi pesanan yang kompleks pada Terminal GNU / Linux (Konsol), sangat berguna untuk mengotomatiskan kegiatan rutin dan penting dalam diri kita Sistem Operasi GNU / Linux, yang memungkinkan kami untuk mengoptimalkan kami Sumber Daya dan Waktu, Artinya, dengan apa yang terkandung di sini kita akan mengeksplorasi bagaimana dari terminal kita dapat menjalankan perintah manual yang kemudian memungkinkan kita jadwalkan / otomatiskan kegiatan tentang tabungan tim Jam / Tenaga Kerja manual atau eksekusi tatap muka, mengimplementasikan perintah tersebut dalam Bash Shell Script atau kompatibel dan dijelaskan dengan cara yang praktis dan sederhana.

Pilihan_007

Kami akan membahas seperti dalam satu perintah perintah bisa mengekstrak dan menampilkan nilai / informasi dari Sistem Operasi / Perangkat Keras, yang kemudian dapat kita terapkan dalam file Skrip Bash Shell untuk mengotomatiskan tugas tertentu. Berfokus pada Praktik terbaik diperlukan untuk mendapatkan desain Script yang sangat baik di jalan lebih hemat dan praktis.

--------------------
Dapatkan nama pengguna pertama yang dibuat dalam 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

----------------------
Dapatkan jalur / home dari pengguna pertama yang dibuat di 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

-------------
Periksa Tanggal Peralatan Saat Ini:
-------------

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

------------
Periksa Waktu Peralatan Saat Ini:
------------

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

——————————————————
Periksa apakah Host memiliki koneksi Internet:
——————————————————

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
-------------
Periksa jenis Sistem Operasi:
-------------

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

----------------------
Periksa nama, versi dan subversi Sistem Operasi:
----------------------
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

----------------
Periksa arsitektur Sistem Operasi:
----------------

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

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

------------------
Periksa versi kernel dari Sistem Operasi:
------------------

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

----------
Periksa nama Host:
----------

NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Periksa IP Internal dan Eksternal (Output Internet Utama):
----------------------

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

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

------------------
Periksa Nilai (IP / MAC) dari Antarmuka Jaringan:
------------------

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
——————————————————
Periksa Proxy / Gateway Sistem Operasi:
——————————————————

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

——————————————————
Periksa Nama Domain Jaringan Host:
——————————————————

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

---------------------
Periksa Alamat Jaringan (IP) dari Host DNS Server:
---------------------

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

-------------
Periksa pengguna yang terhubung ke Host:
-------------

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
---------------------------------
Periksa Folder Pengguna dengan lebih banyak data (# File / Ukuran dalam Bytes) di Sistem Operasi:
----------------------------------

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

————————————————————————————
Periksa Ukuran dalam Bytes Folder Superuser atau Folder lain dari Sistem Operasi:
————————————————————————————

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

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

--------------------
Periksa Folder Pengguna yang Dibuat (Nama dan Nomor):
--------------------

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

---------------------
Periksa Pengguna dengan UID 0 DAN GID 0 (SUPERUSERS) dibuat:
---------------------

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

--------------
Periksa status RAM dan memori 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

------------------------
Periksa Status partisi / titik pemasangan Disk 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

---------------------
Periksa Beban Sistem Rata-rata (Proses Antrian):
---------------------

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

——————————————————
Periksa proses Zombies di Sistem Operasi:
——————————————————

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

---------------------
Periksa Total Waktu Kerja (Mulai / Aktif):
---------------------

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

---------------
Periksa parameter kartu Video:
---------------

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

Pembuat:

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 (Pengemudi):

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

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

Akselerasi 3D:

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

--------------
Periksa parameter Prosesor (CPU):
--------------

===========

Pembuat:

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

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

Core per CPU:

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

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

Total Core per 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

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

Memori cache CPU:

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

Saya berharap anak-anak kecil ini "Tips" memudahkan mereka untuk melakukan pengoptimalan dasar namun bermanfaat, yang biasanya hanya diperuntukkan bagi orang yang ahli di dalamnya Teknologi, Komputasi, Perangkat Lunak Gratis dan GNU / Linux.

LAYAR SAMPEL

jalbert: bash - Konsole_008

jalbert: bash - Konsole_009

PERINGATAN: Jika ada baris perintah yang gagal dijalankan atau menampilkan nilai yang benar, pastikan untuk menguji secara manual setiap bagian dari prompt perintah untuk mencoba dan menyesuaikan nilai atau sintaks dari beberapa variabel.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Penanggung jawab data: Miguel Ángel Gatón
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   Eduardo dijo

    Terima kasih banyak.

    Sangat berguna.

  2.   HO2Gi dijo

    Sangat bagus, terima kasih.

  3.   Ing.José Albert dijo

    Senang bisa berkolaborasi! Segera saya akan memasang lebih banyak lagi tentang penggunaan Shell Scripting dalam kasus yang sangat praktis.

  4.   cr0t0 dijo

    Insinyur yang sangat baik! Semoga ada artikel Shell Scripting lainnya.

  5.   Francis Tovar dijo

    Perintah yang ditampilkan di sana sangat bagus dan sangat berguna.

  6.   lengkungan pengguna dijo

    Terima kasih atas informasi yang berharga; tetapi dalam kasus saya beberapa perintah tidak memberikan hasil yang diharapkan, misalnya perintah "who" dan "w" tidak menunjukkan apapun; Ini terjadi pada saya sejak saya membuat beberapa pembaruan sistem (saya menggunakan archlinux dengan pengelola layar "lxdm" dan lingkungan grafis "xfce 4.12"). Tahu apa yang terjadi (hasilnya sama meskipun saya menggunakan root pengguna).
    Terima kasih.

  7.   Ing.José Albert dijo

    Mereka menginginkan Sistem pakar yang dibuat dengan Shell Scripting yang atas permintaan akan menghasilkan ekstraksi semua parameter sistem dalam bentuk Laporan.

    Contoh dari apa yang dapat dilakukan dengan Shell Scripting:

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

    Lihat Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY