Kako postići SysAdmin terminal primjenjujući Shell Scripting

El Shell skriptiranje, Odnosi se na izvršavanje složenih naloga o tome GNU / Linux terminal (konzola), vrlo je korisno automatizirati rutinske i važne aktivnosti u našem GNU / Linux operativni sistem, što nam omogućava da optimiziramo naše Resursi i vrijeme.

Selection_007

Stoga, njegova upotreba s terminala omogućava nam izvršavanje složenih naredbenih naredbi ručno ili automatski putem skripti ili kao programirane rutine unutar automatski učitanih datoteka ili planiranih zadataka u operativnom sistemu. GNU / Linux. I za Srednji korisnik, napredni ili SysAdmin el raspored (automatizirati) zadatke, upozorenja i / ili obavijesti na hostu (PC / Server) za spremanje Sati / rad Ručnog izvršenja ili lično, to je nešto osnovno i neophodno za dobro obavljanje vašeg posla kao profesionalca na visokom nivou.

Dalje ćemo pokazati kako a podaci (vrijednost / parametar) prethodno naredba pohranila u varijablu Bash školjka ili kompatibilan, može se prikazati na terminalu vašeg GNU / linux operativnog sistema, na praktičan i jednostavan način. Pored podešavanja odzivnika terminala.

Prvi korak: Uredite .bashrc vašeg korisnika

Pomoću uređivača po vašem izboru (vi, nano, itd.) Uredite .bashrc datoteka vašeg korisnika koji se mora nalaziti u kući istog, to jest, na primjer: "/ Početna / moj_korisnik".

Umetnite sadržaj svakog od sljedećih redova i svih onih dodatnih za koje smatrate da je prikladno prikazati ih korisniku prilikom izvršavanja korisničkog terminala:

sleep 3

clear

########################### PARÁMETROS DE MONITOREO ###########################

NOMBRE_SISTEMA=$(cat /etc/os-release | grep NAME | grep -v "VERSION" | sed -n '2p' | cut -f2 -d\")
VERSION_SISTEMA=$(cat /etc/os-release | grep VERSION= | sed -n '1p' | sed 's/VERSION=//' | sed 's/"//g')

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

clear

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                         ESTE EQUIPO TIENE INSTALADO                         "
echo "                                                                             "
echo "TIPO DE S.O.: <"`uname -o`">                                                 "
echo "NOMBRE / VERSIÓN DEL S.O.: &lt;"$NOMBRE_SISTEMA"&gt; / &lt;"$VERSION_SISTEMA"&gt;        "
echo "KERNEL / ARQUITECTURA: <"`uname -r`"> / <"`uname -m`">                       "
echo "INFO DEL CPU: ("$FABRICANTE_CPU") / ("$MODELO_CPU") / ("$NUM_CPU") / ("$NUCLEO_CPU") / ("$CACHE_CPU")"
printf %80s |tr " " "="
echo ""
echo ""

PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]# "

`

Drugi korak: Uredite root .bashrc

Opet s uređivačem koji je već korišten, uredite .bashrc datoteka del korijen superkorisnika koja se mora nalaziti unutar putanje / njenog korijena.

Umetnite sadržaj svakog od sljedećih redova i svih onih dodatnih za koje smatrate da je prikladno prikazati ih korisniku prilikom izvršavanja korisničkog terminala:

########################### PARÁMETROS DE MONITOREO ###########################

alias cc='clear'

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

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

DATA_USUARIO1=$(du -sh /home/ | sort -r | awk '{print $1}')
DATA_ROOT=$(du -sh /root | awk '{print $1}')
DATA_VAR=$(du -sh /var | awk '{print $1}')

MEM_TOTAL=$(free -h | sed '1 d' | grep Mem: | awk '{print $2}')
MEM_USADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $3}')
MEM_LIBRE=$(free -h | sed '1 d' | grep Mem: | awk '{print $4}')
MEM_COMPARTIDA=$(free -h | sed '1 d' | grep Mem: | awk '{print $5}')
MEM_ALMACENADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $6}')
MEM_CACHEADA=$(free -h | sed '1 d' | grep Mem: | awk '{print $7}')

PART1_TOTAL=$(df -h | sed '1 d' | grep disk | awk '{print $2}')
PART1_USADO=$(df -h | sed '1 d' | grep disk | awk '{print $3}')
PART1_DISPONIBLE=$(df -h | sed '1 d' | grep disk | awk '{print $4}')
PART1_PORCENTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $5}')
PART1_PUNTOMONTAJE=$(df -h | sed '1 d' | grep disk | awk '{print $6}')

CARGA_1MIN=$(top -n 1 -b | grep "load average:" | awk '{print $12}' | sed 's/,//2')

CARGA_5MIN=$(top -n 1 -b | grep "load average:" | awk '{print $13}' | sed 's/,//2')
CARGA_15MIN=$(top -n 1 -b | grep "load average:" | awk '{print $14}' | sed 's/,//2')

USER_ONLINE=$(top -n 1 -b | grep "load average:" | awk '{print $8}')
PROC_ZOMBIE=$(top -n 1 -b | grep "zombie" | awk '{print $10}')

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

FABRICANTE_CPU=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
MODELO_CPU=$(grep "model name" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
NUM_CPU=$(grep "processor" /proc/cpuinfo | sort -r | sed q | awk '{print $3}' | echo `expr $NUM_CPU + 1`)
NUCLEO_CPU=$(grep "cpu cores" /proc/cpuinfo | sed q | awk '{print $4}')
CACHE_CPU=$(grep "cache size" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')

IP_ETH0=$(ifconfig eth0 | grep inet | grep -v inet6 | cut -d ":" -f 2 | cut -d " " -f 1)
MAC_ETH0=$(ifconfig eth0 | sed -n '1p' | awk '{print $5}')

###############################################################################

if ping -c 1 8.8.8.8 &amp;&gt; /dev/null; then CONEXION_INTERNET=Habilitado; else CONEXION_INTERNET=Deshabilitado; fi

set -o vi

printf %80s |tr " " "="
echo ""
echo "      ADVERTENCIA - USTED HA INICIADO SESIÓN EN EL EQUIPO SERVIDOR DE LA      "
echo "                             EMPRESA INSTITUCIÓN XYZ                                "
echo "       RECUERDE TENER EXTREMO CUIDADO CON CUALQUIER CAMBIO A REALIZAR        "
printf %80s |tr " " "="
echo ""
printf %80s |tr " " "="
echo ""
echo "                    PARÁMETROS ACTUALES DE FUNCIONAMIENTO                    "
echo "                                                                             "
echo "MEMORIA TOTAL: ("$MEM_TOTAL") - MEMORIA USADA: ("$MEM_USADA") - MEMORIA LIBRE: ("$MEM_LIBRE")"
echo "DISCO PRINCIPAL: ("$PART1_TOTAL") - ESPACIO USADO: ("$PART1_USADO") - ESPACIO LIBRE: ("$PART1_DISPONIBLE") - %: ("$PART1_PORCENTAJE") - PARTICION: ("$PART1_PUNTOMONTAJE")"
echo "CARGA PROMEDIO DEL SISTEMA: 1 MIN ("$CARGA_1MIN") -  5 MIN ("$CARGA_5MIN") - 15 MIN ("$CARGA_15MIN")"
echo "USUARIOS CONECTADOS: ("$USER_ONLINE") -  PROCESOS ZOMBIES: ("$PROC_ZOMBIE")"
echo "TIEMPO ARRANQUE/ENCENDIDO: ("$TIEMPO_ENCENDIDO")                             "
echo "ESPACIO USADO: /home = ("$DATA_USUARIO1") /root = ("$DATA_ROOT") /var = ("$DATA_VAR")"
printf %80s |tr " " "="
echo ""
echo ""
PS1="\[\e[33;1m\]┌─( \[\e[34;1m\]\u@\h\[\e[37;1m\] ) * * * * \d - \t * * * * { \[\e[31;1m\]\w\[\e[33;1m\] }\n└──┤ \[\e[32m\]$ "

Treći korak: Uredite root .bashrc

Odjavite se i terminal. Pokrenite ga ponovo i iskusite promjene. Trebao bi izgledati slično prikazanom dolje, na sljedećim slikama:

Korak 1: Pokretanje terminala

Korak 2: Uredite korisnika .bashrc

Korak 3: Sadržaj umetnut u korisnika .bashrc

Korak 4: Root prijava

Korak 5: Root prijava

Korak 6: Uredite root .bashrc datoteku

Korak 7: Uredite root .bashrc datoteku

Korak 8: Uredite root .bashrc datoteku

Korak 9: Demonstracijski primjer novog klijentskog terminala

Korak 10: Demonstracijski primjer novog klijentskog terminala

Korak 11: Demonstracijski primjer novog klijentskog terminala

Četvrti korak (opcionalno): Podešavanje pseudonima

Imajte na umu da je korištenje aliasa unutar .bashrc Takođe vam može uštedjeti puno vremena za pisanje. Otkomentirajte one koji dolaze prema zadanim postavkama u .bashrc, kao što su:

alias ls='ls $LS_OPTIONS'
<strong>alias ll='ls $LS_OPTIONS -l'
<strong>alias l='ls $LS_OPTIONS -lA'

alias rm='rm -i'

I dodajte one koje smatrate potrebnima, jer su to često korištene naredbe, kao što su:

alias cc='clear'

Važno je znati više o samoukom varijable, aliasi, .bashrc i jezik bash-shell za napredniji nivo terminala. Isto se može postići prilikom pokretanja udaljenih sesija putem ssh-a, što ćemo kasnije moći vidjeti u drugim budućim publikacijama.

Nadam se ove male "Savjeti" olakšajte im izvođenje osnovnih, ali korisnih optimizacija, koje su uglavnom rezervirane samo za stručnjake u Tehnologija, računarstvo, besplatni softver i GNU / Linux.

PODSJETNIK: Ako bilo koja naredbena linija ne uspije izvršiti ili prikaže ispravnu vrijednost, pobrinite se da ručno testirate svaki odjeljak naredbenog retka kako biste pokušali prilagoditi vrijednosti ili sintaksu nekih varijabli.


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   yippekay rekao je

    Aliasi su najbolji. Ne mislim loše o nekima koji podrazumevano uključuju bashrc: la (ls -a) i ll (ls -l). Na kraju dodam parametar -h.

    Ostali praktični aliasi:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (koristim ga za uklanjanje direktorija sa datotekama)
    shutdown = 'sudo shutdown -h sada'
    del = 'trash-put' (premještanje datoteka u otpad, naredba paketa trash-cli)

  2.   ton rekao je

    Otkad sam vidio ovaj alias prošle godine na Redditu, bio mi je najdraži:
    alias fuck = 'sudo $ (historija -p !!)'

  3.   Martin rekao je

    Članak i izgled koji daje konzoli je vrlo dobar. Neki prilozi:
    - U Ubuntu pseudonimi mogu biti smješteni u zasebnu datoteku (.bash_aliases) u ostatku distribucija koje ne znam, ali to čini dodavanjem sljedećih redova u .bashrc:
    ako je [-f ~ / .bash_aliases]; onda
    . ~ / .bash_aliases
    fi
    To omogućava da pseudonimi budu uređeniji, a za zaboravne poput mene možete dodati ovaj alias koji prikazuje datoteku koja navodi pseudonime:
    alias lsalias = 'više ~ / .bash_aliases'
    - Također imam rijetko korištenu tekstualnu datoteku naredbe (koje se obično ne sjećam) nazvanu command_utiles.txt i spremnu sa sljedećim zamjenskim imenom: alias cutil = 'više ~ / command_utiles.txt'
    - Više aliasa koje koristim:
    alias cdu = 'cd ~'
    alias lof = 'ls -lSr | more' # Prikazuje datoteke detaljno poredane po veličini
    alias lod = 'du -sk * | sort -rn '# Prikaži direktorije sortirane po veličini
    alias deo = 'du -sh' # Procijenite prostor koji zauzima navedeni direkt
    alias psa = 'ps -eafw | više '# Prikaži sve procese s više
    alias psg = 'ps -eafw | grep '# Prikaži naznačeni postupak
    - Napokon, alternativa za korisnike koje sam uradio:
    SYSTEM_NAME = $ (mačka / etc / os-release | grep NAME | grep -v "VERSION" | sed -n '1p' | cut -f2 -d \ »)
    SYSTEM_VERSION = $ (cat / etc / os-release | grep VERSION = | sed -n '1p' | sed 's / VERSION = //' | sed 's / »// g')
    MANUFACTURER_CPU = $ (grep "vendor_id" / proc / cpuinfo | sed q | awk '{print $ 3}')
    CPU_MODEL = $ (grep "ime modela" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    NUM_CPU = $ (grep "procesor" / proc / cpuinfo | sort -r | sed q | awk '{print $ 3}' | echo expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep "CPU jezgre" / proc / cpuinfo | sed q | awk '{print $ 4}')
    CACHE_CPU = $ (grep "veličina predmemorije" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_Data = $ (du -sh ~ | sort -r | awk '{print $ 1}')

    jasno
    printf% 130s | tr »» «=»
    izbacio ""
    eho «DATUM:«date +%c --date='+1 year'
    odjek «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    echo "DISTRIBUCIJA:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    echo "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Nukleusi," $ CACHE_CPU "Cache"
    echo «KORIŠTENI PROSTOR:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    izbacio ""
    ############################
    echo "KORISNE ZAPOVIJEDI:"
    echo »- Instalirajte RPM u sistem DEB paketa: alien -c -i package.rpm»
    echo »- Rekurzivna promjena korisnika i grupe datoteka: chown -hR korisnik: grupa [datoteka ili direktorij]»
    echo »- Kopija zadržavajući dozvole: cp -ax izvorno odredište»
    echo »- Prikaži aktivna spremišta: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Dodaj spremište: apt-add-repository ppa: spremište»
    echo »- DA VIDITE VIŠE Cutil naredbi»
    echo »- PRIKAZATI ALIAS lsalias»
    printf% 130s | tr »» «=»
    izbacio ""
    izbacio ""
    # PS1 = »[\ e [33; 1m] ┌─ ([\ e [34; 1m] \ u @ \ h [\ e [37; 1m]) * * * * \ d - \ t * * * * {[\ e [31; 1m] \ w [\ e [33; 1m]} \ n└──┤ [\ e [32m] # »
    PS1=»[\e[33;1m]┌─([\e[34;1m]\u@\h[\e[37;1m])>{ [\e[31;1m]\w[\e[33;1m] }\n└──┤ [\e[32m]# «

    1.    abaddon s rekao je

      zašto bolje da ne napišete svoj članak?

  4.   abaddon s rekao je

    TO SU VODIČI KOJI MI SE SVIĐAJU !!!!!!!!!

  5.   ing. Jose Albert rekao je

    Pa, drago mi je što vam se svidjelo i poslužilo!

    Nadam se da ću sutra objaviti još jedan članak! Kosine.

  6.   korisnik-arh rekao je

    Pozdrav i beskrajna zahvalnost što ste podijelili te informacije.
    Nemam puno znanja o administraciji GNU / Linuxa (ja sam samo empirijski i znatiželjan korisnik bez akademske obuke), ali sjećam se da sam na nekoj web stranici čitao o sigurnosnim problemima s eskalacijom privilegija; neke naredbe i kanale u .bashrc skripti, čini mi se da bi mogli olakšati rad hakera ili crakera.
    S poštovanjem i vrlo zahvalna.

  7.   ing. Jose Albert rekao je

    S Shell Scripting optimizacijom terminala jednostavno je, pogledajte koliko daleko možete ići radeći dobro Shell Scripting.

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

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

  8.   Lea rekao je

    Odličan vodič! Bilo koju knjigu koju preporučujete na Linuxu da naučite skriptiranje ljuske, konfiguracije, sigurnost servera? Hvala ti