Bash Linux + Git: от новичка до уверенного пользователяРабота с процессами и задачамиАвтоматизация задач (cron, at)

Автоматизация задач (cron, at)

Уроки курсаАвтоматизация задач (cron, at)

Разбор команды at

Что такое at?

at — это планировщик задач, предназначенный для однократного запуска команд или скриптов в указанное время. В отличие от cron, который используется для периодических (регулярных) заданий, at выполняет задачу один раз в заданное время. Это удобно для задач, которые нужно выполнить в будущем, но не регулярно.

Основной синтаксис

at [опции] время

После ввода команды at с указанием времени вы переходите в интерактивный режим ввода команд, которые будут выполнены в заданное время. Завершив ввод, нужно нажать Ctrl+D, чтобы сохранить задание.

Форматы времени

Команда at поддерживает различные форматы времени. Например:

  • at 15:30 – выполнение задачи сегодня в 15:30.
  • at now + 2 hours – выполнение через 2 часа от текущего момента.
  • at 10:00 tomorrow – выполнение задачи завтра в 10:00.
  • at 5pm Aug 15 – выполнение 15 августа в 17:00.

Формат может зависеть от локальных настроек системы, но общая идея – указание времени в понятном для пользователя виде.

Примеры использования

Пример 1: Однократное выполнение команды

Запустите команду:

at 15:30

После этого терминал перейдёт в режим ввода, где вы можете ввести, например:

echo "Задача выполнена!" > ~/task.log

Затем нажмите Ctrl+D для завершения ввода. Задача будет выполнена сегодня в 15:30, и вывод будет записан в файл ~/task.log.

Пример 2: Использование относительного времени

Запустите:

at now + 1 hour

Затем введите команду, которую хотите выполнить через час:

/usr/bin/python3 ~/scripts/cleanup.py

Нажмите Ctrl+D для завершения ввода.

Пример 3: Планирование задачи на следующий день

at 08:00 tomorrow

После ввода задачи нажмите Ctrl+D. Например, можно запланировать:

echo "Утренний отчёт" | mail -s "Отчёт" user@example.com

Полезные советы

  • Просмотр запланированных задач:
    Команда atq (или at -l) выводит список запланированных заданий.

    atq

  • Удаление запланированной задачи:
    Если нужно удалить задачу, используйте команду atrm с указанием номера задания, полученного из atq.

    atrm <номер_задания>

  • Указание полного пути:
    При планировании задач рекомендуется указывать полный путь к командам и файлам, чтобы избежать проблем с переменными окружения.

  • Локальные настройки:
    Формат времени и другие параметры могут зависеть от локальных настроек. Если возникают проблемы, проверьте документацию вашей системы или выполните man at.