Як досягти терміналу SysAdmin, застосовуючи сценарії оболонки

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

`

Другий крок: Відредагуйте кореневий файл .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\]$ "

Третій крок: відредагуйте кореневий файл .bashrc

Вийти і термінал. Почніть знову і випробуйте зміни. Це має виглядати приблизно так, як показано нижче, на наступних зображеннях:

Крок 1: Запуск терміналу

Крок 2: Редагуйте користувача .bashrc

Крок 3: Вміст, вбудований у користувача .bashrc

Крок 4: Кореневий логін

Крок 5: Кореневий логін

Крок 6: Відредагуйте кореневий файл .bashrc

Крок 7: Відредагуйте кореневий файл .bashrc

Крок 8: Відредагуйте кореневий файл .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.

НАПАМ’ЯТАННЯ: Якщо будь-який командний рядок не може виконати або відображає правильне значення, не забудьте перевірити вручну кожен розділ командного рядка, щоб спробувати відкоригувати значення або синтаксис деяких змінних.


Залиште свій коментар

Ваша електронна адреса не буде опублікований. Обов'язкові для заповнення поля позначені *

*

*

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

  1.   yippekay - сказав він

    Псевдоніми - найкращі. Я не думаю погано щодо деяких, які за замовчуванням включають в bashrc: la (ls -a) та ll (ls -l). Нарешті я додаю параметр -h.

    Інші практичні псевдоніми:
    s = 'sudo'
    cd1 = 'cd ..'
    cd2 = 'кд ../ ..'
    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 | more' # Детально відображає файли, відсортовані за розміром
    псевдонім lod = 'du -sk * | sort -rn '# Показати каталоги, відсортовані за розміром
    alias deo = 'du -sh' # Оцініть простір, який займає вказаний каталог
    псевдонім psa = 'ps -eafw | more '# Показати всі процеси з додатковими
    псевдонім 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«>»
    ехо "РОЗПОДІЛ:" $ SYSTEM_NAME "" $ SYSTEM_VERSION ""
    echo "CPU:" $ MODEL_CPU "," $ NUCLEO_CPU "Ядра," $ CACHE_CPU "Cache"
    echo «ВИКОРИСТАНИЙ ПРОСТІР:« $ DATA_USUARIO
    printf% 130s | tr »» «=»
    викидати ""
    ############################
    echo "КОРИСНІ КОМАНДИ:"
    echo »- Встановити RPM в пакетній системі DEB: alien -c -i package.rpm»
    echo »- Рекурсивно змінювати користувача та групу файлів: користувач chown -hR: група [файл чи каталог]»
    echo »- копія, що зберігає дозволи: cp -ax джерело призначення»
    echo »- Показати активні сховища: grep -i ppa.launchpad.net /etc/apt/sources.list.d/*.list»
    echo »- Додати сховище: apt-add-repository ppa: repository»
    echo »- БАЧИТИ БІЛЬШЕ КОМАНДІЙ Cutil»
    echo »- ПОКАЗАТИ ПСИХІМИ lsalias»
    printf% 130s | tr »» «=»
    викидати ""
    викидати ""
    # PS1 = »[\ e [33; 1м] ┌─ ([\ e [34; 1м] \ u @ \ h [\ e [37; 1м]) * * * * \ d - \ t * * * * {[\ e [31; 1м] \ w [\ e [33; 1м]} \ n└──┤ [\ e [32м] # »
    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.

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

    Див. Скрінкаст: https://www.youtube.com/watch?v=cWpVQcbgCyY

  8.   Луг - сказав він

    Чудовий підручник! Будь-яка книга, яку ви рекомендуєте на Linux, щоб добре навчитися сценаріям оболонки, конфігураціям, безпеці сервера? Дякую