Команда at в Linux

Linux 命令大全Справочник команд Linux


at— это мощный инструмент планирования задач по расписанию в системе Linux, позволяющий пользователям выполнять одноразовые задачи в указанное время, а не какcronвыполнять периодически подобно этому.

иcronПо сравнению с,atон больше подходит для следующих сценариев:

  • Задачи, которые нужно выполнить только один раз
  • Задачи, которые запускаются в определённый момент времени в будущем
  • Временные операции по обслуживанию системы

Установка и базовое использование

Проверка установки

В большинстве дистрибутивов Linux он установлен по умолчаниюat, проверить можно следующей командой:

which at

Если он не установлен, можно установить его с помощью менеджера пакетов:

Пример

# Debian/Ubuntu
sudo apt-get install at

# CentOS/RHEL
sudo yum install at

Запустите службу at

После установки необходимо запуститьatdдемон:

Пример

sudo systemctl start atd
sudo systemctl enable atd  # Включить автозапуск при загрузке

Синтаксис команды и параметры

Базовый синтаксис

at [选项] 时间

Общие параметры

Опция Описание
-f 文件 Читать команды из указанного файла вместо стандартного ввода
-m Отправить электронное письмо пользователю после завершения задачи
-l Вывести список задач, ожидающих выполнения (то же, что иatq)
-d 任务ID Удалить указанную задачу (то же, что иatrm)
-v Отобразить время, когда задача будет выполнена

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

atПоддерживает несколько форматов времени:

  1. Абсолютное время

    • HH:MM(e.g., 14:30)
    • YYYY-MM-DD(e.g., 2023-12-25)
    • Комбинированный форматHH:MM YYYY-MM-DD
  2. Относительное время

    • now + 数量 单位(напримерnow + 2 hours)
    • Единицы измерения могут быть: минуты, часы, дни, недели
  3. Специальные ключевые слова

    • noon(12 часов дня)
    • midnight(полночь)
    • teatime(4 часа дня)
    • tomorrow(завтра в это же время)

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

Пример 1: Базовое использование

Пример

$ at 15:30
предупреждение: команды будут выполнены с помощью /bin/sh
at> echo "Привет, команда at" > ~/at_test.txt
at>   # Нажмите Ctrl+D, чтобы завершить ввод
задание 1 в вт июл 18 15:30:00 2023

Пример 2: Чтение команд из файла

Создайте файл сценарияmyscript.sh:

Пример

#!/bin/bash
echo "This is a test" >> /tmp/at_log
date >> /tmp/at_log

Затем используйте:

at -f myscript.sh now + 5 minutes

Пример 3: Просмотр и удаление задач

Пример

$ atq  # или at -l
1       Tue Jul 18 15:30:00 2023 имя пользователя

$ atrm 1  # или at -d 1

Продвинутое использование

Настройка переменных окружения

Пример

$ at 16:00
at> export MY_VAR="test"
at> echo $MY_VAR > ~/env_test.txt
at>

Выполнение сложных команд

Пример

$ at 17:00 today
at> cd /var/log && grep "error" syslog > ~/error_log.txt
at>

Использование Here Document

Пример

at 18:00 << 'EOF'
#!/bin/bash
echo "Starting backup..."
tar -czf ~/backup-$(date +%F).tar.gz ~/Documents
EOF


Примечания

  1. Управление разрешениями

    • /etc/at.allowи/etc/at.denyФайлы управляют правами доступа пользователей
    • Еслиat.allowсуществует, использовать могут только перечисленные пользователиat
    • Еслиat.allowне существует, проверьтеat.deny, пользователям, перечисленным в нём, запрещено
  2. Обработка вывода

    • По умолчанию вывод команды отправляется пользователю по электронной почте
    • Используйте-mопция для принудительной отправки электронного письма, даже если вывод отсутствует
  3. Различия окружения

    • atОкружение во время выполнения может отличаться от интерактивной оболочки
    • Важные переменные окружения должны быть явно заданы в команде
  4. Обработка ошибок

    • Проверитьatdзапущена ли служба:systemctl status atd
    • Просмотрите системные журналы, чтобы получить информацию об ошибке:journalctl -u atd

Практические упражнения

  1. Создайте задачу, которая добавляет текущую дату и время в~/time_log.txtфайл
  2. Напишите скрипт для резервного копирования/etcкаталога и используйтеatзапланируйте его выполнение на 2 часа ночи завтра
  3. Вывести список всех текущих ожидающихatзадач, затем удалить одну из них

Итог

atКоманда — мощный инструмент в системе Linux для управления одноразовыми запланированными задачами. Прочитав эту статью, вы должны были освоить:

  • atЕё основные понятия и методы установки
  • Способы указания различных форматов времени
  • Операции создания, просмотра и удаления задач
  • Расширенное использование и меры предосторожности

Для задач, которые необходимо выполнять периодически, рассмотрите использованиеcron, но для одноразовых задач,atявляется, несомненно, лучшим выбором.


Linux 命令大全Справочник команд Linux

Другие расширения