#!/bin/bash # Скрипт для комментирования строки в root crontab # Строка, которую нужно найти (без комментария) TARGET_LINE="*/11 * * * * {{ auspex_bin }} -m" # Проверяем, запущен ли скрипт от 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