155 lines
4.4 KiB
Bash
Executable File
155 lines
4.4 KiB
Bash
Executable File
#!/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 |