What is atd in linux

команда atd в Linux с примерами

atd — это демон планировщика заданий, который запускает задания, запланированные для последующего выполнения. Эти задания являются одноразовыми (не повторяющимися) в определенное время, запланированное с помощью утилиты «at» или «batch».

Параметры:

  • -l: задает ограничивающий коэффициент загрузки, при котором пакетные задания не следует запускать вместо выбора времени компиляции, равного 1,5.
  • -b: указать минимальный интервал в секундах между началом двух пакетных заданий (60 по умолчанию).
  • -d: отладка; выводить сообщения об ошибках на стандартную ошибку вместо использования syslog (3). Эта опция также подразумевает -f.
  • -f: запустить atd на переднем плане.
  • -s: обрабатывать очередь at / batch только один раз. Это в первую очередь используется для совместимости со старыми версиями at; atd -s эквивалентен старой команде atrun.

Начальный atd:

  • Чтобы запустить atd в текущем сеансе, используйте следующую команду:
  • Чтобы автоматически запустить atd во время загрузки, используйте следующую команду:
  • При использовании утилиты «at» возникает следующая проблема:

Это означает, что atd не запущен и должен быть запущен.

Остановка atd:

  • Чтобы остановить atd в текущем сеансе, используйте следующую команду:
  • Чтобы отключить запуск atd во время загрузки, используйте следующую команду:

Перезапуск atd: Чтобы перезапустить atd, используйте команду ниже.

Проверка состояния atd: чтобы определить, работает ли atd или нет, используйте следующую команду:

    Если atd запущен, статус будет «активен»:

Если atd не запущен, статус будет «неактивным»:

Источник

atd command in Linux with examples

atd is a job scheduler daemon that runs jobs scheduled for later execution. These jobs are one-time task(not recurring) at a specific time scheduled using ‘at’ or ‘batch’ utility.

Options:

  • -l : Specifies a limiting load factor, over which batch jobs should not be run, instead of the compile-time choice of 1.5.
  • -b : Specify the minimum interval in seconds between the start of two batch jobs (60 default).
  • -d : Debug; print error messages to standard error instead of using syslog(3). This option also implies -f.
  • -f : Run atd in the foreground.
  • -s : Process the at/batch queue only once. This is primarily of use for compatibility with old versions of at; atd -s is equivalent to the old atrun command.

Starting atd:

  • To start atd in the current session, use below command:
  • To start atd automatically at boot time, use below command:
  • While using ‘at’ utility, the following issue can be seen:

It means that atd is not running and needs to be started.

Stopping atd:

  • To stop atd in the current session, use below command:
  • To disable atd from starting at boot time, use below command:

Restarting atd: To restart atd, use below command.

Checking atd status: To determine if atd is running or not, use below command:

    If atd is running, status will be “active”:


If atd is not running, status will be “inactive”:

Источник

Планировщики crond и atd в ubuntu

В Linux есть специальный демон — cron, позволяющий выполнять программы по расписанию. В этой статье мы научим вас пользоваться этим демоном.
Очень часто нужно периодически выполнять одни и те же действия. Например, каждый день проверять обновление антивируса (или раз в неделю — в зависимости от того, как часто выходят для него обновления) или каждые 30 минут — почту. Можно выполнять эти действия самому, но это не совсем удобно.

Представьте, что ваш рабочий день будет начинаться с команды запуска программы обновления антивируса, а каждые 30 минут вы будете вводить программу проверки почты. Во-первых, не это не очень удобно, а во-вторых, можно легко забыть выполнить ту или иную команду. Например, в пятницу вечером вы можете забыть выполнить команду создания резервной копии, а в понедельник утром что-то случится с сервером, и вы не досчитаетесь всего пользовательского каталога. Не очень приятно, правда?

В Linux есть специальный демон — cron, позволяющий выполнять программы по расписанию. Откройте конфигурационный файл демона cron — /etc/crontab
Пример файла /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don’t have to run the ‘crontab1
# command to install the new version when you edit this file.
# This file also has a username field, that none of the other crontabs do. SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

# m h dom mon dow user command
17 * * * * root run-parts —report /etc/cron.hourly 25 б * * * root run-parts —report /etc/cron.daily 47 6 * * 7 root run-parts —report /etc/cron.weekly 52 6 1 * * root run-parts —report /etc/cron.monthly #

Параметр SHELL задает имя программы-оболочки, параметр PATH — пусть поиска программ. Кроме этих параметров, могут также использоваться параметры MAILTO и НОМЕ. Параметр MAILTO задает имя пользователя, которому будет отправлен отчет о выполнении расписания, а НОМЕ — домашний каталог crond.
Но самое главное — не эти параметры, а собсвенно таблица расписаний. В нашем случае она выглядит так:
17 * * * * root run-parts —report /etc/сгоп.hourly 25 б * * * root run-parts —report /etc/cron.daily 47 б * * 7 root run-parts —.report /etc/cron.weekly 52 б 1 * * root run-parts —report /etc/cron.monthly

Согласно этой таблице каждый час будут выполняться программы из каталога /etc/cron.hourly, каждый день — из каталога /etc/cron.daily, каждую неделю — из каталога /etc/cron.weekly, и раз в месяц — из каталога /etc/cron.monthly.

Предположим, вам нужно каждый дець выполнять команду update_av ftp://server.ru/bases/. В каталоге /etc/cron.daily создайте файл update_av следующего содержания:
#!/bin/bash
update_av,ftp://server.ru/bases/

Мы создали небольшой bash-сценарий (сценарий командного интерпретатора). Теперь сделаем его исполнимым, и все будет готово:
# chmod +х update_av

Правда, удобно? Но иногда нам нужно создать более гибкое расписание. Например, мы хотим, чтобы одна программа выполнялась в 7 часов утра, а другая в 7:20, Тут простым добавлением сценария в каталог /etc/cron.daily уже не отделаешься. Чтобы создать такое расписание, вам нужно изучить формат записей таблицы расписаний. А формат следующий:
мин. (0-59) часы (0-23) день (1-31) месяц (1-12) день (0-6, 0-Вс) команда

Чтобы реализовать наше расписание, нам нужно добавить в /etc/crontab следующие строки:
0 7 * * * /usr/bin/commandl arguments 20 7 * * * /usr/bin/command2 arguments

Первая команда будет запускаться каждый день в 7 часов утра, а вторая команда будет запускаться тоже каждый день, но в 7:20.

Зная формат файла crontab, мы можем отредактировать стандартную таблицу расписания. Обратите внимание: команды, выполняемые ежедневно, будут запускаться в 4 часа утра. Это, конечно, удобно, но они не будут выполнены, если вы выключаете сервер на ночь. Поэтому давайте установим другое время, например, 8 часов утра:
0 8 * * * root nice -n 19 run-parts —report /etc/cron.daily

Аналогичная ситуация и с еженедельным запуском. Программы будут запущены не только в 4:22 утра, но еще и в воскресенье. На выходные вы точно выключите свой сервер (хотя это зависит от политики организации — ведь во многих организациях выключают на выходные все компьютеры). Поэтому целесообразно назначить запуск на понедельник в 8 часов 22 минуты:
22 8 * * 1 root nice -n 19 run-parts —report /etc/cron.weekly

С ежемесячным запуском вроде бы все нормально: программы будут выполняться в 4:42 первого числа каждого месяца. Хотя время можно было бы и изменить на 8:42:
42 8 1 * * root nice -n 19 run-parts —report /etc/cron.monthly

Иногда нужно просто выполнить определенные команды в определенное время (разово), поэтому редактировать таблицу crontab не совсем уместно. Данную задачу можно решить более рационально. Убедитесь, что у вас установлен и запущен демон atd. После этого введите команду
at [дата]

Затем просто вводите команды, которые вы хотите выполнить в указанное время. Для завершения ввода нажмите комбинацию клавиш + . Время указывается в АМ/РМ-формате, например, если вам нужно выполнить команды в 14:00, то вы должны ввести команду:
at 2pm

Просмотреть очередь заданий можно командой atq, а удалить какое-либо задание — командой atrm.

Источник

Администрирование систем Linux. Планирование исполнения задач

Часть IV. Управление системой

Глава 16. Планирование исполнения задач

Администраторы систем Linux используют демон atd для планирования однократного исполнения задач. Многократное исполнение задач удобнее планировать с помощью демона crond . В двух следующих разделах мы обсудим оба упомянутых инструмента.

16.1. Планирование однократного исполнения задач с помощью демона atd

16.1.1. Утилита at

Простое планирование исполнения задачи может осуществляться с помощью утилиты at . В данном примере показана методика планирования исполнения команды date в 22:01 и команды sleep в 22:03.

В реальной жизни, надеюсь, вы будете планировать исполнение более полезных команд 🙂

16.1.2. Утилита atq

Проверка установленного для исполнения задач времени может осуществляться достаточно просто с помощью команды atq или at -l .

Утилита at принимает в качестве меток времени такие английские слова, как tomorrow и teatime, которые позволяют запланировать исполнение команды на следующий день и на четыре часа вечера соответственно.

16.1.3. Утилита atrm

Запланированные к исполнению задачи могут быть удалены из очереди с помощью утилиты atrm .

16.1.4. Файлы конфигурации at.allow и at.deny

Также вы можете использовать файлы конфигурации /etc/at.allow и /etc/at.deny для четкого указания пользователей, которые могут или не могут планировать исполнение задач с помощью демона atd.

Файл /etc/at.allow может содержать список пользователей, которым позволено осуществлять планирование исполнения задач с помощью демона atd . В том случае, если файла /etc/at.allow не существует, демон atd может использоваться любым пользователем, имя которого не внесено в файл /etc/at.deny .

Если же не существует ни одного из этих файлов, то демон atd по прямому назначению может использовать любой пользователь.

16.2. Планирование многократного исполнения задач с помощью демона crond

16.2.1. Файл конфигурации crontab

Команда crontab(1) может использоваться для модификации файла конфигурации crontab(5) . Каждый пользователь может использовать свой файл конфигурации crontab для планирования исполнения задач в определенное время. Это время может быть задано с помощью значений в пяти полях в следующем порядке: минуты, часы, день месяца, месяц и день недели. В том случае, если поле содержит символ звездочки (*), считается, что в этом поле записаны все доступные значения.

Приведенная в примере ниже запись означает следующее: необходимо исполнять сценарий с именем script42 в два часа и восемь минут дня каждый месяц и каждый день недели.

Исполнение сценария с именем script8472 каждый месяц первого числа в 25 минут поле полуночи.

Исполнение сценария с именем script33 через каждые две минуты в воскресенье (воскресенью соответствует как значение 0, так и значение 7).

Вместо значений в этих пяти полях вы также можете использовать одну из следующих директив: @reboot (перезагрузка), @yearly или @annually (ежегодно), @monthly (ежемесячно), @weekly (еженедельно), @daily или @midnight (ежедневно), @hourly (ежечасно).

16.2.2. Команда crontab

Пользователи не должны непосредственно редактировать файл crontab; вместо этого они должны использовать команду crontab -e , которая приведет к открытию текстового редактора, путь к которому задан с помощью переменной окружения EDITOR или VISUAL. Пользователи могут выводить содержимое своих таблиц задач демона crond с помощью команды crontab -l .

16.2.3. Файлы конфигурации cron.allow и cron.deny

Демон crond читает таблицы задач, принимая во внимание содержимое файлов конфигурации /etc/cron.allow и /etc/cron.deny .

Эти файлы оказывают точно такое же влияние на процесс планирования задач, как и файлы at.allow и at.deny . В том случае, если файл cron.allow существует, ваше имя пользователя должно быть занесено в него, ведь в противном случае вы не сможете воспользоваться демоном crond . В том же случае, если файла cron.allow не существует, вашего имени пользователя не должно быть в файле cron.deny в том случае, если вы планируете пользоваться демоном crond .

16.2.4. Файл конфигурации /etc/crontab

Файл конфигурации /etc/crontab содержит информацию о задачах, которые должны исполняться ежечасно/ежедневно/еженедельно/ежегодно. Его содержимое выглядит аналогично содержимому, представленному в примере ниже.

16.2.5. Директории /etc/cron.*

Директории, перечисленные в следующем примере, содержат описания задач, которые должны исполняться в моменты времени, описанные в файле конфигурации /etc/crontab . Директория /etc/cron.d предназначена для специальных случаев, когда при планировании исполнения задач требуется более гибкое описание периодов времени, чем ежечасно/ежедневно/еженедельно/ежемесячно.

16.2.6. Файл /etc/anachrontab

Обратите внимание на то, что в дистрибутиве Red Hat для планирования ежедневного, еженедельного и ежемесячного исполнения задач с помощью демона crond используется файл anacrontab .

16.3. Практическое задание: планирование исполнения задач

1. Запланируйте исполнение двух задач с помощью утилиты at , выведите очередь задач демона atd и удалите задачу из нее.

2. Работая с учетной записью обычного пользователя, используйте команду crontab -e для планирования исполнения сценария через каждые четыре минуты.

3. Работая с учетной записью пользователя root, выведите содержимое файла crontab , принадлежащего обычному пользователю.

4. Снова перейдя к использованию учетной записи обычного пользователя, удалите ваш файл crontab .

5. Рассмотрите используемые демоном crond файлы и поддиректории в директории /etc и попытайтесь разобраться с их назначением. Какое действие выполняется с помощью команды run-parts ?

16.4. Корректная процедура выполнения практического задания: планирование исполнения задач

1. Запланируйте исполнение двух задач с помощью утилиты at , выведите очередь задач демона atd и удалите задачу из нее.

2. Работая с учетной записью обычного пользователя, используйте команду crontab -e для планирования исполнения сценария через каждые четыре минуты.

3. Работая с учетной записью пользователя root, выведите содержимое файла crontab , принадлежащего обычному пользователю.

4. Снова перейдя к использованию учетной записи обычного пользователя, удалите ваш файл crontab .

5. Рассмотрите используемые демоном crond файлы и поддиректории в директории /etc и попытайтесь разобраться с их назначением. Какое действие выполняется с помощью команды run-parts ?

Команда run-parts позволяет выполнить сценарий в заданной директории.

Источник

Читайте также:  Town with no name windows
Оцените статью