commit 8bcd1feb7f276bc217c3938d92017b47fe189af8 Mon Sep 17 00:00:00 2001
Author: Rashadul Islam <rashadul(a)fedoraproject.org>
Date: Mon, 30 Dec 2013 19:30:12 -0500
To up-to-date the Automating_System_Tasks; there is no privileged update in this
docment.
---
Automating_System_Tasks.xml | 447 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 447 insertions(+)
create mode 100644 Automating_System_Tasks.xml
diff --git a/Automating_System_Tasks.xml b/Automating_System_Tasks.xml
new file mode 100644
index 0000000..3b3540f
--- /dev/null
+++ b/Automating_System_Tasks.xml
@@ -0,0 +1,447 @@
+<?xml version='1.0'?>
+<!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
+]>
+<chapter id="ch-Automating_System_Tasks">
+ <title>Automating System Tasks</title>
+ <indexterm significance="normal">
+ <primary>Automated Tasks</primary>
+ </indexterm>
+ <para>In Linux, tasks, which are also known as
<firstterm>jobs</firstterm>, can be configured to run automatically within a
specified period of time, on a specified date, or when the system load average is below a
specified number. &MAJOROS; is pre-configured to run important system tasks to keep
the system updated. For example, the slocate database used by the
<command>locate</command> command is updated daily. A system administrator can
use automated tasks to perform periodic backups, monitor the system, run custom scripts,
and more.</para>
+ <para>&MAJOROS; comes with several automated tasks utilities:
<command>cron</command>, <command>at</command>, and
<command>batch</command>.</para>
+ <indexterm significance="normal">
+ <primary>Cron</primary>
+ </indexterm>
+ <section id="s1-autotasks-cron-anacron">
+ <title>Cron and Anacron</title>
+ <indexterm significance="normal">
+ <primary>anacron</primary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>
+ <filename>cron</filename>
+ </primary>
+ </indexterm>
+ <para>Both, <systemitem class="daemon">Cron</systemitem>
and <systemitem class="daemon">Anacron</systemitem>, are daemons
that can be used to schedule the execution of recurring tasks according to a combination
of the time, day of the month, month, day of the week, and week.</para>
+ <para><systemitem
+ class="daemon">Cron</systemitem> assumes that the system is on
continuously. If the system is not on when a job is scheduled, it is not executed. Cron
allows jobs to be run as often as every minute. Anacron does not assume the system is
always on, remembers every scheduled job, and executes it the next time the system is up.
However, Anacron can only run a job once a day.
+ To schedule recurring jobs, refer to <xref
linkend="s2-configuring-anacron-jobs"/> or <xref
linkend="s2-configuring-cron-jobs"/>. To schedule one-time jobs, refer to
<xref linkend="s1-autotasks-at-batch"/>.</para>
+ <para>To use the cron service, the <filename>cronie</filename> RPM
package must be installed and the <command>crond</command> service must be
running. <filename>anacron</filename> is a sub-package of
<filename>cronie</filename>. To determine if these packages are installed, use
the <command>rpm -q cronie cronie-anacron</command> command. </para>
+
+ <section id="s2-autotasks-cron-service">
+ <title>Starting and Stopping the Service</title>
+ <para>To determine if the service is running, use the following
command:</para>
+ <screen><command>systemctl is-active
crond.service</command></screen>
+ <para>To start the cron service, type the following at a shell prompt as
<systemitem class="username">root</systemitem>:</para>
+ <screen><command>systemctl start
crond.service</command></screen>
+ <para>To stop the service, run the following command as <systemitem
class="username">root</systemitem>:</para>
+ <screen><command>systemctl stop
crond.service</command></screen>
+ <para>It is recommended that you start the service at boot time. To do so,
use the following command as <systemitem
class="username">root</systemitem>:</para>
+ <screen><command>systemctl enable
crond.service</command></screen>
+ <para>
+ Refer to <xref linkend="ch-Services_and_Daemons" /> for more
information on how to configure services in &MAJOROS;.
+ </para>
+ </section>
+ <section id="s2-configuring-anacron-jobs">
+ <title>Configuring Anacron Jobs</title>
+ <indexterm significance="normal">
+ <primary>anacron</primary>
+ <secondary>anacron configuration file</secondary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>
+ <filename>anacrontab</filename>
+ </primary>
+ </indexterm>
+ <indexterm
+ significance="normal">
+ <primary>anacron</primary>
+ <secondary>user-defined tasks</secondary>
+ </indexterm>
+ <indexterm
+ significance="normal">
+ <primary>
+ <filename>/var/spool/anacron</filename>
+ </primary>
+ </indexterm>
+ <para>The main configuration file to schedule jobs is
<filename>/etc/anacrontab</filename> (only <systemitem
class="username">root</systemitem> is allowed to modify this file),
which contains the following lines:</para>
+ <programlisting>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</programlisting>
+ <para>
+ The first three lines are variables used to configure the environment in which the
anacron tasks are run. The <computeroutput>SHELL</computeroutput> variable
tells the system which shell environment to use (in this example the bash shell). The
<computeroutput>PATH</computeroutput> variable defines the path used to
execute commands. The output of the anacron jobs are emailed to the username defined with
the <computeroutput>MAILTO</computeroutput> variable. If the
<computeroutput>MAILTO</computeroutput> variable is not defined, (i.e. is
empty, <computeroutput>MAILTO=</computeroutput>), email is not sent.
+</para>
+ <para>
+ The next two lines are variables that modify the time for each scheduled job. The
<computeroutput>RANDOM_DELAY</computeroutput> variable denotes the maximum
number of minutes that will be added to the <filename>delay in
minutes</filename> variable which is specified for each job. The minimum delay value
is set, by default, to 6 minutes. A
<computeroutput>RANDOM_DELAY</computeroutput> set to 12 would therefore add,
randomly, between 6 and 12 minutes to the <filename>delay in
minutes</filename> for each job in that particular anacrontab.
<computeroutput>RANDOM_DELAY</computeroutput> can also be set to a value below
6, or even 0. When set to 0, no random delay is added. This proves to be useful when, for
example, more computers that share one network connection need to download the same data
every day. The <computeroutput>START_HOURS_RANGE</computeroutput> variable
defines an interval (in hours) when scheduled jobs can be run. In case this time interval
is missed, for example
, due to a power down, then scheduled jobs are not executed that day.
+</para>
+ <para>The rest of the lines in the
<filename>/etc/anacrontab</filename> file represent scheduled jobs and have
the following format:
+</para>
+ <programlisting>period in days delay in minutes job-identifier
command</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <computeroutput>period in days</computeroutput> — specifies the
frequency of execution of a job in days. This variable can be represented by an integer or
a macro (<computeroutput>@daily</computeroutput>,
<computeroutput>@weekly</computeroutput>,
<computeroutput>@monthly</computeroutput>), where
<computeroutput>@daily</computeroutput> denotes the same value as the integer
1, <computeroutput>@weekly</computeroutput> the same as 7, and
<computeroutput>@monthly</computeroutput> specifies that the job is run once a
month, independent on the length of the month.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>delay in minutes</computeroutput> — specifies the
number of minutes anacron waits, if necessary, before executing a job. This variable is
represented by an integer where 0 means no delay.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>job-identifier</computeroutput> — specifies a
unique name of a job which is used in the log files.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>command</computeroutput> — specifies the command
to execute. The command can either be a command such as <computeroutput>ls /proc
>> /tmp/proc</computeroutput> or a command to execute a custom script.
+ </para>
+ </listitem>
+ </itemizedlist>
+ <para>Any lines that begin with a hash sign (#) are comments and are not
processed.</para>
+ <section id="s3-anacron-examples">
+ <title>Examples of Anacron Jobs </title>
+ <para>The following example shows a simple
<filename>/etc/anacrontab</filename> file:</para>
+ <programlisting>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=30
+# the jobs will be started during the following hours only
+START_HOURS_RANGE=16-20
+
+#period in days delay in minutes job-identifier command
+1 20 dailyjob nice run-parts /etc/cron.daily
+7 25 weeklyjob /etc/weeklyjob.bash
+@monthly 45 monthlyjob ls /proc >> /tmp/proc</programlisting>
+ <para>
+ All jobs defined in this <filename>anacrontab</filename> file are randomly
delayed by 6-30 minutes and can be executed between 16:00 and 20:00. Thus, the first
defined job will run anywhere between 16:26 and 16:50 every day. The command specified for
this job will execute all present programs in the
<filename>/etc/cron.daily</filename> directory (using the
<command>run-parts</command> script which takes a directory as a command-line
argument and sequentially executes every program within that directory). The second
specified job will be executed once a week and will execute the
<filename>weeklyjob.bash</filename> script in the
<filename>/etc</filename> directory. The third job is executed once a month
and runs a command to write the contents of the <filename>/proc</filename> to
the <filename>/tmp/proc</filename> file (e.g. <computeroutput>ls /proc
>> /tmp/proc</computeroutput>).
+</para>
+<section id="s3-disabling-anacron">
+<title>Disabling Anacron</title>
+<para>
+ In case your system is continuously on and you do not require anacron to run your
scheduled jobs, you may uninstall the <filename>cronie-anacron</filename>
package. Thus, you will be able to define jobs using crontabs only.
+</para>
+</section>
+ </section>
+ </section>
+ <section id="s2-configuring-cron-jobs">
+ <title>Configuring Cron Jobs</title>
+ <indexterm
+ significance="normal">
+ <primary>cron</primary>
+ <secondary>user-defined tasks</secondary>
+ </indexterm>
+ <indexterm
+ significance="normal">
+ <primary>
+ <filename>/var/spool/cron</filename>
+ </primary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>cron</primary>
+ <secondary>cron configuration file</secondary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>
+ <filename>crontab</filename>
+ </primary>
+ </indexterm>
+ <para>
+ The configuration file to configure cron jobs,
<filename>/etc/crontab</filename> (only <systemitem
class="username">root</systemitem> is allowed to modify this file),
contains the following lines:
+ </para>
+ <programlisting>SHELL=/bin/bash
+PATH=/sbin:/bin:/usr/sbin:/usr/bin
+MAILTO=root
+HOME=/
+# For details see man 4 crontabs
+# Example of job definition:
+# .---------------- minute (0 - 59)
+# | .------------- hour (0 - 23)
+# | | .---------- day of month (1 - 31)
+# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
+# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
+# | | | | |
+# * * * * * user command to be executed</programlisting>
+ <para>
+ The first three lines contain the same variables as an
<filename>anacrontab</filename> file,
<computeroutput>SHELL</computeroutput>,
<computeroutput>PATH</computeroutput> and
<computeroutput>MAILTO</computeroutput>. For more information about these
variables, refer to <xref linkend="s2-configuring-anacron-jobs"/>. The
fourth line contains the <computeroutput>HOME</computeroutput> variable. The
<computeroutput>HOME</computeroutput> variable can be used to set the home
directory to use when executing commands or scripts.
+ </para>
+ <para>
+ The rest of the lines in the <filename>/etc/crontab</filename> file
represent scheduled jobs and have the following format:
+ </para>
+ <programlisting>minute hour day month day of week user
command</programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <computeroutput>minute</computeroutput> — any integer from 0 to
59</para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>hour</computeroutput> — any integer from 0 to
23</para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>day</computeroutput> — any integer from 1 to 31
(must be a valid day if a month is specified)</para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>month</computeroutput> — any integer from 1 to 12
(or the short name of the month such as jan or feb)</para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>day of week</computeroutput> — any integer from 0
to 7, where 0 or 7 represents Sunday (or the short name of the week such as sun or
mon)</para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>user</computeroutput> — specifies the user under
which the jobs are run
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <computeroutput>command</computeroutput> — the command to execute
(the command can either be a command such as <command>ls /proc >>
/tmp/proc</command> or the command to execute a custom script)</para>
+ </listitem>
+ </itemizedlist>
+ <para>For any of the above values, an asterisk (*) can be used to specify all
valid values. For example, an asterisk for the month value means execute the command every
month within the constraints of the other values.</para>
+ <para>A hyphen (-) between integers specifies a range of integers. For
example, <userinput>1-4</userinput> means the integers 1, 2, 3, and
4.</para>
+ <para>A list of values separated by commas (,) specifies a list. For example,
<userinput>3, 4, 6, 8</userinput> indicates those four specific
integers.</para>
+ <para>The forward slash (/) can be used to specify step values. The value of
an integer can be skipped within a range by following the range with
<userinput>/<replaceable>integer</replaceable></userinput>. For
example, <userinput>0-59/2</userinput> can be used to define every other
minute in the minute field. Step values can also be used with an asterisk. For instance,
the value <userinput>*/3</userinput> can be used in the month field to run the
task every third month.</para>
+ <para>Any lines that begin with a hash sign (#) are comments and are not
processed.</para>
+ <para>Users other than <systemitem
class="username">root</systemitem> can configure cron tasks by using
the <command>crontab</command> utility. All user-defined crontabs are stored
in the <filename>/var/spool/cron/</filename> directory and are executed using
the usernames of the users that created them. To create a crontab as a user, login as that
user and type the command <command>crontab -e</command> to edit the user's
crontab using the editor specified by the
<computeroutput>VISUAL</computeroutput> or
<computeroutput>EDITOR</computeroutput> environment variable. The file uses
the same format as <filename>/etc/crontab</filename>. When the changes to the
crontab are saved, the crontab is stored according to username and written to the file
<filename>/var/spool/cron/<replaceable>username</replaceable>
+ </filename>. To list the contents of your own personal crontab file, use
the <command>crontab -l</command> command. </para>
+ <note>
+ <title>Do not specify a user</title>
+ <para>
+ When using the <command>crontab</command> utility, there is no
need to specify a user when defining a job.
+ </para>
+ </note>
+ <para>The <filename>/etc/cron.d/</filename> directory contains
files that have the same syntax as the <filename>/etc/crontab</filename> file.
Only <systemitem class="username">root</systemitem> is allowed to
create and modify files in this directory.</para>
+ <note>
+ <title>Do not restart the daemon to apply the changes</title>
+ <para>The cron daemon checks the
<filename>/etc/anacrontab</filename> file, the
<filename>/etc/crontab</filename> file, the
<filename>/etc/cron.d/</filename> directory, and the
<filename>/var/spool/cron/</filename> directory every minute for any changes.
If any changes are found, they are loaded into memory. Thus, the daemon does not need to
be restarted if an anacrontab or a crontab file is changed.</para>
+ </note>
+ </section>
+ <section id="s2-autotasks-cron-access">
+ <title>Controlling Access to Cron</title>
+ <para>The <filename>/etc/cron.allow</filename> and
<filename>/etc/cron.deny</filename> files are used to restrict access to cron.
The format of both access control files is one username on each line. Whitespace is not
permitted in either file. The cron daemon (<command>crond</command>) does not
have to be restarted if the access control files are modified. The access control files
are checked each time a user tries to add or delete a cron job.</para>
+ <para>The <systemitem
class="username">root</systemitem> user can always use cron, regardless
of the usernames listed in the access control files.</para>
+ <para>If the file <filename>cron.allow</filename> exists, only
users listed in it are allowed to use cron, and the
<filename>cron.deny</filename> file is ignored.</para>
+ <para>If <filename>cron.allow</filename> does not exist, users
listed in <filename>cron.deny</filename> are not allowed to use
cron.</para>
+ <para>Access can also be controlled through Pluggable Authentication Modules
(PAM). These settings are stored in
<filename>/etc/security/access.conf</filename>. For example, adding the
following line in this file forbids creating crontabs for all users except the
<systemitem class="username">root</systemitem> user:
+ </para>
+ <programlisting>-:ALL EXCEPT root :cron</programlisting>
+ <para>
+ The forbidden jobs are logged in an appropriate log file or, when using “crontab
-e”, returned to the standard output. For more information, refer to
<filename>access.conf.5</filename> (i.e. <command>man 5
access.conf</command>).
+ </para>
+ </section>
+ <section id="s2-black-white-listing-of-cron-jobs">
+ <title>Black/White Listing of Cron Jobs</title>
+ <para>
+ Black/White listing of jobs is used to omit parts of the defined jobs that do not
need to be executed. When calling the <command>run-parts</command> script on a
cron folder, such as <filename>/etc/cron.daily</filename>, we can define which
of the programs in this folder will not be executed by
<command>run-parts</command>.
+ </para>
+ <para>To define a black list, create a
<filename>jobs.deny</filename> file in the folder that
<command>run-parts</command> will be executing from. For example, if we need
to omit a particular program from /etc/cron.daily, then, a file
<filename>/etc/cron.daily/jobs.deny</filename> has to be created. In this
file, specify the names of the omitted programs from the same directory. These will not be
executed when a command, such as <computeroutput>run-parts
/etc/cron.daily</computeroutput>, is executed by a specific job.</para>
+ <para>To define a white list, create a
<filename>jobs.allow</filename> file.</para>
+ <para>
+ The principles of <filename>jobs.deny</filename> and
<filename>jobs.allow</filename> are the same as those of
<filename>cron.deny</filename> and <filename>cron.allow</filename>
described in section <xref linkend="s2-autotasks-cron-access"/>.
+ </para>
+ </section>
+ </section>
+ <section id="s1-autotasks-at-batch">
+ <title>At and Batch</title>
+ <indexterm significance="normal">
+ <primary>
+ <command>at</command>
+ </primary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>
+ <command>batch</command>
+ </primary>
+ </indexterm>
+ <para>While cron is used to schedule recurring tasks, the
<command>at</command> command is used to schedule a one-time task at a
specific time and the <command>batch</command> command is used to schedule a
one-time task to be executed when the systems load average drops below 0.8.</para>
+ <para>To use <command>at</command> or
<command>batch</command>, the <filename>at</filename> RPM package
must be installed, and the <command>atd</command> service must be running. To
determine if the package is installed, use the <command>rpm -q at</command>
command. To determine if the service is running, use the following command:</para>
+ <screen><command>systemctl is-active
atd.service</command></screen>
+ <section id="s2-autotasks-at-configuring">
+ <title>Configuring At Jobs</title>
+ <para>To schedule a one-time job at a specific time, type the command
<command>at <replaceable>time</replaceable>
+ </command>, where
<command><replaceable>time</replaceable>
+ </command> is the time to execute the command.</para>
+ <para>The argument <replaceable>time</replaceable> can be one of
the following:</para>
+ <itemizedlist>
+ <listitem>
+ <para>HH:MM format — For example, 04:00 specifies 4:00 a.m. If the time
is already past, it is executed at the specified time the next day.</para>
+ </listitem>
+ <listitem>
+ <para>midnight — Specifies 12:00 a.m.</para>
+ </listitem>
+ <listitem>
+ <para>noon — Specifies 12:00 p.m.</para>
+ </listitem>
+ <listitem>
+ <para>teatime — Specifies 4:00 p.m.</para>
+ </listitem>
+ <listitem>
+ <para>month-name day year format — For example, January 15 2002 specifies
the 15th day of January in the year 2002. The year is optional.</para>
+ </listitem>
+ <listitem>
+ <para>MMDDYY, MM/DD/YY, or MM.DD.YY formats — For example, 011502 for the
15th day of January in the year 2002.</para>
+ </listitem>
+ <listitem>
+ <para>now + time — time is in minutes, hours, days, or weeks. For
example, now + 5 days specifies that the command should be executed at the same time five
days from now.</para>
+ </listitem>
+ </itemizedlist>
+ <para>The time must be specified first, followed by the optional date. For
more information about the time format, read the
<filename>/usr/share/doc/at-<replaceable>version</replaceable>/timespec</filename>
text file.</para>
+ <para>After typing the <command>at</command> command with the
time argument, the <prompt>at></prompt> prompt is displayed. Type the
command to execute, press <keycap>Enter</keycap>, and press
<keycombo><keycap>Ctrl</keycap>
+ <keycap>D</keycap>
+ </keycombo> . Multiple commands can be specified by typing each command
followed by the <keycap>Enter</keycap> key. After typing all the commands,
press <keycap>Enter</keycap> to go to a blank line and press
<keycombo><keycap>Ctrl</keycap>
+ <keycap>D</keycap>
+ </keycombo> . Alternatively, a shell script can be entered at the prompt,
pressing <keycap>Enter</keycap> after each line in the script, and pressing
<keycombo><keycap>Ctrl</keycap>
+ <keycap>D</keycap>
+ </keycombo> on a blank line to exit. If a script is entered, the shell used
is the shell set in the user's <envar>SHELL</envar> environment, the
user's login shell, or <command>/bin/sh</command> (whichever is found
first).</para>
+ <para>If the set of commands or script tries to display information to
standard output, the output is emailed to the user.</para>
+ <para>Use the command <command>atq</command> to view pending
jobs. Refer to <xref linkend="s2-autotasks-at-batch-viewing"/> for more
information.</para>
+ <para>Usage of the <command>at</command> command can be
restricted. For more information, refer to <xref
linkend="s2-autotasks-at-batch-controlling-access"/> for
details.</para>
+ </section>
+
+ <section id="s2-autotasks-batch-configuring">
+ <title>Configuring Batch Jobs</title>
+ <para>To execute a one-time task when the load average is below 0.8, use the
<command>batch</command> command.</para>
+ <para>After typing the <command>batch</command> command, the
<prompt>at></prompt> prompt is displayed. Type the command to execute,
press <keycap>Enter</keycap>, and press
<keycombo><keycap>Ctrl</keycap>
+ <keycap>D</keycap>
+ </keycombo> . Multiple commands can be specified by typing each command
followed by the <keycap>Enter</keycap> key. After typing all the commands,
press <keycap>Enter</keycap> to go to a blank line and press
<keycombo><keycap>Ctrl</keycap>
+ <keycap>D</keycap>
+ </keycombo> . Alternatively, a shell script can be entered at the prompt,
pressing <keycap>Enter</keycap> after each line in the script, and pressing
<keycombo><keycap>Ctrl</keycap>
+ <keycap>D</keycap>
+ </keycombo> on a blank line to exit. If a script is entered, the shell used
is the shell set in the user's <envar>SHELL</envar> environment, the
user's login shell, or <command>/bin/sh</command> (whichever is found
first). As soon as the load average is below 0.8, the set of commands or script is
executed.</para>
+ <para>If the set of commands or script tries to display information to
standard out, the output is emailed to the user.</para>
+ <para>Use the command <command>atq</command> to view pending
jobs. Refer to <xref linkend="s2-autotasks-at-batch-viewing"/> for more
information.</para>
+ <para>Usage of the <command>batch</command> command can be
restricted. For more information, refer to <xref
linkend="s2-autotasks-at-batch-controlling-access"/> for
details.</para>
+ </section>
+ <section id="s2-autotasks-at-batch-viewing">
+ <title>Viewing Pending Jobs</title>
+ <para>To view pending <command>at</command> and
<command>batch</command> jobs, use the <command>atq</command>
command. The <command>atq</command> command displays a list of pending jobs,
with each job on a line. Each line follows the job number, date, hour, job class, and
username format. Users can only view their own jobs. If the <systemitem
class="username">root</systemitem> user executes the
<command>atq</command> command, all jobs for all users are
displayed.</para>
+ </section>
+ <section id="s2-autotasks-commandline-options">
+ <title>Additional Command Line Options</title>
+ <para>Additional command line options for <command>at</command>
and <command>batch</command> include:</para>
+ <table id="tb-at-command-line-options">
+ <title>
+ <command>at</command> and <command>batch</command>
Command Line Options</title>
+ <tgroup cols="2">
+ <colspec colname="option" colnum="1"
colwidth="20*"/>
+ <colspec colname="description" colnum="2"
colwidth="50*"/>
+ <thead>
+ <row>
+ <entry>Option</entry>
+ <entry>Description</entry>
+ </row>
+ </thead>
+ <tbody>
+ <row>
+ <entry>
+ <option>-f</option>
+ </entry>
+ <entry>
+ Read the commands or shell script from a file instead of specifying them at the
prompt.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <option>-m</option>
+ </entry>
+ <entry>
+ Send email to the user when the job has been completed.
+ </entry>
+ </row>
+ <row>
+ <entry>
+ <option>-v</option>
+ </entry>
+ <entry>
+ Display the time that the job is executed.
+ </entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </section>
+ <section id="s2-autotasks-at-batch-controlling-access">
+ <title>Controlling Access to At and Batch</title>
+ <para>The <filename>/etc/at.allow</filename> and
<filename>/etc/at.deny</filename> files can be used to restrict access to the
<command>at</command> and <command>batch</command> commands. The
format of both access control files is one username on each line. Whitespace is not
permitted in either file. The <command>at</command> daemon
(<command>atd</command>) does not have to be restarted if the access control
files are modified. The access control files are read each time a user tries to execute
the <command>at</command> or <command>batch</command>
commands.</para>
+ <para>The <systemitem
class="username">root</systemitem> user can always execute
<command>at</command> and <command>batch</command> commands,
regardless of the access control files.</para>
+ <para>If the file <filename>at.allow</filename> exists, only
users listed in it are allowed to use <command>at</command> or
<command>batch</command>, and the <filename>at.deny</filename>
file is ignored.</para>
+ <para>If <filename>at.allow</filename> does not exist, users
listed in <filename>at.deny</filename> are not allowed to use
<command>at</command> or <command>batch</command>.</para>
+ </section>
+
+ <section id="s2-autotasks-at-batch-service">
+ <title>Starting and Stopping the Service</title>
+ <para>To start the <command>at</command> service, use the
following command as <systemitem
class="username">root</systemitem>:</para>
+ <screen><command>systemctl start atd.service</command></screen>
+ <para>To stop the service, as <systemitem
class="username">root</systemitem>, type the following at a shell
prompt:</para>
+ <screen><command>systemctl stop
atd.service</command></screen>
+ <para>It is recommended that you start the service at boot time. To do so,
run the following command as <systemitem
class="username">root</systemitem>:</para>
+ <screen><command>systemctl enable
atd.service</command></screen>
+ <para>
+ Refer to <xref linkend="ch-Services_and_Daemons" /> for more
information on how to configure services in &MAJOROS;.
+ </para>
+ </section>
+ </section>
+
+ <section id="s1-autotasks-additional-resources">
+ <title>Additional Resources</title>
+ <indexterm significance="normal">
+ <primary>cron</primary>
+ <secondary>additional resources</secondary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>at</primary>
+ <secondary>additional resources</secondary>
+ </indexterm>
+ <indexterm significance="normal">
+ <primary>batch</primary>
+ <secondary>additional resources</secondary>
+ </indexterm>
+ <para>To learn more about configuring automated tasks, refer to the following
resources.</para>
+
+ <section id="s2-autotasks-installed-docs">
+ <title>Installed Documentation</title>
+ <itemizedlist>
+ <listitem>
+ <para>
+ <filename>cron</filename> man page — contains an overview of
cron.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>crontab</filename> man pages in sections 1 and 5 — The
man page in section 1 contains an overview of the <filename>crontab</filename>
file. The man page in section 5 contains the format for the file and some example
entries.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>anacron</filename> man page — contains an overview of
anacron.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>anacrontab</filename> man page — contains an overview
of the <filename>anacrontab</filename> file.
+ </para>
+ </listitem>
+ <listitem>
+ <para>
+
<filename>/usr/share/doc/at-<replaceable>version</replaceable>/timespec</filename>
contains more detailed information about the times that can be specified for cron
jobs.</para>
+ </listitem>
+ <listitem>
+ <para>
+ <filename>at</filename> man page — description of
<command>at</command> and <command>batch</command> and their
command line options.</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+</chapter>
--
1.8.1.4