Рубрики
Uncategorized

Как написать свой первый сценарий Bash?

ВВЕДЕНИЕ BASH Scripting позволяет автоматизировать много ваших задач по системе Linux и Unix … Tagged с Linux, Bash, DevOps, Codenewbie.

Bash Scripting позволяет автоматизировать много ваших задач в системах Linux и Unix. Bash объединяет мощность команд Linux и инструментов с мощным и надежным языком сценариев.

Bash широко доступен в различных операционных системах. Во многих случаях Bash также является интерпретатором команды по умолчанию в большинстве систем Linux.

В этой статье я покажу вам, как написать ваш первый сценарий Bash!

Перед началом работы вам понадобится терминал Bash и текстовый редактор.

Я буду использовать капель Ubuntu, развернутую на DigitaloCean. Если вы хотите следовать, вы можете зарегистрироваться в DigitaloCean через мою реферальную ссылку ниже, и вы получите $ 100 БЕСПЛАТНЫЙ цифровой кредит :

Бесплатный цифровой кредит за 100 долларов США

Например, мы напишем сценарий, который соберет некоторую полезную информацию о нашем сервере, как:

  • Текущее использование диска
  • Текущее использование процессора
  • Текущее использование RAM
  • Проверьте точную версию ядра

Не стесняйтесь корректировать скрипт, добавляя или удаляя функциональность, чтобы он соответствовал вашим потребностям.

Первое, что вам нужно сделать, это создать новый файл с .sh расширение. Я создам файл с именем status.sh Поскольку сценарий, который мы создадим, даст нам статус нашего сервера.

После того, как вы создали файл, откройте его своим любимым текстовым редактором.

На самой первой строке нашего сценария Bash нам нужно указать так называемый Шебанг :

#!/bin/bash

Все, что делает Шебанг, это инструктировать операционную систему запустить сценарий с помощью исполняемого файла/bin/bash.

Добавление комментариев

Давайте начнем с добавления некоторых комментариев, чтобы люди могли легко выяснить, для чего используется скрипт. Чтобы сделать это сразу после шебанга, вы можете просто добавить следующее:

#!/bin/bash

# Script that returns the current server status

Добавление вашей первой переменной

Затем давайте продолжим и добавим некоторые переменные, которые мы могли бы использовать на протяжении всего сценария.

Чтобы присвоить значение переменной в Bash, вам просто нужно использовать знак равно знак. Например, давайте сохраним имя хоста нашего сервера в переменной, чтобы мы могли использовать его позже:

server_name=$(hostname)

С помощью $ () Мы говорим Bash фактически интерпретировать команду, а затем присвоить значение нашей переменной.

Теперь, если бы мы повторили переменную, мы бы увидели текущее имя хоста:

echo $server_name

Добавление вашей первой функции

Чтобы создать функцию в Bash, вам нужно использовать следующую структуру:

function function_name() {
    your_commands
}

Давайте создадим функцию, которая возвращает текущее использование памяти на нашем сервере:

function memory_check() {
    echo ""
    echo "The current memory usage on ${server_name} is: "
    free -h
    echo ""
}

Быстрый запуск функции:

  • function memory_check () { — Так мы определяем функцию
  • Эхо "" — Здесь мы просто печатаем новую линию
  • Echo "Текущее использование памяти на $ {server_name}:" — Здесь мы печатаем все маленькое сообщение и $ server_name переменная
  • } — Наконец, так мы закрываем функцию

Затем, как только функция была определена, чтобы назвать ее, просто используйте имя функции:

# Define the function
function memory_check() {
    echo ""
    echo "The current memory usage on ${server_name} is: "
    free -h
    echo ""
}

# Call the function
memory_check

Добавление дополнительных функций задачи

Прежде чем проверить решение, я бы бросил вам вызов использовать функцию сверху и написать несколько функций самостоятельно.

Функции должны выполнять следующее:

  • Текущее использование диска
  • Текущее использование процессора
  • Текущее использование RAM
  • Проверьте точную версию ядра

Не стесняйтесь использовать Google, если вы не уверены, какие команды вам нужно использовать, чтобы получить эту информацию.

Как только вы будете готовы, не стесняйтесь прокручивать вниз и проверить, как мы это сделали, и сравните результаты!

Обратите внимание, что есть несколько правильных способов сделать это!

Вот как будет выглядеть конечный результат:

#!/bin/bash

##
# BASH script that checks:
#   - Memory usage
#   - CPU load
#   - Number of TCP connections 
#   - Kernel version
##

server_name=$(hostname)

function memory_check() {
    echo ""
    echo "Memory usage on ${server_name} is: "
    free -h
    echo ""
}

function cpu_check() {
    echo ""
    echo "CPU load on ${server_name} is: "
    echo ""
    uptime
    echo ""
}

function tcp_check() {
    echo ""
    echo "TCP connections on ${server_name}: "
    echo ""
    cat  /proc/net/tcp | wc -l
    echo ""
}

function kernel_check() {
    echo ""
    echo "Kernel version on ${server_name} is: "
    echo ""
    uname -r
    echo ""
}

function all_checks() {
    memory_check
    cpu_check
    tcp_check
    kernel_check
}

all_checks

Чтобы отлаживать свои сценарии Bash, вы можете использовать -x при выполнении своих сценариев:

bash -x ./your_script.sh

Или вы можете добавить SET -x Перед конкретной строкой, которую вы хотите отладить, SET -x включает режим оболочки, где все выполненные команды печатаются на терминал.

Еще один способ проверить свои сценарии — использовать этот фантастический инструмент здесь:

https://www.shellcheck.net/

Просто скопируйте и вставьте свой код в текстовое поле, и инструмент даст вам несколько предложений о том, как вы можете улучшить свой скрипт.

Бэш сценариев потрясающий! Независимо от того, являетесь ли вы инженером DevOps/Sysops, разработчиком или просто энтузиастом Linux, вы можете использовать сценарии Bash, чтобы объединить различные команды Linux и автоматизировать скучные и повторяющиеся ежедневные задачи, чтобы вы могли сосредоточиться на более продуктивных и забавных вещах!

Чтобы узнать больше о Bash, вы можете взглянуть на следующую электронную книгу Bash здесь:

Введение в электронную книгу сценариев Bash

Не стесняйтесь поделиться своим скриптом со мной, отметив меня в Twitter: @bobbyiliev_

Оригинал: «https://dev.to/bobbyiliev/how-to-write-your-first-bash-script-5667»