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.
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
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.
Terima kasih banyak.
Sangat berguna.
Sangat bagus, terima kasih.
Senang bisa berkolaborasi! Segera saya akan memasang lebih banyak lagi tentang penggunaan Shell Scripting dalam kasus yang sangat praktis.
Insinyur yang sangat baik! Semoga ada artikel Shell Scripting lainnya.
Perintah yang ditampilkan di sana sangat bagus dan sangat berguna.
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.
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