Как да постигнем SysAdmin терминал, прилагайки Shell Scripting

El Скрипт на Shell, Той се отнася до изпълнение на сложни поръчки за GNU / Linux терминал (конзола), много е полезно да автоматизираме рутинните и важни дейности в рамките на нашата Операционна система GNU / Linux, което ни позволява да оптимизираме нашите Ресурси и време.

Избор_007

Следователно, използването му от терминала ни позволява да изпълняваме сложни командни команди ръчно или автоматично чрез скриптове или като програмирани процедури в автоматично заредени файлове или планирани задачи в операционната система. GNU / Linux. И за Среден потребител, напреднал или SysAdmin el график (автоматизира) задачи, сигнали и / или известия на хост (компютър / сървър), които да запазите Часове / труд От ръчно или лице в лице изпълнение е нещо основно и съществено за доброто изпълнение на работата ви като професионалист на високо ниво.

След това ще покажем как a данни (стойност / параметър) преди това се съхранява в променлива от команда Баш Шел или съвместим, той може да бъде показан в терминала на вашата операционна система GNU / linux, по практичен и лесен начин. В допълнение към настройката на терминалния ред.

Първа стъпка: Редактирайте .bashrc на вашия потребител

С редактора по ваш избор (vi, nano и др.) Редактирайте .bashrc файл на вашия потребител, който трябва да се намира в дома на същия, т.е., например: "/ Начало / my_user".

Вмъкнете съдържанието на всеки от следващите редове и всички онези допълнителни, които смятате за удобни за показване на потребителя при изпълнение на потребителски терминал:

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

`

Втора стъпка: Редактирайте root .bashrc

Отново с редактора, който вече е използван, редактирайте .bashrc файл дел корен суперпотребител които трябва да се намират в рамките на пътя / корена му.

Вмъкнете съдържанието на всеки от следващите редове и всички онези допълнителни, които смятате за удобни за показване на потребителя при изпълнение на потребителски терминал:

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

Трета стъпка: Редактирайте root .bashrc

Излезте и терминала. Стартирайте го отново и изпитайте промените. Тя трябва да изглежда подобно на показаната по-долу на следните изображения:

Стъпка 1: Стартиране на терминала

Стъпка 2: Редактирайте потребител .bashrc

Стъпка 3: Съдържание, вградено в потребител .bashrc

Стъпка 4: Основно влизане

Стъпка 5: Основно влизане

Стъпка 6: Редактирайте root .bashrc файл

Стъпка 7: Редактирайте root .bashrc файл

Стъпка 8: Редактирайте root .bashrc файл

Стъпка 9: Демонстрационен пример за нов потребителски терминал

Стъпка 10: Демонстрационен пример за нов потребителски терминал

Стъпка 11: Демонстрационен пример за нов потребителски терминал

Стъпка четвърта (по избор): Настройка на псевдоними

Не забравяйте, че използването на псевдоними в .bashrc Също така може да ви спести много време за писане. Разкоментирайте тези, които идват по подразбиране в .bashrc, като:

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

alias rm='rm -i'

И добавете тези, които смятате за необходими, тъй като те са често използвани команди, като например:

alias cc='clear'

Важно е да знаете повече за самоуки променливи, псевдоними, .bashrc и езика bash shell за по-напреднало ниво на терминала. Същото може да се постигне при стартиране на отдалечени сесии чрез ssh, което можем да видим по-късно в други бъдещи публикации.

Надявам се тези малки "Съвети" улесняват извършването на основни, но полезни оптимизации, които обикновено са запазени само за експерти в Технологии, изчисления, свободен софтуер и GNU / Linux.

ПРИПОМНЕТЕ: Ако някой команден ред не успее да изпълни или покаже правилната стойност, не забравяйте да тествате ръчно всеки раздел от командния ред, за да опитате да коригирате стойностите или синтаксиса на някои променливи.


9 коментара, оставете своя

Оставете вашия коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са отбелязани с *

*

*

  1. Отговорен за данните: Мигел Анхел Гатон
  2. Предназначение на данните: Контрол на СПАМ, управление на коментари.
  3. Легитимация: Вашето съгласие
  4. Съобщаване на данните: Данните няма да бъдат съобщени на трети страни, освен по законово задължение.
  5. Съхранение на данни: База данни, хоствана от Occentus Networks (ЕС)
  6. Права: По всяко време можете да ограничите, възстановите и изтриете информацията си.

  1.   yippekay каза той

    Псевдонимите са най-добрите. Не мисля лошо за някои, които включват по подразбиране в bashrc: la (ls -a) и ll (ls -l). На последно място добавя параметъра -h.

    Други практически псевдоними:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'cd ../ ..'
    rmd = 'rm -r' (използвам го за премахване на директории с файлове)
    shutdown = 'sudo shutdown -h now'
    del = 'trash-put' (преместване на файлове в кошче, команда за пакет trash-cli)

  2.   тон каза той

    Откакто видях този псевдоним миналата година на Reddit, той ми беше любим:
    псевдоним fuck = 'sudo $ (история -p !!)'

  3.   лястовица каза той

    Статията и външният вид, който придава на конзолата, са много добри. Някои приноси:
    - В Ubuntu псевдонимите могат да бъдат поставени в отделен файл (.bash_aliases) в останалите дистрибуции, които не знам, но го прави, като добавя следните редове в .bashrc:
    ако [-f ~ / .bash_aliases]; тогава
    . ~ / .bash_aliases
    fi
    Това позволява псевдонимите да бъдат по-подредени, а за забравилите като мен можете да добавите този псевдоним, който показва файла с псевдоними:
    псевдоним lsalias = 'още ~ / .bash_aliases'
    - Имам и рядко използван команден текстов файл (който обикновено не си спомням), наречен command_utiles.txt и готов със следния псевдоним: alias cutil = 'more ~ ​​/ command_utiles.txt'
    - Повече псевдоними, които използвам:
    псевдоним cdu = 'cd ~'
    alias lof = 'ls -lSr | още' # Показва файловете в детайли, подредени по размер
    псевдоним lod = 'du -sk * | sort -rn '# Показване на директории, сортирани по размер
    alias deo = 'du -sh' # Оценете пространството, заето от посочения реж
    псевдоним psa = 'ps -eafw | още '# Показване на всички процеси с повече
    псевдоним psg = 'ps -eafw | grep '# Показва посочения процес
    - И накрая, алтернатива за потребители, която направих:
    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 "име на модел" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    NUM_CPU = $ (grep "процесор" / proc / cpuinfo | sort -r | sed q | awk '{print $ 3}' | echo expr $NUM_CPU + 1)
    NUCLEO_CPU = $ (grep "процесорни ядра" / proc / cpuinfo | sed q | awk '{print $ 4}')
    CACHE_CPU = $ (grep "размер на кеша" / proc / cpuinfo | sed q | cut -d ":" -f 2 | awk '{print $ 0}')
    USER_Data = $ (du -sh ~ | sort -r | awk '{print $ 1}')

    изчисти
    printf% 130s | tr »» «=»
    изхвърли ""
    ехо «ДАТА:«date +%c --date='+1 year'
    ехо «КЕРНЕЛ:«uname -o»<«uname -r«> <«uname -m«>»
    echo "DISTRIBUTION:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    echo "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Nuclei," $ CACHE_CPU "Cache"
    echo «ИЗПОЛЗВАНО ПРОСТРАНСТВО:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    изхвърли ""
    ############################
    echo "ПОЛЕЗНИ КОМАНДИ:"
    echo »- Инсталиране на RPM в DEB пакетна система: alien -c -i package.rpm»
    ехо »- Промяна на потребителя и групата файлове рекурсивно: chown -hR потребител: група [файл или реж.]»
    echo »- Копиране, запазващо разрешенията: cp -ax дестинация източник»
    echo »- Показване на активни хранилища: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Добавяне на хранилище: apt-add-repository ppa: хранилище»
    echo »- ЗА ВИЖТЕ ПОВЕЧЕ Cutil команди»
    echo »- ЗА ПОКАЗВАНЕ НА ПСЕВЕДИИТЕ lsalias»
    printf% 130s | tr »» «=»
    изхвърли ""
    изхвърли ""
    # 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.    абадон с каза той

      защо не е по-добре да не напишете своя статия?

  4.   абадон с каза той

    ТОВА СА ТУРЦИИТЕ, КОИТО ХАРЕСАМ !!!!!!!!!

  5.   Инж. Хосе Алберт каза той

    Е, много се радвам, че сте го харесали и сервирали!

    Утре се надявам да публикувам друга статия! Склонове.

  6.   потребител-арх каза той

    Поздрави и безкрайна благодарност за споделянето на тази информация.
    Нямам много знания за администрирането на GNU / Linux (аз съм просто емпиричен и любопитен потребител без академично обучение), но си спомням, че прочетох на някой уебсайт за проблеми със сигурността с ескалация на привилегии; някои команди и тръби в скрипта .bashrc, струва ми се, че биха могли да улеснят работата на хакер или взлом.
    С уважение и много благодарност.

  7.   Инж. Хосе Алберт каза той

    С Shell Scripting оптимизирането на терминала е просто, вижте докъде можете да стигнете, като направите добър Shell Scripting.

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

    Вижте Screencast: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   Лъка каза той

    Страхотен урок! Всяка книга, която препоръчвате на linux, за да научите скриптове на черупки, конфигурации, сигурност на сървъра? Благодаря ти