El Kabuk Betiği, İfade eder karmaşık emirlerin yerine getirilmesi üzerinde GNU / Linux Terminali (Konsol), bizim içindeki rutin ve önemli faaliyetleri otomatikleştirmek çok yararlıdır GNU / Linux İşletim Sistemi, bu da bizim optimize etmemizi sağlıyor Kaynaklar ve Zaman, yani, burada bulunanlarla, terminalden bize izin veren manuel komutları nasıl çalıştırabileceğimizi keşfedeceğiz. planla / otomatikleştir bir takımın tasarrufuyla ilgili faaliyetler Saat / İşçilik manuel veya yüz yüze yürütme, söz konusu emirleri Bash Shell Script veya uyumlu olarak uygulama ve pratik ve basit bir şekilde açıklanmıştır.
Olduğu gibi ele alacağız tek bir komut komutu biz İşletim Sisteminden / Donanımdan değerleri / bilgileri ayıklama ve görüntülemesonra bunu bir Bash Shell komut dosyası belirli bir görevi otomatikleştirmek için. Odaklanmak En İyi Uygulamalar bu şekilde mükemmel bir Senaryo tasarımı elde etmek için gerekli daha verimli ve pratik.
--------------------
Sistemde oluşturulan ilk kullanıcının adını alın:
--------------------
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
----------------------
Sistemde oluşturulan ilk kullanıcının / home yolunun yolunu alın:
----------------------
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
-------------
Mevcut Ekipman Tarihini Kontrol Edin:
-------------
FECHA_ACTUAL=$(date +"%d %b %y") ; echo $FECHA_ACTUAL
------------
Mevcut Ekipman Zamanını Kontrol Edin:
------------
HORA_ACTUAL=$(date +"%H:%M") ; echo $HORA_ACTUAL
----------------
Sunucunun İnternet bağlantısı olup olmadığını kontrol edin:
----------------
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
-------------
İşletim Sisteminin türünü kontrol edin:
-------------
SISTEMA_OPERATIVO=$(uname -o) ; echo $SISTEMA_OPERATIVO
----------------------
İşletim Sisteminin adını, sürümünü ve yıkımını kontrol edin:
----------------------
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
----------------
İşletim Sisteminin mimarisini kontrol edin:
----------------
ARQUITECTURA=$(uname -m) ; echo $ARQUITECTURA
ARQUITECTURA=$(uname -m) ; if [[ "$ARQUITECTURA" = "x86" ]]; then ARQ_SISTEMA=32; else ARQ_SISTEMA=64; fi ; echo $ARQ_SISTEMA
------------------
İşletim Sisteminin çekirdek sürümünü kontrol edin:
------------------
VERSION_KERNEL=$(uname -r) ; echo $VERSION_KERNEL
----------
Ana Bilgisayar adını kontrol edin:
----------
NOMBRE_HOST=$(cat /etc/hostname) ; echo $NOMBRE_HOST
----------------------
Dahili ve Harici IP'yi (Ana İnternet Çıkışı) Kontrol Edin:
----------------------
IP_INTERNA=$(hostname -I) ; echo $IP_INTERNA
IP_EXTERNA=$(curl -s ipecho.net/plain;echo) ; echo $IP_EXTERNA
------------------
Ağ Arayüzlerinin Değerlerini (IP / MAC) Kontrol Edin:
------------------
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
-----------------
İşletim Sisteminin Proxy / Ağ Geçidini Kontrol Edin:
-----------------
PROXY_GATEWAY=$(route -n | sed -n '3p' | awk '{print $2}') ; echo $PROXY_GATEWAY
----------------
Ana Bilgisayar Ağı Etki Alanı Adını kontrol edin:
----------------
DOMINIO=$(cat /etc/resolv.conf | sed '2 d' | grep search | sed -n '1p' | awk '{print $2}') ; echo $DOMINIO
---------------------
Ana DNS Sunucusunun Ağ Adresini (IP) kontrol edin:
---------------------
IP_SERVIDOR_DNS=$(cat /etc/resolv.conf | sed '1 d' | awk '{print $2}') ; echo $IP_SERVIDOR_DNS
-------------
Ana Makineye bağlı kullanıcıları kontrol edin:
-------------
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
---------------------------------
İşletim Sisteminde daha fazla veriye sahip Kullanıcı Klasörünü (Bayt cinsinden Dosya Sayısı / Boyut) kontrol edin:
----------------------------------
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
------------------------------
Süper Kullanıcı Klasörünün veya diğer İşletim Sistemi Klasörünün Bayt cinsinden Boyutu Kontrol Edin:
------------------------------
DATA_ROOT=$(du -sh /root | awk '{print $1}') ; echo $DATA_ROOT
DATA_CARPETA1=$(du -sh /var | awk '{print $1}') ; echo $DATA_CARPETA1
--------------------
Oluşturulan Kullanıcı Klasörlerini Kontrol Edin (Adlar ve Numaralar):
--------------------
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
---------------------
UID 0 VE GID 0 (SUPERUSERS) oluşturulmuş Kullanıcıları kontrol edin:
---------------------
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
--------------
RAM ve Takas belleğinin durumunu kontrol edin:
--------------
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
------------------------
Bir SATA Diskinin bölümlerinin / bağlama noktasının Durumunu Kontrol Edin:
------------------------
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
---------------------
Ortalama Sistem Yükünü Kontrol Edin (Sıradaki İşlemler):
---------------------
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
-----------------
İşletim Sisteminde Zombies işlemlerini kontrol edin:
-----------------
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}') ; echo $PROC_ZOMBIE
---------------------
Toplam Çalışma Süresini Kontrol Edin (Başlatma / Açma):
---------------------
TIEMPO_ENCENDIDO=$(uptime | awk '{print $3,$4}' | cut -f1 -d,) ; echo $TIEMPO_ENCENDIDO
---------------
Video kartı parametrelerini kontrol edin:
---------------
============
Yapıcı:
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
================
Modül (Sürücü):
DRV_TVIDEO=$(lspci -nnk | grep -i vga -A3 | grep 'in use' | cut -d " " -f05) ; echo $DRV_TVIDEO
===============
3D hızlandırma:
A3D_TVIDEO=$(glxinfo | grep "direct rendering: Yes" | awk '{print $3}') ; echo $A3D_TVIDEO
--------------
İşlemci (CPU) parametrelerini kontrol edin:
--------------
===========
Yapıcı:
FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}') ; echo $FABRICANTE_CPU
=======
Model:
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $MODELO_CPU
=========
Adet:
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}') ; TOTAL_CPU=$((`expr $NUM_CPU + 1`)) ; echo $TOTAL_CPU
================
CPU başına çekirdek:
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}') ; echo $NUCLEO_CPU
==========================
CPU Başına Toplam Çekirdek:
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 önbelleği:
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}') ; echo $CACHE_CPU
Umarım bu küçükler "İpuçları" genellikle yalnızca bu konuda uzman olan kişilere ayrılan temel ancak yararlı optimizasyonları gerçekleştirmelerini kolaylaştırın Teknoloji, Bilgi İşlem, Özgür Yazılım ve GNU / Linux.
ÖRNEK EKRANLAR
HATIRLATMA: Herhangi bir komut satırı yürütülemezse veya doğru değeri görüntülerse, bazı değişkenlerin değerlerini veya sözdizimini denemek ve ayarlamak için komut isteminin her bir bölümünü manuel olarak test ettiğinizden emin olun.
Çok teşekkür ederim.
Çok kullanışlı.
Çok iyi teşekkürler .
İşbirliği yapmak büyük bir zevk! Yakında, çok pratik durumlarda Kabuk Komut Dosyası kullanımına ilişkin daha pek çok şeyi inceleyeceğim.
Çok iyi mühendis! Umarım daha fazla Shell Scripting makalesi vardır.
Orada gösterilen komutlar mükemmel ve çok kullanışlıdır.
Değerli bilgiler için teşekkür ederiz; ancak benim durumumda bazı komutlar beklenen sonucu vermez, örneğin "kim" ve "w" komutları hiçbir şey göstermez; Bu, bazı sistem güncellemeleri yaptığımdan beri başıma geldi ("lxdm" ekran yöneticisi ve "xfce 4.12" grafik ortamı ile archlinux kullanıyorum). Ne olduğu hakkında herhangi bir fikir (kullanıcı kökünü kullansam bile sonuç aynıdır).
Teşekkür ederim.
Shell Scripting ile yapılmış, talep üzerine sistemin tüm parametrelerinin bir Rapor şeklinde çıkarılmasını sağlayacak uzman bir Sistem istiyorlar.
Kabuk Komut Dosyası ile yapılabileceklere bir örnek:
LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
(lpi_sb8_adaptation-audiovisual_2016.sh / 43Kb)
Ekran video kaydına bakın: https://www.youtube.com/watch?v=cWpVQcbgCyY