Hoe een SysAdmin Terminal te bereiken door Shell Scripting toe te passen

El Shell-scripts, Het verwijst naar de uitvoering van complexe orders op GNU / Linux Terminal (console), het is erg handig om routinematige en belangrijke activiteiten binnen ons te automatiseren GNU / Linux-besturingssysteem, waarmee we onze Middelen en tijd.

Selección_007

Daarom stelt het gebruik ervan vanaf de terminal ons in staat om complexe opdrachten handmatig of automatisch uit te voeren via scripts of als geprogrammeerde routines binnen het automatisch laden van bestanden of geplande taken binnen het besturingssysteem. GNU / Linux. en voor een Gemiddelde, geavanceerde of SysAdmin-gebruiker el plannen (automatiseren) taken, waarschuwingen en/of mededelingen op een Host (PC/Server) op te slaan Uren / arbeid van handmatige of face-to-face uitvoering, is iets fundamenteels en essentieels voor de goede uitvoering van uw werk als professional op hoog niveau.

Vervolgens laten we zien hoe gegevens (waarde / parameter) eerder opgeslagen in een variabele door een commando Bash Shell of compatibel, kan het op een praktische en eenvoudige manier worden weergegeven in de terminal van uw GNU/linux-besturingssysteem. Naast het afstemmen van de Terminal-prompt.

Stap één: Bewerk de .bashrc van uw gebruiker

Met de editor van uw keuze (vi, nano, etc.) bewerk het .bashrc-bestand van uw gebruiker die zich in de woning van die gebruiker moet bevinden, dat wil zeggen in bijvoorbeeld: "/home/mijn_gebruiker".

Voer de inhoud in van elk van de volgende regels en al die extra regels die u handig acht om aan de gebruiker te tonen bij het uitvoeren van een gebruikersterminal:

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

`

Tweede stap: Bewerk de root .bashrc

Nogmaals met de al gebruikte editor, bewerk het .bashrc-bestand del superuser root die zich binnen het pad /root daarvan moet bevinden.

Voer de inhoud in van elk van de volgende regels en al die extra regels die u handig acht om aan de gebruiker te tonen bij het uitvoeren van een gebruikersterminal:

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

Derde stap: Bewerk de root .bashrc

Uitloggen en de terminal. Start het opnieuw en ervaar de veranderingen. Het zou er ongeveer uit moeten zien als de volgende afbeeldingen:

Stap 1: Terminal starten

Stap 2: De gebruiker .bashrc bewerken

Stap 3: inhoud ingevoegd in gebruiker .bashrc

Stap 4: Root-login

Stap 5: Root-login

Stap 6: Bewerk het root .bashrc-bestand

Stap 7: Bewerk het root .bashrc-bestand

Stap 8: Bewerk het root .bashrc-bestand

Stap 9: Demonstratief voorbeeld van een nieuwe gebruikersterminal

Stap 10: Demonstratief voorbeeld van een nieuwe gebruikersterminal

Stap 11: Demonstratief voorbeeld van een nieuwe gebruikersterminal

Vierde stap (optioneel): Tweak Alias

Onthoud dat het gebruik van aliassen binnen de .bashrc het kan je ook veel typetijd besparen. Uncommentaar degenen die standaard in de .bashrc komen, zoals:

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

alias rm='rm -i'

En voeg degene toe die u nodig acht, aangezien dit veelgebruikte opdrachten zijn, zoals:

alias cc='clear'

Het is belangrijk om op een autodidactische manier meer te leren variabelen, aliassen, de .bashrc en de taal bash shell voor een meer geavanceerd niveau van de terminal. Hetzelfde kan worden bereikt bij het starten van externe sessies via ssh, wat we later in toekomstige berichten zullen zien.

Ik hoop dat deze kleintjes "Tips" maken het gemakkelijk voor hen om eenvoudige maar nuttige optimalisaties uit te voeren, die over het algemeen alleen zijn voorbehouden aan mensen die experts zijn in Technologie, computers, gratis software en GNU / Linux.

HERINNERING: Als een opdrachtregel niet wordt uitgevoerd of de juiste waarde weergeeft, moet u elke sectie van de opdrachtprompt handmatig testen om te proberen de waarden of syntaxis van sommige variabelen aan te passen.


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   jippekay zei

    Aliassen is het beste. Sommige die standaard in bashrc zitten, lijken me niet slecht: la (ls -a) en ll (ls -l). Aan de laatste voeg ik de parameter -h toe.

    Andere handige aliassen:
    s = 'sudo'
    cd1 = 'cd..'
    cd2 = 'cd ../..'
    rmd = 'rm -r' (ik gebruik het om mappen met bestanden te verwijderen)
    afsluiten = 'sudo afsluiten -h nu'
    del = 'trash-put' (verplaats bestanden naar de prullenbak, opdracht trash-cli-pakket)

  2.   Toño zei

    Sinds ik deze alias vorig jaar op Reddit zag, is het mijn favoriet:
    alias fuck='sudo $(geschiedenis -p !!)'

  3.   Martin zei

    Het artikel en het uiterlijk dat het aan de console geeft, is erg goed. Enkele bijdragen:
    – In ubuntu kunnen de aliassen in een apart bestand (.bash_aliases) in de rest van de distributies worden geplaatst. Ik weet het niet, maar het doet het door de volgende regels toe te voegen in .bashrc:
    if [-f ~ / .bash_aliases]; vervolgens
    . ~ / .bash_aliases
    fi
    Dit maakt het mogelijk om de aliassen meer geordend te hebben en voor vergeetachtige mensen zoals ik kan deze alias toevoegen die het bestand toont met de aliassen:
    aliassen lsalias='meer ~/.bash_aliassen'
    - Ik heb ook een tekstbestand met zelden gebruikte commando's (die ik me meestal niet herinner) genaamd commandos_utiles.txt en ik vermeld het met de volgende alias: alias cutil='more ~/commandos_utiles.txt'
    – Meer aliassen die ik gebruik:
    alias cdu='cd ~'
    alias lof='ls -lSr |more' # Toon bestanden in detail gesorteerd op grootte
    alias lod='du -sk * | sort -rn' # Toon mappen gesorteerd op grootte
    alias deo='du -sh' # Schat de ruimte in die wordt ingenomen door de aangegeven map
    alias psa='ps -eafw | meer' # Toon alle processen met meer
    alias psg='ps -eafw | grep' # Geef het aangegeven proces weer
    – Eindelijk een alternatief voor gebruikers dat ik heb gemaakt:
    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')
    CPU_MANUFACTURER=$(grep "vendor_id" /proc/cpuinfo | sed q | awk '{print $3}')
    CPU_MODEL=$(grep "modelnaam" /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)
    CPU_NUCLEO=$(grep "cpu-kernen" /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 ~ | sorteer -r | awk '{print $1}')

    duidelijk
    printf %130s |tr » » «=»
    gooide uit ""
    echo "DATUM: "date +%c --date='+1 year'
    echo "KERNEL: "uname -o» <«uname -r«> <«uname -m«> »
    echo "DISTRIBUTION: "$SYSTEM_NAME" "$SYSTEM_VERSION" "
    echo "CPU: "$CPU_MODELO", "$CPU_NUCLEO" Kernen, "$CACHE_CPU" Cache"
    echo "RUIMTE GEBRUIKT: "$DATA_USER
    printf %130s |tr » » «=»
    gooide uit ""
    ############################
    echo "NUTTIGE COMMANDO'S: "
    echo » – Installeer RPM in DEB-pakketsysteem: alien -c -i pakket.rpm»
    echo » – Gebruiker en bestandsgroep recursief wijzigen: chown -hR gebruiker:groep [bestand of map]»
    echo » – Machtigingen voor het bewaren van kopieën: cp -ax source destination»
    echo » – Toon actieve opslagplaatsen: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo » – Voeg een repository toe: apt-add-repository ppa:repository»
    echo "- OM MEER COMMANDO'S TE ZIEN cutil"
    echo » – TO TONEN ALIASES lsalias »
    printf %130s |tr » » «=»
    gooide uit ""
    gooide uit ""
    #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 zo zei

      Waarom schrijf je niet je eigen artikel?

  4.   abaddon zo zei

    DIT ZIJN DE TUTORIALS DIE IK GRAAG HOUD!!!!!!

  5.   José Albert zei

    Nou, ik ben erg blij dat je het leuk vond en serveerde!

    Morgen hoop ik weer een artikel te publiceren! Oorbellen.

  6.   gebruiker-arch zei

    Groeten en oneindige dankbaarheid voor het delen van deze informatie.
    Ik heb niet veel kennis over GNU/Linux-beheer (ik ben gewoon een empirische en nieuwsgierige gebruiker zonder academische opleiding), maar ik herinner me dat ik op een website las over beveiligingsproblemen met privilege-escalatie; sommige commando's en pijpen in het .bashrc-script, lijkt het mij het werk van een hacker of cracker te vergemakkelijken.
    Respectvol en zeer dankbaar.

  7.   José Albert zei

    Met Shell Scripting is het optimaliseren van de terminal eenvoudig, kijk hoe ver je kunt gaan door een goede Shell Scripting uit te voeren.

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

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

  8.   Lea zei

    Geweldige tutorial! Elk boek dat je op linux aanbeveelt om shell-scripting, configuraties, serverbeveiliging goed te leren? Bedankt