Com aconseguir un terminal de SysAdmin aplicant Shell Scripting

El Shell Scripting, Es refereix a la execució d'ordres complexes sobre el Terminal (Consola) de GNU / Linux, és molt útil per automatitzar activitats rutinàries i importants dins del nostre Sistema Operatiu GNU / Linux, el que permet optimitzar els nostres Recursos i Temps.

Selección_007

Per tant, el seu ús des del terminal ens permet executar ordres de comandament complexes manualment o automàticament mitjançant scripts o com rutines programades dins d'arxius de càrrega automàtica o tasques programades dins el Sistema Operatiu GNU / Linux. I per a un Usuari Mitjà, Avançat o SysAdmin el programar (automatitzar) tasques, alertes i / o avisos sobre un Host (PC / Servidor) per estalviar Hores / Labor d'execució manual o presencial, és una cosa bàsica i essencial per al bon desenvolupament de la seva tasca com a professional d'alt nivell.

A continuació, mostrarem com un dada (valor / paràmetre) prèviament emmagatzemat en una variable mitjançant una ordre Bash shell o compatible, pot ser mostrat en el terminal del seu Sistema Operatiu GNU / Linux, d'una manera pràctica i senzilla. A més de tunejar el prompt de l'Terminal.

Primer Pas: Editeu el .bashrc del seu usuari

Amb l'editor de la seva preferència (vaig veure, nano, etc.) editi l' arxiu .bashrc del seu usuari que ha d'estar localitzat dins de l'home d'ell mateix, és a dir, a per exemple: «/ Home / mi_usuario».

Inseriu el contingut de cadascuna de les línies següent i totes aquells altres addicionals que vostè cregui convenient mostrar a l'usuari quan executi un terminal d'usuari:

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

`

Segon pas: Editeu el .bashrc de l'root

Novament amb l'editor ja usat editi l' arxiu .bashrc del superusuari root que ha d'estar localitzat dins de la ruta / root del mateix.

Inseriu el contingut de cadascuna de les línies següent i totes aquells altres addicionals que vostè cregui convenient mostrar a l'usuari quan executi un terminal d'usuari:

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

Tercer Pas: Editeu el .bashrc de l'root

Tancament sessió i el terminal. Torneu ha iniciar-lo i experimenti els canvis. Li hauria de quedar semblant a com es mostra a continuació, en les imatges següents:

Pas 1: Inici de Terminal

Pas 2: Edició de .bashrc d'usuari

Pas 3: Contingut inserit en .bashrc d'usuari

Pas 4: Inici de sessió de root

Pas 5: Inici de sessió de root

Pas 6: Edició d'arxiu .bashrc de root

Pas 7: Edició d'arxiu .bashrc de root

Pas 8: Edició d'arxiu .bashrc de root

Pas 9: Exemple demostratiu de nou Terminal d'Usuari

Pas 10: Exemple demostratiu de nou Terminal d'Usuari

Pas 11: Exemple demostratiu de nou Terminal d'Usuari

Quart Pas (opcional): tunejar Alias

Recordeu que l'ús d'àlies dins de l' .bashrc pot estalviar també molt de temps d'escriptura. Descomenteu les que vénen per defecte dins el .bashrc, com ara:

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

alias rm='rm -i'

I afegiu les que consideri necessari, per ser ordres d'ús freqüent, com ara:

alias cc='clear'

És important, conèixer més de forma autodidacta sobre variables, àlies, el .bashrc i el llenguatge bash shell per a un nivell més avançat de l'terminal. Això mateix es pot aconseguir quan s'inicia sessions remotes via ssh, la qual cosa podem veure més endavant en altres publicacions futures.

Espero que aquests petits "Tips" els facilitin realitzar optimitzacions bàsiques però útils, que en general només estan reservades per a persones expertes en Tecnologia, Informàtica, Programari Lliure i GNU / Linux.

RECORDATORI: Si alguna línia de comanda no se li executa o mostra el valor correcte, assegureu-vos de provar manualment cada secció de l'ordre de comanda per intentar ajustar els valors o sintaxi d'algunes variables.


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.

  1.   yippekay va dir

    Els àlies és del millor. No em sembla malament alguns que inclouen per defecte en bashrc: la (ls -a) i ll (ls -l). A l'últim li afegeixo el paràmetre -h.

    Altres àlies pràctics:
    s = 'sudo'
    CD1 = 'cd ..'
    cd2 = 'cd ../ ..'
    RMD = 'rm -r' (l'utilitzo per remoure directoris amb arxius)
    apagar = 'sudo shutdown -h now'
    de l'= 'trash-put' (mou fitxers a la paperera, comanda de el paquet trash-cli)

  2.   toño va dir

    Des que vaig veure aquest àlies l'any passat a Reddit a estat el meu favorit:
    àlies fuck = 'sudo $ (history -p !!)'

  3.   Martin va dir

    Aquesta molt bo l'article i l'aparença que li dóna a la consola. Alguns aportacions:
    - En Ubuntu els àlies es pot posar en un arxiu a part (.bash_aliases) a la resta de les distribucions no però ho fa afegint les següents línies a .bashrc:
    if [-f ~ / .bash_aliases]; then
    . ~ / .Bash_aliases
    fi
    Això permet tenir els àlies mes ordenats i per als desmemoriats com jo poden afegir aquest àlies que mostra el fitxer llistant els àlies:
    àlies lsalias = 'more ~ ​​/ .bash_aliases'
    - També tinc un arxiu de text d'ordres d'ús no freqüent (que no sòl recordar) anomenat comandos_utiles.txt i que llest amb el següent àlies: àlies cutil = 'more ~ ​​/ comandos_utiles.txt'
    - Mas àlies que ús:
    àlies cdu = 'cd ~'
    àlies lof = 'ls -lSr | more' # Mostra els arxius en detall ordenats per mida
    àlies lod = 'du -sk * | sort -rn '# Mostra els directoris ordenats per mida
    àlies deo = 'du -sh' # Estima l'espai ocupat pel dir indicat
    àlies psa = 'ps -eafw | more '# Mostra tots els processos amb more
    àlies psg = 'ps -eafw | grep '# Mostra el procés indicat
    - Per últim pas una alternativa per a usuaris que vaig fer:
    NOMBRE_SISTEMA = $ (cat / etc / us-release | grep NAME | grep -v «VERSION» | set -n '1p' | cut -F2 -d \ »)
    VERSION_SISTEMA = $ (cat / etc / us-release | grep VERSION = | set -n '1p' | set 's / VERSION = //' | set 's / »// g')
    FABRICANTE_CPU = $ (grep «vendor_id» / proc / cpuinfo | set q | awk '{print $ 3}')
    MODELO_CPU = $ (grep «model name» / proc / cpuinfo | set q | cut -d «:» -f 2 | awk '{print $ 0}')
    NUM_CPU = $ (grep «processor» / proc / cpuinfo | sort -r | set q | awk '{print $ 3}' | trobo expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep «cpu cores» / proc / cpuinfo | set q | awk '{print $ 4}')
    CACHE_CPU = $ (grep «memòria cau size» / proc / cpuinfo | set q | cut -d «:» -f 2 | awk '{print $ 0}')
    DATA_USUARIO = $ (du -sh ~ | sort -r | awk '{print $ 1}')

    clear
    printf% 130S | tr »» «=»
    fet «»
    trobo «DATA:«date +%c --date='+1 year'
    trobo «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    trobo «DISTRIBUCIÓ:« $ NOMBRE_SISTEMA »« $ VERSION_SISTEMA »»
    trobo «CPU:« $ MODELO_CPU »,« $ NUCLEO_CPU »Nuclis,« $ CACHE_CPU »Cache»
    trobo «ESPAI USAT:« $ DATA_USUARIO
    printf% 130S | tr »» «=»
    fet «»
    ############################
    trobo «COMANDOS ÚTILS:»
    trobo »- Instal·lar RPM en sistema de paquets DEB: alien -c -i paquet.rpm»
    trobo »- Canviar l'usuari i grup d'arxius en forma recursiva: chown -HR usuari: grup [arxiu o dir]»
    trobo »- Copiar mantenint els permisos: cp -ax origen destí»
    trobo »- Mostra repositoris actius: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    trobo »- Afegir un repositori: apt-add-repository ppa: repositori»
    trobo »- PER VEURE MÉS COMANDES cutil»
    trobo »- PER MOSTRAR ELS ÀLIES lsalias»
    printf% 130S | tr »» «=»
    fet «»
    fet «»
    # PS1 = »[\ i [33; 1m] ┌─ ([\ i [34; 1m] \ o @ \ h [\ i [37; 1m]) * * * * \ d - \ t * * * * {[\ i [31; 1m] \ w [\ i [33; 1m]} \ n└──┤ [\ i [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 va dir

      perquè millor no escrius el teu propi article?

  4.   Abaddon s va dir

    AQUESTS SÓN ELS TUTORIALS QUE M'AGRADEN !!!!!!!!!

  5.   Eng. Jose Albert va dir

    Bé, m'alegro molt que els hagi agradat i servit!

    Demà espero publicar un altre article! Pendents.

  6.   user-arch va dir

    Salutacions i gratitud infinita per compartir aquesta informació.
    No tinc molt de conocimeinto sobre l'administració de l'GNU / Linux (només sóc un empíric i curiós usuari sense formació acadèmica), però recordo haver llegit en alguna web sobre problemes de seguretat amb escalada de privilegis; alguns comandaments i canonades al scrip .bashrc, em sembla podrien facilitar la feina d'un hacker o cracker.
    Respectuosament i molt agraït.

  7.   Eng. Jose Albert va dir

    Amb Shell Scripting optimitzar el terminal és senzill, mira fins on es pot arribar fent un bon Shell Scripting.

    Screencast de Test de l'LPI-SB8 (LINUX POST INSTALL - SCRIPT BICENTENARI 8.0.0)
    (Lpi_sb8_adecuación-audiovisual_2016.sh / 43Kb)

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

  8.   Pastura va dir

    Gran tutorial! Algun llibre que recomanis de linux per aprendre bé shell scripting, configuracions, seguretat de servers? gràcies