Skip to content

Instantly share code, notes, and snippets.

@jemsgit
Created November 4, 2025 13:42
Show Gist options
  • Select an option

  • Save jemsgit/39baee71efaabdea45cfa5567a68b29f to your computer and use it in GitHub Desktop.

Select an option

Save jemsgit/39baee71efaabdea45cfa5567a68b29f to your computer and use it in GitHub Desktop.
#!/bin/bash
# === Помощь ===
if [ $# -lt 2 ]; then
echo "Использование: $0 <путь_к_скрипту> <расписание> [описание]"
echo "Пример: $0 /usr/local/bin/sysreport.sh '0 9 * * *' 'Daily system report'"
exit 1
fi
SCRIPT_PATH="$1"
SCHEDULE="$2"
DESCRIPTION="${3:-Added by add-cron.sh}"
CRON_CMD="$SCHEDULE $SCRIPT_PATH # $DESCRIPTION"
# === Проверяем, что файл существует и исполняемый ===
if [ ! -f "$SCRIPT_PATH" ]; then
echo "Ошибка: файл $SCRIPT_PATH не найден."
exit 1
fi
if [ ! -x "$SCRIPT_PATH" ]; then
echo "⚠️ Файл не исполняемый, делаю chmod +x"
chmod +x "$SCRIPT_PATH"
fi
# === Проверяем, есть ли уже запись ===
CURRENT_CRON=$(crontab -l 2>/dev/null)
if echo "$CURRENT_CRON" | grep -F "$SCRIPT_PATH" >/dev/null; then
echo "⚠️ Задание для $SCRIPT_PATH уже существует в crontab."
exit 0
fi
# === Добавляем новую строку ===
( crontab -l 2>/dev/null; echo "$CRON_CMD" ) | crontab -
echo "✅ Задание добавлено:"
echo "$CRON_CMD"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment