ansible_playbooks/roles/auspex/templates/auspex_l_on.sh.j2
2026-02-24 11:30:35 +03:00

34 lines
No EOL
1.5 KiB
Django/Jinja

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