Hvordan oppnå en SysAdmin-terminal som bruker Shell Scripting

El Shell-skripting, Det refererer til gjennomføring av komplekse ordrer om ham GNU / Linux-terminal (konsoll), det er veldig nyttig å automatisere rutinemessige og viktige aktiviteter i vårt GNU / Linux-operativsystem, som lar oss optimalisere Ressurser og tid.

Utvalg_007

Derfor kan bruken fra terminalen oss utføre komplekse kommandokommandoer manuelt eller automatisk gjennom skript eller som programmerte rutiner innen automatisk lasting av filer eller planlagte oppgaver i operativsystemet. GNU / Linux. Og for en Medium bruker, avansert eller SysAdmin el planlegge (automatisere) oppgaver, varsler og / eller merknader på en vert (PC / server) for å lagre Timer / arbeid Av manuell utførelse eller personlig, er det noe grunnleggende og viktig for den gode ytelsen til arbeidet ditt som profesjonell på høyt nivå.

Deretter vil vi vise hvordan en data (verdi / parameter) tidligere lagret i en variabel av en kommando Bash skall eller kompatibel, kan den vises i terminalen til GNU / linux-operativsystemet på en praktisk og enkel måte. I tillegg til å stille inn terminalprompten.

Første trinn: Rediger brukerens .bashrc

Med redaktøren du ønsker (vi, nano, etc.) redigerer du .bashrc-fil av brukeren din som må være lokalisert i hjemmet til den samme, det vil si for eksempel i: "/ Hjem / min_bruker".

Sett inn innholdet i hver av de følgende linjene og alle de ekstra som du anser som praktisk å vise til brukeren når du utfører en brukerterminal:

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

`

Andre trinn: Rediger roten .bashrc

Igjen med redaktøren som allerede er brukt, rediger .bashrc-fil den superbrukerrot som må være plassert innenfor banen / roten til den.

Sett inn innholdet i hver av de følgende linjene og alle de ekstra som du anser som praktisk å vise til brukeren når du utfører en brukerterminal:

########################### 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 trinn: Rediger roten .bashrc

Logg av og terminalen. Start den på nytt og eksperimenter med endringene. Det skal se ut som det som er vist nedenfor, i følgende bilder:

Trinn 1: Terminal oppstart

Trinn 2: Rediger bruker .bashrc

Trinn 3: Innhold innebygd i bruker .bashrc

Trinn 4: Root login

Trinn 5: Root login

Trinn 6: Rediger root .bashrc-filen

Trinn 7: Rediger root .bashrc-filen

Trinn 8: Rediger root .bashrc-filen

Trinn 9: Demonstrasjonseksempel på en ny brukerterminal

Trinn 10: Demonstrasjonseksempel på en ny brukerterminal

Trinn 11: Demonstrasjonseksempel på en ny brukerterminal

Trinn fire (valgfritt): Tuning Aliases

Husk at bruk av alias i .bashrc Det kan også spare deg for mye skrivetid. Fjern kommentarer fra de som kommer som standard i .bashrc, for eksempel:

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

alias rm='rm -i'

Og legg til de du anser som nødvendige, ettersom de ofte brukes kommandoer, for eksempel:

alias cc='clear'

Det er viktig å lære mer om de selvlærte variabler, aliaser, .bashrc og språket bash shell for et mer avansert nivå av terminalen. Det samme kan oppnås når du starter eksterne økter via ssh, som vi kan se senere i andre fremtidige publikasjoner.

Jeg håper disse små "Tips" gjør det enkelt for dem å utføre grunnleggende, men nyttige optimaliseringer, som vanligvis bare er reservert for folk som er eksperter på Teknologi, databehandling, fri programvare og GNU / Linux.

PÅMINNELSE: Hvis en kommandolinje ikke utfører eller viser riktig verdi, må du teste hver del av ledeteksten manuelt for å prøve å justere verdiene eller syntaksen til noen variabler.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.

  1.   jepp sa

    Aliasing er best. Jeg synes ikke dårlig om noen som inkluderer standard i bashrc: la (ls -a) og ll (ls -l). Til slutt legger jeg til parameteren -h.

    Andre praktiske aliaser:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (jeg bruker den til å fjerne kataloger med filer)
    shutdown = 'sudo shutdown -h now'
    del = 'trash-put' (flytt filer til søppel, trash-cli pakke-kommando)

  2.   tone sa

    Siden jeg så dette aliaset i fjor på Reddit, har det vært min favoritt:
    alias fuck = 'sudo $ (historie -p !!)'

  3.   Martin sa

    Artikkelen og utseendet som det gir konsollen er veldig bra. Noen bidrag:
    - I Ubuntu kan aliasene plasseres i en egen fil (.bash_aliases) i resten av distribusjonene jeg ikke kjenner, men det gjør det ved å legge til følgende linjer i .bashrc:
    hvis [-f ~ / .bash_aliases]; deretter
    . ~ / .bash_aliases
    fi
    Dette gjør det mulig å ha aliasene mer ordnet, og for den glemsomme som meg, kan du legge til dette aliaset som viser filen med aliasene:
    alias lsalias = 'mer ~ / .bash_aliases'
    - Jeg har også en sjelden brukt kommandotekstfil (som jeg vanligvis ikke husker) kalt command_utiles.txt og den er klar med følgende alias: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - Flere aliaser jeg bruker:
    alias cdu = 'cd ~'
    alias lof = 'ls -lSr | more' # Viser filer i detalj sortert etter størrelse
    alias lod = 'du -sk * | sort -rn '# Vis kataloger sortert etter størrelse
    alias deo = 'du -sh' # Beregn plassen okkupert av den angitte dir
    alias psa = 'ps -eafw | mer '# Vis alle prosesser med mer
    alias psg = 'ps -eafw | grep '# Vis den angitte prosessen
    - Til slutt, et alternativ for brukere 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 "prosessor" / 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 size" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_Data = $ (du -sh ~ | sort -r | awk '{print $ 1}')

    fjerne
    printf% 130s | tr »» «=»
    kastet ut ""
    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 "Nuclei," $ CACHE_CPU "Cache"
    ekko «BRUKT RUM:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    kastet ut ""
    ############################
    ekko "Nyttige kommandoer:"
    ekko »- Installer RPM i DEB-pakke system: alien -c -i package.rpm»
    ekko »- Endre bruker og gruppe av filer rekursivt: chown -hR bruker: gruppe [fil eller dir]»
    ekko »- Kopier beholder tillatelsene: cp -ax kilde destinasjon»
    ekko »- Vis aktive depoter: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Legg til et depot: apt-add-repository ppa: repository»
    ekko »- Å SE MER Cutil-KOMMANDOER»
    ekko »- Å VIDE ALIASEN lsalias»
    printf% 130s | tr »» «=»
    kastet ut ""
    kastet ut ""
    # 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 sa

      hvorfor bedre ikke skrive din egen artikkel?

  4.   abaddon s sa

    DETTE ER VEILEDNINGENE SOM JEG LIKER !!!!!!!!!

  5.   Ing. José Albert sa

    Vel, jeg er veldig glad for at du likte og serverte den!

    I morgen håper jeg å publisere en annen artikkel! Bakker.

  6.   brukerbue sa

    Hilsener og uendelig takknemlighet for å dele den informasjonen.
    Jeg har ikke mye kunnskap om administrering av GNU / Linux (jeg er bare en empirisk og nysgjerrig bruker uten akademisk opplæring), men jeg husker at jeg hadde lest på et nettsted om sikkerhetsproblemer med opptrapping av privilegier; noen kommandoer og rør i .bashrc-skriptet, ser det ut til at de kan lette arbeidet til en hacker eller cracker.
    Respektfullt og veldig takknemlig.

  7.   Ing. José Albert sa

    Med Shell Scripting er optimalisering av terminalen enkel, se hvor langt du kan gå ved å gjøre en god Shell Scripting.

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

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

  8.   Lea sa

    Flott opplæring! Noen bok du anbefaler på Linux for å lære godt shell-skripting, konfigurasjoner, serversikkerhet? Takk skal du ha