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 brug fra terminalen os mulighed for at udføre komplekse kommandoer manuelt eller automatisk gennem scripts eller som planlagte rutiner inden for automatisk indlæsning af filer eller planlagte opgaver i operativsystemet. GNU / Linux. og for en Medium, Advanced eller SysAdmin bruger el tidsplan (automatisere) opgaver, advarsler og/eller meddelelser på en vært (pc/server) for at gemme Timer / arbejdskraft af manuel eller ansigt-til-ansigt udførelse, er noget grundlæggende og væsentligt for den gode udførelse af dit arbejde som professionel på højt niveau.

Dernæst vil vi vise hvordan data (værdi / parameter) tidligere gemt i en variabel af 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 Terminal-prompten.

Trin et: Rediger din brugers .bashrc

Med den editor du ønsker (vi, nano osv.), rediger .bashrc-fil af din bruger, der skal være placeret i hjemmet af samme, det vil sige i for eksempel: "/hjem/min_bruger".

Indsæt indholdet af hver af følgende linjer og alle de yderligere linjer, som du finder passende at vise til brugeren, når du 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 root .bashrc

Endnu en gang med editoren allerede brugt, rediger .bashrc-fil den superbrugerrod som skal være placeret indenfor stien/roden af ​​samme.

Indsæt indholdet af hver af følgende linjer og alle de yderligere linjer, som du finder passende at vise til brugeren, når du 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 ligne følgende billeder:

Trin 1: Start terminal

Trin 2: Redigering af brugeren .bashrc

Trin 3: Indhold indsat i bruger .bashrc

Trin 4: Root login

Trin 5: Root login

Trin 6: Redigering af root .bashrc-filen

Trin 7: Redigering af root .bashrc-filen

Trin 8: Redigering af root .bashrc-filen

Trin 9: Demonstrativt eksempel på en ny brugerterminal

Trin 10: Demonstrativt eksempel på en ny brugerterminal

Trin 11: Demonstrativt eksempel på en ny brugerterminal

Fjerde trin (valgfrit): Tweak Alias

Husk, at brugen af ​​aliaser inden for .bashrc det kan også spare dig for en masse skrivetid. Fjern kommentarer til dem, der kommer som standard inde i .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 anser for nødvendige, da det er ofte brugte kommandoer, såsom:

alias cc='clear'

Det er vigtigt at lære 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 du starter fjernsessioner via ssh, hvilket vi kan se senere i fremtidige indlæg.

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.


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  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

    Aliaser er det bedste. Det forekommer mig ikke dårligt, nogle der er inkluderet som standard i bashrc: la (ls -a) og ll (ls -l). Til den sidste tilføjer jeg parameteren -h.

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

  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 aliasserne placeres i en separat fil (.bash_aliases) i resten af ​​distributionerne, jeg ikke kender, 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 få aliasserne mere ordnede, og for glemsomme mennesker som mig kan tilføje dette alias, der viser filen med aliasserne:
    aliases lsalias='mere ~/.bash_aliases'
    – Jeg har også en tekstfil med sjældent brugte kommandoer (som jeg normalt ikke husker) kaldet commandos_utiles.txt, og jeg angiver den med følgende alias: alias cutil='more ~/commandos_utiles.txt'
    – Flere aliaser, jeg bruger:
    alias cdu='cd ~'
    alias lof='ls -lSr |more' # Vis filer i detaljer sorteret efter størrelse
    alias lod='du -sk * | sort -rn' # Vis mapper sorteret efter størrelse
    alias deo='du -sh' # Estimer pladsen 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 til brugere, som jeg lavede:
    SYSTEM_NAME=$(cat /etc/os-release | grep NAVN | 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 "modelnavn" /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-kerner" /proc/cpuinfo | sed q | awk '{print $4}')
    CACHE_CPU=$(grep "cachestørrelse" /proc/cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $0}')
    USER_DATA=$(du -sh ~ | sort -r | awk '{print $1}')

    klar
    printf %130s |tr » » «=»
    smed ud ""
    ekko "DATO: "date +%c --date='+1 year'
    ekko "KERNEL: "uname -o» <«uname -r«> <«uname -m«>»
    echo "DISTRIBUTION: "$SYSTEM_NAME" "$SYSTEM_VERSION" "
    echo "CPU: "$CPU_MODELO", "$CPU_NUCLEO" Cores, "$CACHE_CPU" Cache"
    echo "BRUGT RUM: "$DATA_USER
    printf %130s |tr » » «=»
    smed ud ""
    ############################
    ekko "NYTTIGE KOMMANDOER: "
    echo » – Installer RPM i DEB-pakkesystem: alien -c -i package.rpm»
    echo » – Skift bruger og filgruppe rekursivt: chown -hR bruger:gruppe [fil eller dir]»
    echo » – Kopier bevarelsestilladelser: cp -ax kildedestination »
    echo » – Vis aktive depoter: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo » – Tilføj et lager: apt-add-repository ppa: repository»
    echo "- FOR AT SE FLERE KOMMANDOER cutil"
    echo » – FOR AT VISE ALLIASER 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 skriver du ikke din egen artikel?

  4.   abaddon s sagde han

    DET ER DE TUTORIALS, SOM JEG KAN lide !!!!!!!!!

  5.   Ing. José Albert sagde han

    Nå, jeg er meget glad for, at du kunne lide det og serverede!

    I morgen håber jeg at udgive endnu en artikel! Øreringe.

  6.   bruger-arch sagde han

    Hilsen og uendelig taknemmelighed for at dele denne information.
    Jeg har ikke meget viden om GNU/Linux-administration (jeg er bare en empirisk og nysgerrig bruger uden akademisk uddannelse), men jeg husker at have læst på en hjemmeside om sikkerhedsproblemer med privilegieeskalering; nogle kommandoer og rør i .bashrc-scriptet, ser det ud til, at det kunne lette arbejdet for en hacker eller cracker.
    Respektfuldt og meget taknemmelig.

  7.   Ing. José Albert sagde han

    Med Shell Scripting er det nemt at optimere terminalen, se hvor langt du kan nå ved at lave en god 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, du anbefaler på linux for at lære shell-scripting, konfigurationer, serversikkerhed? tak skal du have