Sådan opnås en SysAdmin Terminal, der anvender Shell Scripting

El Shell Scripting, Det refererer til udførelse af komplekse ordrer om GNU / Linux Terminal (konsol), det er meget nyttigt at automatisere rutine og vigtige aktiviteter inden for vores GNU / Linux-operativsystem, hvilket giver os mulighed for at optimere vores Ressourcer og tid.

Valg_007

Derfor giver dets anvendelse fra terminalen os mulighed for at udføre komplekse kommandokommandoer manuelt eller automatisk gennem scripts eller som programmerede rutiner inden for automatisk indlæste filer eller planlagte opgaver i operativsystemet. GNU / Linux. Og for en Medium bruger, avanceret eller SysAdmin el planlæg (automatiser) opgaver, alarmer og / eller meddelelser på en vært (pc / server), der skal gemmes Timer / arbejdskraft Af manuel eller ansigt-til-ansigt-udførelse er det noget grundlæggende og vigtigt for den gode ydelse af dit arbejde som professionel på højt niveau.

Dernæst viser vi, hvordan en data (værdi / parameter) tidligere gemt i en variabel ved en kommando Bash Shell eller kompatibel, kan den vises i terminalen på dit GNU / linux-operativsystem på en praktisk og enkel måde. Ud over at indstille terminalprompten.

Første trin: Rediger din brugers .bashrc

Med redaktøren efter eget valg (vi, nano osv.) Rediger .bashrc-fil af din bruger, der skal være placeret inden for det samme, dvs. i: "/ Hjem / min_bruger".

Indsæt indholdet af hver af de følgende linjer og alle de ekstra dem, som du finder praktisk at vise til brugeren, når de udfører en brugerterminal:

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\]# "

`

Andet trin: Rediger roden .bashrc

Igen med redaktøren allerede brugt redigere .bashrc-fil den superbrugerrod som skal placeres inden for stien / roden til den.

Indsæt indholdet af hver af de følgende linjer og alle de ekstra dem, som du finder praktisk at vise til brugeren, når de udfører en brugerterminal:

########################### 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\]$ "

 

Tredje trin: Rediger roden .bashrc

Log ud og terminalen. Start det igen og oplev ændringerne. Det skal se ud som vist nedenfor i de følgende billeder:

Trin 1: TerminalstartTrin 2: Rediger bruger .bashrcTrin 3: Indhold indsat i bruger .bashrcTrin 4: Root loginTrin 5: Root loginTrin 6: Rediger root .bashrc-filenTrin 7: Rediger root .bashrc-filenTrin 8: Rediger root .bashrc-filenTrin 9: Demonstrationseksempel på en ny klientterminalTrin 10: Demonstrationseksempel på en ny klientterminalTrin 11: Demonstrationseksempel på en ny klientterminal

Trin fire (valgfrit): Tuning af aliasser

Husk, at brugen af ​​aliasser inden for .bashrc Det kan også spare dig for meget skrivetid. Fjern kommentar til dem, der kommer som standard inden for .bashrc, såsom:

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

alias rm='rm -i'

Og tilføj dem, du finder nødvendige, da de ofte bruges kommandoer, såsom:

alias cc='clear'

Det er vigtigt at vide mere på en selvlært måde om variabler, aliaser, .bashrc og sproget bash shell for et mere avanceret niveau af terminalen. Det samme kan opnås, når fjernsessioner startes via ssh, som vi senere kan se i andre fremtidige publikationer.

Jeg håber disse små "Tips" gør det let for dem at udføre grundlæggende men nyttige optimeringer, som generelt kun er forbeholdt eksperter i Teknologi, computing, fri software og GNU / Linux.

PÅMINNELSE: Hvis en kommandolinje ikke udfører eller viser den korrekte værdi, skal du sørge for at teste hvert afsnit af kommandoprompten manuelt for at prøve at justere værdierne eller syntaksen for nogle variabler.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

9 kommentarer, lad dine

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort.

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.

  1.   yippakay sagde han

    Aliasing er det bedste. Jeg synes ikke dårligt om nogle, der som standard inkluderer i bashrc: la (ls -a) og ll (ls -l). Til sidst tilføjer jeg parameteren -h.

    Andre praktiske aliasser:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (jeg bruger den til at fjerne mapper med filer)
    shutdown = 'sudo shutdown -h now'
    del = 'trash-put' (flyt filer til papirkurven, trash-cli pakke kommando)

  2.   tone sagde han

    Siden jeg så dette alias sidste år på Reddit, har det været min favorit:
    alias fuck = 'sudo $ (historie -p !!)'

  3.   Martin sagde han

    Artiklen og det udseende, den giver konsollen, er meget god. Nogle bidrag:
    - I Ubuntu kan aliaserne placeres i en separat fil (.bash_aliases) i resten af ​​distributionerne kender jeg ikke, men det gør det ved at tilføje følgende linjer i .bashrc:
    hvis [-f ~ / .bash_aliases]; derefter
    . ~ / .bash_aliases
    fi
    Dette gør det muligt at have aliaserne mere ordnet, og for den glemsomme som mig kan du tilføje dette alias, der viser filen med aliaserne:
    alias lsalias = 'flere ~ / .bash_aliases'
    - Jeg har også en sjældent brugt kommandotekstfil (som jeg normalt ikke husker) kaldet command_utiles.txt, og den er klar med følgende alias: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - Flere aliasser, jeg bruger:
    alias cdu = 'cd ~'
    alias lof = 'ls -lSr | mere' # Viser filer detaljeret sorteret efter størrelse
    alias lod = 'du -sk * | sort -rn '# Vis mapper sorteret efter størrelse
    alias deo = 'du -sh' # Anslået plads optaget af den angivne dir
    alias psa = 'ps -eafw | mere '# Vis alle processer med mere
    alias psg = 'ps -eafw | grep '# Vis den angivne proces
    - Endelig et alternativ for brugere, som jeg gjorde:
    SYSTEM_NAME = $ (cat / 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 "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}' | ekko expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep "cpu cores" / proc / cpuinfo | sed q | awk '{print $ 4}')
    CACHE_CPU = $ (grep "cache størrelse" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_DATA = $ (du -sh ~ | sorter -r | awk '{udskriv $ 1}')

    klar
    printf% 130s | tr »» «=»
    smed ud ""
    ekko «DATO:«date +%c --date='+1 year'
    ekko «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    ekko "DISTRIBUTION:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    ekko "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Kerner," $ CACHE_CPU "Cache"
    ekko «BRUGT RUM:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    smed ud ""
    ############################
    ekko "Nyttige kommandoer:"
    echo »- Installer RPM i DEB-pakke system: alien -c -i package.rpm»
    ekko »- Skift bruger og filgruppe rekursivt: chown -hR bruger: gruppe [fil eller dir]»
    ekko »- Kopiér beholder tilladelserne: cp -ax kildedestination»
    ekko »- Vis aktive lagre: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Tilføj et lager: apt-add-repository ppa: repository»
    ekko »- FOR AT SE FLERE Cutil-KOMMANDOER»
    ekko »- VIS ALIAS lsalias»
    printf% 130s | tr »» «=»
    smed ud ""
    smed ud ""
    # 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 sagde han

      hvorfor bedre ikke skrive din egen artikel?

  4.   abaddon s sagde han

    Disse er vejledningerne, som jeg kan lide !!!!!!!!!

  5.   Ing. José Albert sagde han

    Jeg er meget glad for, at du kunne lide og serveret det!

    I morgen håber jeg at kunne offentliggøre endnu en artikel! Skråninger.

  6.   brugerbue sagde han

    Hilsner og uendelig taknemmelighed for at dele disse oplysninger.
    Jeg har ikke meget viden om administrationen af ​​GNU / Linux (jeg er bare en empirisk og nysgerrig bruger uden akademisk uddannelse), men jeg husker, at jeg læste på et websted om sikkerhedsproblemer med eskalering af privilegier; nogle kommandoer og rør i .bashrc-scripten ser det ud til, at det kunne lette arbejdet hos en hacker eller cracker.
    Respektfuldt og meget taknemmelig.

  7.   Ing. José Albert sagde han

    Med Shell Scripting er optimering af terminalen enkel, se hvor langt du kan gå ved at gøre et godt Shell Scripting.

    LPI-SB8 Test ScreenCast (LINUX POST INSTALL - SCRIPT BICENTENARIO 8.0.0)
    (lpi_sb8_adecuación-audiovisuel_2016.sh / 43Kb)

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

  8.   Lea sagde han

    Fantastisk tutorial! Enhver bog, som du anbefaler på Linux for at lære godt shell-scripting, konfigurationer, serversikkerhed? tak skal du have

bool (sandt)