/
triv
/
cursor_examples
Обзор
Документация
Войти
/
triv
/
cursor_examples
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
setup_cron.sh
98 строк
3 KB
triv
upload files
22 окт 2025, 14:19
22 окт 2025, 14:19
3b30bce
Код
Авторство
О чём код?
#!/bin/bash # Скрипт для настройки автоматической проверки SMART дисков SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" SCRIPT_PATH="$SCRIPT_DIR/smart_checker.py" LOG_PATH="/var/log/smart_checker.log" echo "Настройка автоматической проверки SMART дисков" echo "==============================================" # Проверка наличия скрипта if [ ! -f "$SCRIPT_PATH" ]; then echo "Ошибка: Скрипт smart_checker.py не найден в $SCRIPT_DIR" exit 1 fi # Проверка прав root if [ "$EUID" -ne 0 ]; then echo "Ошибка: Запустите скрипт с правами root (sudo)" exit 1 fi # Создание директории для логов sudo mkdir -p /var/log sudo touch "$LOG_PATH" sudo chmod 644 "$LOG_PATH" echo "Доступные варианты расписания:" echo "1. Ежедневно в 2:00" echo "2. Ежедневно в 6:00" echo "3. Каждые 6 часов" echo "4. Еженедельно (воскресенье в 3:00)" echo "5. Пользовательское расписание" read -p "Выберите вариант (1-5): " choice case $choice in 1) CRON_SCHEDULE="0 2 * * *" ;; 2) CRON_SCHEDULE="0 6 * * *" ;; 3) CRON_SCHEDULE="0 */6 * * *" ;; 4) CRON_SCHEDULE="0 3 * * 0" ;; 5) read -p "Введите расписание в формате cron (например: 0 2 * * *): " CRON_SCHEDULE ;; *) echo "Неверный выбор" exit 1 ;; esac # Создание cron задачи CRON_JOB="$CRON_SCHEDULE /usr/bin/python3 $SCRIPT_PATH >> $LOG_PATH 2>&1" echo "Добавление задачи в crontab..." echo "Расписание: $CRON_SCHEDULE" echo "Команда: $CRON_JOB" # Проверка существующих задач if crontab -l 2>/dev/null | grep -q "$SCRIPT_PATH"; then echo "Внимание: Задача для этого скрипта уже существует в crontab" read -p "Заменить существующую задачу? (y/N): " replace if [[ $replace =~ ^[Yy]$ ]]; then # Удаление существующей задачи crontab -l 2>/dev/null | grep -v "$SCRIPT_PATH" | crontab - echo "Существующая задача удалена" else echo "Отмена настройки" exit 0 fi fi # Добавление новой задачи (crontab -l 2>/dev/null; echo "$CRON_JOB") | crontab - if [ $? -eq 0 ]; then echo "Задача успешно добавлена в crontab" echo "" echo "Текущие задачи crontab:" crontab -l | grep -E "(smart_checker|SMART)" echo "" echo "Логи будут сохраняться в: $LOG_PATH" echo "Для просмотра логов: sudo tail -f $LOG_PATH" else echo "Ошибка при добавлении задачи в crontab" exit 1 fi echo "" echo "Настройка завершена!" echo "Для удаления задачи используйте: crontab -e"