What is atd in linux

What is atd in linux

Библиотека сайта rus-linux.net

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

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

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

root@laika:~# at 22:01 at> date at> job 1 at Wed Aug 1 22:01:00 2007 root@laika:~# at 22:03 at> sleep 10 at> job 2 at Wed Aug 1 22:03:00 2007 root@laika:~#

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

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

root@laika:~# atq 1 Wed Aug 1 22:01:00 2007 a root 2 Wed Aug 1 22:03:00 2007 a root root@laika:~# at -l 1 Wed Aug 1 22:01:00 2007 a root 2 Wed Aug 1 22:03:00 2007 a root root@laika:~#

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

root@laika:~# at 10:05 tomorrow at> sleep 100 at> job 5 at Thu Aug 2 10:05:00 2007 root@laika:~# at teatime tomorrow at> tea at> job 6 at Thu Aug 2 16:00:00 2007 root@laika:~# atq 6 Thu Aug 2 16:00:00 2007 a root 5 Thu Aug 2 10:05:00 2007 a root root@laika:~#

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

root@laika:~# atq 6 Thu Aug 2 16:00:00 2007 a root 5 Thu Aug 2 10:05:00 2007 a root root@laika:~# atrm 5 root@laika:~# atq 6 Thu Aug 2 16:00:00 2007 a root root@laika:~#

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 для планирования исполнения задач в определенное время. Это время может быть задано с помощью значений в пяти полях в следующем порядке: минуты, часы, день месяца, месяц и день недели. В том случае, если поле содержит символ звездочки (*), считается, что в этом поле записаны все доступные значения.

Читайте также:  Killing background processes in linux

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

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

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

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

Пользователи не должны непосредственно редактировать файл 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 содержит информацию о задачах, которые должны исполняться ежечасно/ежедневно/еженедельно/ежегодно. Его содержимое выглядит аналогично содержимому, представленному в примере ниже.

SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin 20 3 * * * root run-parts --report /etc/cron.daily 40 3 * * 7 root run-parts --report /etc/cron.weekly 55 3 1 * * root run-parts --report /etc/cron.monthly

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

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

paul@laika:~$ ls -ld /etc/cron.* drwxr-xr-x 2 root root 4096 2008-04-11 09:14 /etc/cron.d drwxr-xr-x 2 root root 4096 2008-04-19 15:04 /etc/cron.daily drwxr-xr-x 2 root root 4096 2008-04-11 09:14 /etc/cron.hourly drwxr-xr-x 2 root root 4096 2008-04-11 09:14 /etc/cron.monthly drwxr-xr-x 2 root root 4096 2008-04-11 09:14 /etc/cron.weekly

16.2.6. Файл /etc/anachrontab

Читайте также:  Can you play android games on linux

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

root@rhel65:/etc# cat anacrontab # /etc/anacrontab: configuration file for anacron # See anacron(8) and anacrontab(5) for details. SHELL=/bin/sh PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root # the maximal random delay added to the base delay of the jobs RANDOM_DELAY=45 # the jobs will be started during the following hours only START_HOURS_RANGE=3-22 #period in days delay in minutes job-identifier command 1 5 cron.daily nice run-parts /etc/cron.daily 7 25 cron.weekly nice run-parts /etc/cron.weekly @monthly 45 cron.monthly nice run-parts /etc/cron.monthly root@rhel65:/etc#

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

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

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

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

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

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

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

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

root@rhel55 ~# at 9pm today at> echo пора идти спать >> /root/todo.txt at> job 1 at 2010-11-14 21:00 root@rhel55 ~# at 17h31 today at> echo время для ланча >> /root/todo.txt at> job 2 at 2010-11-14 17:31 root@rhel55 ~# atq 2 2010-11-14 17:31 a root 1 2010-11-14 21:00 a root root@rhel55 ~# atrm 1 root@rhel55 ~# atq 2 2010-11-14 17:31 a root root@rhel55 ~# date Вс ноя 14 17:31:01 CET 2010 root@rhel55 ~# cat /root/todo.txt время для ланча

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

paul@rhel55 ~$ crontab -e no crontab for paul - using an empty one crontab: installing new crontab

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

root@rhel55 ~# crontab -l -u paul */4 * * * * echo `date` >> /home/paul/crontest.txt

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

paul@rhel55 ~$ crontab -r paul@rhel55 ~$ crontab -l no crontab for paul

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

Читайте также:  Linux usb boot manager

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

Предыдущий раздел: Оглавление Следующий раздел:
Глава 15. Инициализация системы и уровни исполнения Глава 17. Журналирование событий

Источник

Using atd Command In Linux (Examples)

atd command in Linux platform is basically the ‘ at ’ daemon which runs in background and executes command at a specific time. It’s like cron , however the only difference is, atd runs the command only for once. With the usage of atd, one can schedule both one-off commands and scripts easily at a specified time.

How to install atd in Linux distros

In order to work with atd, it’s required to install it on machine and its installation commands are different in various Linux distributions. So, read through the commands used to install atd in various Linux platforms.

For Debian/Ubuntu/Mint

For CentOS/RHEL

For OpenSUSE

For Arch/Manjero

Syntax to use atd command in Linux

atd [-l load_avg] [-b batch_interval] [-d] [-f] [-s]

Available options to use with atd command

-l: Used for specifying a limiting load factor, means, the batch jobs should not be run over that.
-b: Used for specifying the minimum interval in seconds between the start of two batch jobs.
-d: Used for debugging and printing error messages to standard error. Also, this option implies -f option.
-f : Used for running atd command in foreground.
-s: Used for processing the at/batch queue for once. Mostly, this option is used for compatibility with old versions of at, atd-s that is equivalent to older atrun command.

How to start and enable atd

If you are going to work with atd, you first need to start and enable it. To do so, run the command below:

sudo systemctl start atd sudo systemctl enable atd

To start the atd automatically while the system boots, you can run the following command:

Note: In case you receive error “ Can’t open /var/run/atd.pid to signal atd. No atd running ” while using atd command, it means you have not started it, and the above mentioned commands will help you.

How to stop/disable/restart/checking status of atd in Linux

To stop atd

To disable atd from starting at boot time

To restart atd

To check status of atd

Nishant

Nishant Verma is a senior web developer who love to share his knowledge about Linux, SysAdmin, and more other web handlers. Currently, he loves to write as content contributor for ServoNode.

Источник

Оцените статью
Adblock
detector