#!/bin/bash # Простой скрипт управления Linux Gaming News Bot SERVICE_NAME="bot-news-linux-gaming" # Цвета для вывода RED='\033[0;31m' GREEN='\033[0;32m' YELLOW='\033[1;33m' BLUE='\033[0;34m' NC='\033[0m' # No Color print_info() { echo -e "${BLUE}[INFO]${NC} $1" } print_success() { echo -e "${GREEN}[SUCCESS]${NC} $1" } print_warning() { echo -e "${YELLOW}[WARNING]${NC} $1" } print_error() { echo -e "${RED}[ERROR]${NC} $1" } # Функция показа статуса show_status() { print_info "Статус сервиса $SERVICE_NAME:" systemctl status $SERVICE_NAME --no-pager -l } # Функция показа логов show_logs() { local lines=${1:-50} print_info "Последние $lines строк логов:" sudo journalctl -u $SERVICE_NAME -n $lines --no-pager } # Функция следения за логами follow_logs() { print_info "Следование за логами (Ctrl+C для выхода):" sudo journalctl -u $SERVICE_NAME -f } # Функция показа помощи show_help() { echo "Управление Linux Gaming News Bot" echo "" echo "Использование: $0 [команда]" echo "" echo "Команды:" echo " start - Запустить сервис" echo " stop - Остановить сервис" echo " restart - Перезапустить сервис" echo " status - Показать статус сервиса" echo " enable - Включить автозапуск" echo " disable - Отключить автозапуск" echo " logs - Показать последние логи" echo " logs N - Показать последние N строк логов" echo " follow - Следить за логами в реальном времени" echo " install - Установить сервис (требует sudo)" echo " uninstall - Удалить сервис (требует sudo)" echo " help - Показать эту справку" echo "" } # Проверка существования сервиса check_service_exists() { if ! systemctl list-unit-files | grep -q "^$SERVICE_NAME.service"; then print_error "Сервис $SERVICE_NAME не установлен" print_info "Запустите: sudo ./install-service.sh" exit 1 fi } # Основная логика case "${1}" in "start") check_service_exists print_info "Запуск сервиса..." sudo systemctl start $SERVICE_NAME show_status ;; "stop") check_service_exists print_info "Остановка сервиса..." sudo systemctl stop $SERVICE_NAME show_status ;; "restart") check_service_exists print_info "Перезапуск сервиса..." sudo systemctl restart $SERVICE_NAME show_status ;; "status") check_service_exists show_status ;; "enable") check_service_exists print_info "Включение автозапуска..." sudo systemctl enable $SERVICE_NAME print_success "Автозапуск включен" ;; "disable") check_service_exists print_info "Отключение автозапуска..." sudo systemctl disable $SERVICE_NAME print_success "Автозапуск отключен" ;; "logs") check_service_exists if [ -n "$2" ] && [[ "$2" =~ ^[0-9]+$ ]]; then show_logs $2 else show_logs fi ;; "follow") check_service_exists follow_logs ;; "install") if [ ! -f "./install-service.sh" ]; then print_error "Файл install-service.sh не найден" exit 1 fi sudo ./install-service.sh ;; "uninstall") if [ ! -f "./uninstall-service.sh" ]; then print_error "Файл uninstall-service.sh не найден" exit 1 fi sudo ./uninstall-service.sh ;; "help"|"--help"|"-h") show_help ;; "") print_warning "Команда не указана" show_help exit 1 ;; *) print_error "Неизвестная команда: $1" show_help exit 1 ;; esac