Como conseguir un terminal SysAdmin aplicando Shell Scripting

El Guión de shell, Refírese ao execución de ordes complexas en Terminal GNU / Linux (consola), é moi útil automatizar actividades rutineiras e importantes dentro do noso Sistema operativo GNU / Linux, o que nos permite optimizar o noso Recursos e tempo.

Selección_007

Polo tanto, o seu uso desde o terminal permítenos executar comandos de comandos complexos manual ou automaticamente a través de scripts ou como rutinas programadas dentro de ficheiros de carga automática ou tarefas programadas dentro do sistema operativo. GNU / Linux. E por un Usuario medio, avanzado ou SysAdmin el programar (automatizar) tarefas, alertas e / ou avisos nun host (PC / servidor) para gardar Horas / Traballo De execución manual ou presencial, é algo básico e esencial para o bo desempeño do seu traballo como profesional de alto nivel.

A continuación, mostraremos como datos (valor / parámetro) almacenado previamente nunha variable por un comando Bash shell ou compatible, pódese amosar no terminal do seu sistema operativo GNU / linux, dun xeito práctico e sinxelo. Ademais de axustar a solicitude de Terminal.

Primeiro paso: edita o .bashrc do teu usuario

Co editor que escolla (vi, nano, etc.) edite o ficheiro .bashrc do seu usuario que debe estar situado na casa do mesmo, é dicir, por exemplo: "/ Inicio / meu_usuario".

Insira o contido de cada unha das seguintes liñas e todas aquelas adicionais que considere convenientes amosar ao usuario ao executar un terminal de usuario:

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

`

Segundo paso: edita a raíz .bashrc

De novo co editor xa usado edite o ficheiro .bashrc do raíz de superusuario que debe estar situado dentro do camiño / raíz do mesmo.

Insira o contido de cada unha das seguintes liñas e todas aquelas adicionais que considere convenientes amosar ao usuario ao executar un terminal de usuario:

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

 

Terceiro paso: edita a raíz .bashrc

Pechar sesión e o terminal. Comeza de novo e experimenta cos cambios. Debería ter un aspecto similar ao que se mostra a continuación, nas seguintes imaxes:

Paso 1: Inicio do terminalPaso 2: edita o usuario .bashrcPaso 3: contido incrustado no .bashrc do usuarioPaso 4: inicio de sesión raízPaso 5: inicio de sesión raízPaso 6: Edite o ficheiro .bashrc raízPaso 7: Edite o ficheiro .bashrc raízPaso 8: Edite o ficheiro .bashrc raízPaso 9: exemplo de demostración dun novo terminal de usuarioPaso 10: exemplo de demostración dun novo terminal de usuarioPaso 11: exemplo de demostración dun novo terminal de usuario

Paso catro (opcional): axustar os alias

Lembre que o uso de alias dentro do .bashrc tamén pode aforrar moito tempo para escribir. Descomenta os que aparecen por defecto dentro de .bashrc, como:

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

alias rm='rm -i'

E engade os que consideres necesarios, xa que son comandos de uso frecuente, como:

alias cc='clear'

É importante saber máis dun xeito autodidacta variables, alias, o .bashrc e a lingua cuncha bash para un nivel máis avanzado do terminal. O mesmo pódese conseguir ao iniciar sesións remotas a través de ssh, que podemos ver máis adiante noutras publicacións futuras.

Espero que estes pequenos "Consellos" facilítalles a realización de optimizacións básicas pero útiles, que xeralmente só están reservadas a expertos en Tecnoloxía, Informática, Software Libre e GNU / Linux.

RECORDATORIO: Se algunha liña de comando non executa ou mostra o valor correcto, asegúrese de probar manualmente cada sección do símbolo do sistema para tentar axustar os valores ou a sintaxe dalgunhas variables.


O contido do artigo adhírese aos nosos principios de ética editorial. Para informar dun erro faga clic en aquí.

9 comentarios, deixa os teus

Deixa o teu comentario

Enderezo de correo electrónico non será publicado.

*

*

  1. Responsable dos datos: Miguel Ángel Gatón
  2. Finalidade dos datos: controlar SPAM, xestión de comentarios.
  3. Lexitimación: o seu consentimento
  4. Comunicación dos datos: os datos non serán comunicados a terceiros salvo obrigación legal.
  5. Almacenamento de datos: base de datos aloxada por Occentus Networks (UE)
  6. Dereitos: en calquera momento pode limitar, recuperar e eliminar a súa información.

  1.   eippekay dixo

    O aliasing é o mellor. Non creo mal sobre algúns que inclúen por defecto en bashrc: la (ls -a) e ll (ls -l). No último engado o parámetro -h.

    Outros alias prácticos:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (utilízoo para eliminar directorios con ficheiros)
    shutdown = 'sudo shutdown -h now'
    del = 'trash-put' (mover ficheiros ao lixo, comando paquete trash-cli)

  2.   ton dixo

    Desde que vin este alias o ano pasado en Reddit, foi o meu favorito:
    alias fuck = 'sudo $ (history -p !!)'

  3.   Martin dixo

    O artigo e o aspecto que lle dá á consola é moi bo. Algunhas achegas:
    - En Ubuntu os alias pódense colocar nun ficheiro separado (.bash_aliases) no resto das distribucións que non sei, pero faino engadindo as seguintes liñas en .bashrc:
    se [-f ~ / .bash_aliases]; entón
    . ~ / .bash_aliases
    fi
    Isto permite que os alias estean máis ordenados e para os esquecidos coma min podes engadir este alias que amose o ficheiro que lista os alias:
    alias lsalias = 'máis ~ / .bash_aliases'
    - Tamén teño un ficheiro de texto de comandos de uso pouco frecuente (que normalmente non recordo) chamado command_utiles.txt e listo co seguinte alias: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - Máis alias que uso:
    alias cdu = 'cd ~'
    alias lof = 'ls -lSr | máis' # Mostra os ficheiros en detalle ordenados por tamaño
    alias lod = 'du -sk * | sort -rn '# Mostrar directorios ordenados por tamaño
    alias deo = 'du -sh' # Estimar o espazo ocupado pola dir indicada
    alias psa = 'ps -eafw | máis '# Amosa todos os procesos con máis
    alias psg = 'ps -eafw | grep '# Amosa o proceso indicado
    - Finalmente, unha alternativa para os usuarios que fixen:
    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 "nome do modelo" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    NUM_CPU = $ (grep "procesador" / proc / cpuinfo | sort -r | sed q | awk '{print $ 3}' | echo expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep "núcleos de CPU" / proc / cpuinfo | sed q | awk '{print $ 4}')
    CACHE_CPU = $ (grep "tamaño da caché" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_Data = $ (du -sh ~ | sort -r | awk '{print $ 1}')

    limpar
    printf% 130s | tr »» «=»
    botou ""
    eco «DATA:«date +%c --date='+1 year'
    eco «KERNEL:«uname -o»<«uname -r«> <«uname -m«>»
    eco "DISTRIBUCIÓN:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    eco "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Núcleos," $ CACHE_CPU "Caché"
    eco «ESPAZO USADO:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    botou ""
    ############################
    eco "COMANDOS ÚTILES:"
    echo »- Instalar RPM no sistema de paquetes DEB: alien -c -i package.rpm»
    echo »- Cambia o usuario e o grupo de ficheiros de xeito recursivo: chown -hR usuario: grupo [ficheiro ou dirección]»
    echo »- Copia mantendo os permisos: destino fonte cp -ax»
    echo »- Mostrar repositorios activos: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Engade un repositorio: apt-add-repository ppa: repositorio»
    eco »- PARA VER MÁIS COMANDOS Cutil»
    eco »- PARA MOSTRAR AS ALIAS lsalias»
    printf% 130s | tr »» «=»
    botou ""
    botou ""
    # 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 dixo

      por que mellor non escribir o teu propio artigo?

  4.   abaddon s dixo

    ESTES SON OS TITORIOS QUE ME GUSTAN !!!!!!!!!

  5.   Ing. José Albert dixo

    Ben, alégrome moito de que che gustase e o serviches.

    Mañá espero publicar outro artigo! Pendentes.

  6.   arquivo de usuario dixo

    Saúdos e infinita gratitude por compartir esa información.
    Non teño moitos coñecementos sobre a administración de GNU / Linux (só son un usuario empírico e curioso sen formación académica), pero recordo que lera nalgún sitio web sobre problemas de seguridade con escalada de privilexios; algúns comandos e cancións no script .bashrc, paréceme que poderían facilitar o traballo dun hacker ou cracker.
    Respectuoso e moi agradecido.

  7.   Ing. José Albert dixo

    Con Shell Scripting optimizar o terminal é sinxelo, vexa ata onde pode chegar facendo unha boa Shell Scripting.

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

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

  8.   Prado dixo

    Estupendo tutorial! ¿Algún libro que recomendas en Linux para aprender ben scripts de configuración, configuracións e seguridade do servidor? Grazas