Как создать утилиту командной строки для управления Caddy
Введение
Управление сервером Caddy можно сделать намного удобнее, написав небольшую утилиту командной строки, которая позволит выполнять часто используемые действия одной короткой командой. Например, вместо того чтобы каждый раз вводить длинные команды для редактирования конфигурационного файла, перезапуска, проверки состояния или валидации, можно создать скрипт, который всё это делает за вас.
Эта статья покажет, как я создал простую утилиту на Bash, которую я назвал Cadd
. Она помогает управлять Caddy через несколько сокращённых команд. Приведённые шаги детально объясняют, как настроить скрипт, сделать его исполняемым и использовать для повседневных задач.
Шаг 1: Создание файла скрипта
Первое, что нужно сделать, это создать файл, в котором будет размещён наш скрипт. Я решил назвать его Cadd
, но вы можете выбрать любое другое имя. Этот файл будет размещён в директории /usr/local/bin
, чтобы скрипт был доступен как системная команда.
Для создания файла выполните следующую команду:
sudo nano /usr/local/bin/cadd
Почему именно эта директория?
Директория /usr/local/bin
является стандартным местом для пользовательских исполняемых файлов на Unix-подобных системах, таких как Linux и macOS. Она автоматически добавлена в переменную окружения $PATH
, что позволяет запускать скрипты, находящиеся в этой директории, без указания полного пути.
Шаг 2: Написание самого скрипта
Теперь давайте добавим код в файл cadd
. Этот скрипт будет выполнять несколько ключевых операций: редактировать конфигурационный файл Caddy, перезапускать сервис, валидировать конфигурацию, проверять статус, выводить последние строки журнала и форматировать файл.
Код скрипта:
#!/bin/bash
CONFIG_FILE="/etc/caddy/Caddyfile" # Путь к файлу конфигурации Caddy
LOG_LINES=20 # Количество строк журнала для вывода
# Цвета для вывода в консоль
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
BLUE='\033[0;34m'
NC='\033[0m' # Без цвета (сброс)
case "$1" in
e) # Редактирование конфигурации
nano "$CONFIG_FILE"
;;
r) # Рестарт сервиса Caddy
systemctl restart caddy
echo -e "${GREEN}Caddy перезапущен.${NC}"
;;
v) # Валидация конфигурационного файла
caddy validate --config "$CONFIG_FILE"
;;
s) # Статус сервиса Caddy
systemctl status caddy | head -n 10
;;
l) # Логи сервиса Caddy
journalctl -u caddy.service -n "$LOG_LINES"
;;
f) # Форматирование Caddyfile
caddy fmt --overwrite "$CONFIG_FILE"
echo -e "${GREEN}Файл ${YELLOW}$CONFIG_FILE${GREEN} был отформатирован.${NC}"
;;
h) # Вывод помощи
echo -e "${YELLOW}Использование:${NC}"
echo -e "${BLUE}cadd e${NC} - редактировать Caddyfile"
echo -e "${BLUE}cadd r${NC} - перезапустить Caddy"
echo -e "${BLUE}cadd v${NC} - проверить валидность Caddyfile"
echo -e "${BLUE}cadd s${NC} - статус Caddy"
echo -e "${BLUE}cadd l${NC} - показать последние ${LOG_LINES} строк логов Caddy"
echo -е "${BLUE}cadd f${NC} - форматировать файл ${CONFIG_FILE}"
echo -e "${BLUE}cadd h${NC} - показать помощь"
;;
*) # Неправильный ввод команды
echo -e "${RED}Неправильная опция!${NC} Использование: cadd {e|r|v|s|l|h|f}"
;;
esac
Шаг 3: Предоставление прав на выполнение
Чтобы скрипт мог быть выполнен, необходимо сделать его исполняемым. Для этого выполните следующую команду:
sudo chmod +x /usr/local/bin/cadd
Теперь скрипт готов к использованию. Вы можете вызывать его как обычную команду с сокращёнными опциями для управления Caddy.
Команды для управления Caddy через Cadd
cadd e
— откроет файл конфигурации Caddy (/etc/caddy/Caddyfile
) в редактореnano
(можно заменить редактор на ваш любимый, если хотите).cadd r
— выполнит перезапуск сервиса Caddy.cadd v
— проверит валидность файла конфигурации Caddy.cadd s
— покажет текущий статус сервиса Caddy.cadd l
— выведет последние строки логов Caddy (по умолчанию 20).cadd f
— форматирует Caddyfile.cadd h
— выводит список доступных команд и справочную информацию.
Заключение
Создание утилиты Cadd
значительно упростит процесс управления вашим сервером Caddy. Вместо того чтобы вводить длинные команды, вы можете использовать простые сокращения, что особенно полезно для администраторов, работающих с сервером на постоянной основе. Этот скрипт можно легко расширить, добавив новые функции в зависимости от ваших нужд.
- Наше сообщество Openode.XYZ OpeNode.xyz
- Aeza VPS (+15% к пополнению) Aeza.net
- Лучший Евро-хостер VPS (+1 месяц бесплатно на 100$) Kamatera.com
- VPS hosting - 4vps.su (-10% скидка!) 4VPS.su
- TG Channel TG-Channel Neonode.cc