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