Написання скриптів

Bash скрипт - це текстовий файл, що містить послідовність команд, які виконуються в оболонці bash. Основні елементи скрипту на bash:

  1. Шебанг - перший рядок скрипту, що вказує на оболонку, в якій будуть виконуватись команди. Наприклад, #!/bin/bash.
  2. Змінні - змінні використовуються для зберігання значень, які можуть бути використані в командах скрипту. Наприклад, backup_dir="/home/user/backup" або можна зберегти вівід іншої команди у змінну написавши date=$(date +%Y-%m-%d)

    [!tip] Ви також можете використовувати змінні під час виклику команд, написавши zip -r "${BACKUP_ZIP_FILE}" ., де

    • zip: це команда, яка створює архіви у форматі zip.
    • -r: це параметр команди zip, який вказує на рекурсивне архівування. Це означає, що команда zip включить у архів всі піддиректорії та їх вміст.
    • "${BACKUP_ZIP_FILE}": це змінна оболонки, яка містить шлях до файлу zip, в який буде збережено бекап. Двійні кавички використовуються для того, щоб правильно обробити шляхи, які містять пробіли або спеціальні символи.
    • .: це символ, який вказує на поточну директорію. Це означає, що команда zip створить бекап всіх файлів та піддиректорій в поточній директорії.
  3. Команди - команди виконуються в оболонці bash і можуть бути використані для створення, копіювання, переміщення файлів та інших операцій.
  4. Умовні оператори - умовні оператори використовуються для виконання різних команд в залежності від умови. Наприклад, if [ -d $backup_dir ].
  5. Цикли - цикли використовуються для повторення команд декілька разів. Наприклад, for file in $(ls $backup_dir).

Приклад скрипту на bash для резервного копіювання та архівування директорії:

#!/bin/bash

backup_dir="/home/user/backup"
date=$(date +%Y-%m-%d)
archive_name="backup_$date.tar.gz"

if [ -d $backup_dir ]
then
  cd $backup_dir
  tar -czvf $archive_name *
else
  echo "Backup directory does not exist"
fi

У цьому прикладі скрипт перевіряє наявність директорії для резервного копіювання, створює архів з файлами в цій директорії та додає поточну дату до назви архіву. Якщо директорія не існує, скрипт виводить повідомлення про помилку.

[!tip] Більш детально ви можете ознайомитися зі створення скриптів у статі Bash Scripting Tutorial – Linux Shell Script and Command Line for Beginners

Як створювати скрипти

Організація написання та відлагодження скрипту

Щоб ефективно написати та відлагоджувати скрипт, рекомендується дотримуватись наступних кроків:

  1. Відкрийте консоль або термінал та виконайте необхідні команди вручну, щоб переконатись, що вони працюють правильно. Це допоможе вам перевірити логіку та відлагодити будь-які проблеми, які можуть виникнути.

  2. Після успішного виконання команд у консолі, перенесіть їх у файл скрипту. Для створення файлу скрипту з командного рядка, виконайте наступну команду:

     touch script.sh
    

    Ця команда створить новий файл з назвою script.sh. Ви можете замінити script на будь-яку іншу назву, яка вам підходить.

  3. Відкрийте створений файл скрипту у вашому улюбленому текстовому редакторі та скопіюйте команди, які ви виконали в консолі, у цей файл. Переконайтеся, що команди розміщені в правильній послідовності та відповідають вашим потребам.

  4. Збережіть файл скрипту після додавання команд. Ви можете використовувати команду "Ctrl+S" або відповідну опцію з меню вашого текстового редактора.

  5. Переконайтеся, що файл скрипту має правильні права доступу для виконання. Ви можете встановити права доступу за допомогою команди:

     chmod +x monitor.sh
    

    Ця команда дозволяє виконувати файл monitor.sh як скрипт.

Тепер ви можете запускати ваш скрипт за допомогою команди:

./monitor.sh

Це дозволить вам виконувати ваш скрипт та перевіряти його працездатність.

[!warning] Пам'ятайте, що ви можете вносити зміни у файл скрипту та повторно запускати його для відлагодження та вдосконалення вашого коду.

Скрипт з використанням ENV

#!/bin/bash

# Адреса API
API_URL=${1:-"http://default-api-url.com"}

# Якщо API_URL задано в оточенні, використовуємо його
if [ -n "$ENV_API_URL" ]
then
    API_URL=$ENV_API_URL
fi

# Шлях до файлу логів
LOG_FILE="/path/to/logfile"

# Кількість помилок за останню годину
ERROR_COUNT=$(grep -c "ERROR" $(find $LOG_FILE -mmin -60))

# Перевірка кількості помилок
if [ $ERROR_COUNT -gt 100 ]
then
    # Відправка запиту на API
    curl -X POST $API_URL
fi

Тепер ви можете запускати ваш скрипт за допомогою команди: ./monitor.sh API_URL, де API_URL - це адреса API, на яку ви хочете відправити запит. Якщо ви не вкажете адресу API, буде використано адресу за замовчуванням. Якщо ви встановите змінну оточення ENV_API_URL, ця адреса буде використана незалежно від інших параметрів.

results matching ""

    No results matching ""