Написання скриптів
Bash скрипт - це текстовий файл, що містить послідовність команд, які виконуються в оболонці bash. Основні елементи скрипту на bash:
- Шебанг - перший рядок скрипту, що вказує на оболонку, в якій будуть виконуватись команди. Наприклад,
#!/bin/bash. - Змінні - змінні використовуються для зберігання значень, які можуть бути використані в командах скрипту. Наприклад,
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створить бекап всіх файлів та піддиректорій в поточній директорії.
- Команди - команди виконуються в оболонці bash і можуть бути використані для створення, копіювання, переміщення файлів та інших операцій.
- Умовні оператори - умовні оператори використовуються для виконання різних команд в залежності від умови.
Наприклад,
if [ -d $backup_dir ]. - Цикли - цикли використовуються для повторення команд декілька разів. Наприклад,
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
Як створювати скрипти
Організація написання та відлагодження скрипту
Щоб ефективно написати та відлагоджувати скрипт, рекомендується дотримуватись наступних кроків:
Відкрийте консоль або термінал та виконайте необхідні команди вручну, щоб переконатись, що вони працюють правильно. Це допоможе вам перевірити логіку та відлагодити будь-які проблеми, які можуть виникнути.
Після успішного виконання команд у консолі, перенесіть їх у файл скрипту. Для створення файлу скрипту з командного рядка, виконайте наступну команду:
touch script.shЦя команда створить новий файл з назвою
script.sh. Ви можете замінитиscriptна будь-яку іншу назву, яка вам підходить.Відкрийте створений файл скрипту у вашому улюбленому текстовому редакторі та скопіюйте команди, які ви виконали в консолі, у цей файл. Переконайтеся, що команди розміщені в правильній послідовності та відповідають вашим потребам.
Збережіть файл скрипту після додавання команд. Ви можете використовувати команду "Ctrl+S" або відповідну опцію з меню вашого текстового редактора.
Переконайтеся, що файл скрипту має правильні права доступу для виконання. Ви можете встановити права доступу за допомогою команди:
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, ця адреса буде використана незалежно від інших параметрів.