#!/bin/bash # Скрипт для раскомментирования строки в root crontab # Строка, которую нужно найти (без комментария) TARGET_LINE="*/10 * * * * /usr/local/bin/grafana_gen" # Проверяем, запущен ли скрипт от root if [ "$EUID" -ne 0 ]; then echo "Ошибка: скрипт должен быть запущен от имени root" exit 1 fi # Получаем текущий crontab CURRENT_CRON=$(crontab -l 2>/dev/null) # Экранируем специальные символы для использования в regex ESCAPED_LINE=$(echo "$TARGET_LINE" | sed 's/[.*[\^$]/\\&/g') # Проверяем, существует ли строка в закомментированном виде if echo "$CURRENT_CRON" | grep -qE "^#${ESCAPED_LINE}"; then # Строка найдена и закомментирована - раскомментируем её echo "$CURRENT_CRON" | sed "s|^#\(${ESCAPED_LINE}\)|\1|" | crontab - echo "Строка раскомментирована успешно" exit 0 elif echo "$CURRENT_CRON" | grep -qE "^${ESCAPED_LINE}"; then # Строка уже раскомментирована echo "Строка уже активна, ничего не делаем" exit 0 else # Строка не найдена вообще echo "Предупреждение: строка не найдена в crontab" exit 2 fi