#!/bin/bash
# Расписание в формате cron
CRON_SCHEDULE="0 0 * * *"
# Название systemd-сервиса
SERVICE_NAME="aecava.service"
if [ "$EUID" -ne 0 ]; then
echo "Пожалуйста, запустите скрипт с правами суперпользователя."
exit 1
fi
if ! command -v crontab &> /dev/null; then
echo "Ошибка: crontab не найден. Установите пакет cron."
exit 1
fi
if systemctl is-active --quiet crond; then
echo "Служба crond запущена."
elif systemctl is-active --quiet cron; then
echo "Служба cron запущена."
else
echo "Ошибка: cron не запущен. Попробуйте запустить:"
echo " sudo systemctl start crond"
echo " sudo systemctl start cron"
exit 1
fi
if ! command -v systemctl &> /dev/null; then
echo "Ошибка: systemctl не найден. Убедитесь, что система поддерживает systemd."
exit 1
fi
setup_cron() {
echo "Настройка cron для автоматического перезапуска сервиса..."
CRON_CMD="$CRON_SCHEDULE logger -t RestartService \"Перезапуск сервиса $SERVICE_NAME\" && systemctl restart $SERVICE_NAME"
(crontab -l 2>/dev/null | grep -v "$SERVICE_NAME"; echo "$CRON_CMD") | crontab -
echo "Cron настроен: сервис $SERVICE_NAME будет перезапускаться по расписанию $CRON_SCHEDULE."
logger -t RestartService "$(date '+%Y-%m-%d %H:%M:%S') - Cron настроен с расписанием $CRON_SCHEDULE для сервиса $SERVICE_NAME"
}
main() {
if [ -z "$CRON_SCHEDULE" ] || [ -z "$SERVICE_NAME" ]; then
echo "Ошибка: CRON_SCHEDULE или SERVICE_NAME не заданы. Проверьте конфигурацию в начале скрипта."
exit 1
fi
setup_cron
}
main