📄 s1-autotasks-at-batch.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><HTML><HEAD><TITLE>at 和 batch</TITLE><METANAME="GENERATOR"CONTENT="Modular DocBook HTML Stylesheet Version 1.76b+"><LINKREL="HOME"TITLE="Red Hat Linux 9"HREF="index.html"><LINKREL="UP"TITLE="自动化的任务"HREF="ch-autotasks.html"><LINKREL="PREVIOUS"TITLE="anacron"HREF="s1-autotasks-anacron.html"><LINKREL="NEXT"TITLE="其它资料"HREF="s1-autotasks-additional-resources.html"><LINKREL="STYLESHEET"TYPE="text/css"HREF="rhdocs-man.css"><METAHTTP-EQUIV="Content-Type"CONTENT="text/html; charset=gb2312"></HEAD><BODYCLASS="SECT1"BGCOLOR="#FFFFFF"TEXT="#000000"LINK="#0000FF"VLINK="#840084"ALINK="#0000FF"><DIVCLASS="NAVHEADER"><TABLESUMMARY="Header navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><THCOLSPAN="3"ALIGN="center">Red Hat Linux 9: Red Hat Linux 定制指南</TH></TR><TR><TDWIDTH="10%"ALIGN="left"VALIGN="bottom"><AHREF="s1-autotasks-anacron.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="80%"ALIGN="center"VALIGN="bottom">28. 自动化的任务</TD><TDWIDTH="10%"ALIGN="right"VALIGN="bottom"><AHREF="s1-autotasks-additional-resources.html"ACCESSKEY="N">前进</A></TD></TR></TABLE><HRALIGN="LEFT"WIDTH="100%"></DIV><DIVCLASS="SECT1"><H1CLASS="SECT1"><ANAME="S1-AUTOTASKS-AT-BATCH"></A>28.3. at 和 batch</H1><P>cron 和 anacron 被用来调度重复的任务,<TTCLASS="COMMAND">at</TT>命令被用来在指定时间内调度一次性的任务。<TTCLASS="COMMAND">batch</TT>命令被用来在系统平均载量降到 0.8 以下时执行一次性的任务。</P><P>要使用 <TTCLASS="COMMAND">at</TT> 或 <TTCLASS="COMMAND">batch</TT>命令,你必须安装了 <TTCLASS="FILENAME">at</TT> RPM 软件包,并且 <TTCLASS="COMMAND">atd</TT>服务必须在运行。要判定该软件包是否被安装了,使用 <TTCLASS="COMMAND">rpm -q at</TT>命令。要判定该服务是否在运行,使用 <TTCLASS="COMMAND">/sbin/service atd status</TT> 命令。</P><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-AUTOTASKS-AT-CONFIGURING"></A>28.3.1. 配置 at 作业</H2><P>要在某一指定时间内调度一项一次性作业,键入<TTCLASS="COMMAND">at <TTCLASS="REPLACEABLE"><I>time</I></TT></TT> 命令。这里的<TTCLASS="COMMAND"><TTCLASS="REPLACEABLE"><I>time</I></TT></TT> 是执行命令的时间。</P><P><TTCLASS="REPLACEABLE"><I>time</I></TT> 参数可以是下面格式中任何一种:</P><P></P><UL><LI><P>HH:MM 格式 — 譬如,04:00 代表 4:00AM。如果时间已过,它就会在第二天的这一时间执行。</P></LI><LI><P>midnight — 代表 12:00AM。</P></LI><LI><P>noon — 代表 12:00PM。</P></LI><LI><P>teatime — 代表 4:00PM。</P></LI><LI><P>英文月名 日期 年份 格式— 譬如,January 15 2002 代表 2002 年 1 月 15 日。年份可有可无。</P></LI><LI><P>MMDDYY、MM/DD/YY、或 MM.DD.YY 格式 — 譬如,011502 代表 2002 年 1 月 15 日。</P></LI><LI><P>now + 时间 — 时间以 minutes、hours、days、或 weeks 为单位。譬如,now + 5 days代表命令应该在 5 天之后的此时此刻执行。</P></LI></UL><P> 时间必须要被先指定,接着是可有可无的日期。关于时间格式的详情,请阅读 <TTCLASS="FILENAME">/usr/share/doc/at-<TTCLASS="REPLACEABLE"><I><version> </I></TT>/timespec</TT> 文本文件。 </P><P>键入了 <TTCLASS="COMMAND">at</TT> 命令和它的时间参数后,<TTCLASS="PROMPT">at></TT>提示就会出现。键入要执行的命令,按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键,然后键入 Ctrl-D。你可以指定多条命令,方法是键入每一条命令后按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键。键入所有命令后,按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN>键转入一个空行,然后再键入 Ctrl-D。或者,你也可以在提示后输入 shell 脚本,在脚本的每一行后按<SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键,然后在空行处键入 Ctrl-D 来退出。如果输入的是脚本,所用的 shell 就会是用户的<TTCLASS="ENVAR">SHELL</TT> 环境变量中设置的值,用户的登录 shell,或是<TTCLASS="COMMAND">/bin/sh</TT>(使用最先发现的)。</P><P>如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件方式被邮寄给用户。</P><P>使用命令 <TTCLASS="COMMAND">atq</TT> 来查看等待运行的作业。详情请参阅<AHREF="s1-autotasks-at-batch.html#S2-AUTOTASKS-AT-BATCH-VIEWING">第 28.3.3 节</A>。</P><P><TTCLASS="COMMAND">at</TT> 命令的用法能够被制约。详情请参阅 <AHREF="s1-autotasks-at-batch.html#S2-AUTOTASKS-AT-BATCH-CONTROLLING-ACCESS">第 28.3.5 节</A>。</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-AUTOTASKS-BATCH-CONFIGURING"></A>28.3.2. 配置 batch 作业</H2><P>要在系统平均载量降到 0.8 以下时执行某项一次性的任务,使用<TTCLASS="COMMAND">batch</TT> 命令。</P><P>键入 <TTCLASS="COMMAND">batch</TT> 命令后,<TTCLASS="PROMPT">at></TT>提示就会出现。键入要执行的命令,按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键,然后键入Ctrl-D。你可以指定多条命令,方法是键入每一条命令后按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN>键。键入所有命令后,按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键转入一个空行,然后再键入 Ctrl-D。或者,你也可以在提示后输入 shell 脚本,在脚本的每一行后按 <SPANCLASS="KEYCAP"><KEYCAP>[Enter]</KEYCAP></SPAN> 键,然后 在空行处键入Ctrl-D 来退出。如果输入的是脚本,所用的 shell 就会是用户的 <TTCLASS="ENVAR">SHELL</TT>环境变量中设置的值,用户的登录 shell,或是 <TTCLASS="COMMAND">/bin/sh</TT>(使用最先发现的)。系统平均载量一降到0.8 以下,这组命令或脚本就会被执行。</P><P>如果这组命令或脚本试图在标准输出中显示信息,该输出会用电子邮件方式被邮寄给用户。</P><P>使用命令 <TTCLASS="COMMAND">atq</TT> 来查看等待运行的作业。详情请参阅<AHREF="s1-autotasks-at-batch.html#S2-AUTOTASKS-AT-BATCH-VIEWING">第 28.3.3 节</A>。</P><P><TTCLASS="COMMAND">batch</TT> 命令的用法能够被制约。详情请参阅<AHREF="s1-autotasks-at-batch.html#S2-AUTOTASKS-AT-BATCH-CONTROLLING-ACCESS">第 28.3.5 节</A>。</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-AUTOTASKS-AT-BATCH-VIEWING"></A>28.3.3. 查看等待运行的作业</H2><P>要查看等待运行的 <TTCLASS="COMMAND">at</TT> 和 <TTCLASS="COMMAND">batch</TT> 作业,使用<TTCLASS="COMMAND">atq</TT> 命令。它显示一列等待运行的作业,每项作业只占据一行。每一行的格式都是:作业号码、 日期、小时、作业类别、以及用户名。用户只能查看他们自己的作业。如果根用户执行<TTCLASS="COMMAND">atq</TT> 命令,所有用户的全部作业都会被显示。</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-AUTOTASKS-COMMANDLINE-OPTIONS"></A>28.3.4. 其它的命令行选项</H2><P><TTCLASS="COMMAND">at</TT> 和 <TTCLASS="COMMAND">batch</TT> 的其它命令行选项包括:</P><DIVCLASS="TABLE"><ANAME="TB-AT-COMMAND-LINE-OPTIONS"></A><TABLEBORDER="1"BGCOLOR="#DCDCDC"CELLSPACING="0"CELLPADDING="4"CLASS="CALSTABLE"><THEAD><TR><THWIDTH="29%"ALIGN="LEFT"VALIGN="TOP">选项</TH><THWIDTH="71%"ALIGN="LEFT"VALIGN="TOP">描述</TH></TR></THEAD><TBODY><TR><TDWIDTH="29%"ALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">-f</TT></TD><TDWIDTH="71%"ALIGN="LEFT"VALIGN="TOP">从文件中读取命令或 shell 脚本,而非在提示后指定它们。</TD></TR><TR><TDWIDTH="29%"ALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">-m</TT></TD><TDWIDTH="71%"ALIGN="LEFT"VALIGN="TOP">在作业完成后,给用户发送电子邮件。</TD></TR><TR><TDWIDTH="29%"ALIGN="LEFT"VALIGN="TOP"><TTCLASS="OPTION">-v</TT></TD><TDWIDTH="71%"ALIGN="LEFT"VALIGN="TOP">显示作业将被执行的时间。</TD></TR></TBODY></TABLE><P><B>表 28-1. <TTCLASS="COMMAND">at</TT> 和 <TTCLASS="COMMAND">batch</TT> 的命令行选项</B></P></DIV></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-AUTOTASKS-AT-BATCH-CONTROLLING-ACCESS"></A>28.3.5. 控制对 at 和 batch 的使用</H2><P><TTCLASS="FILENAME">/etc/at.allow</TT> 和 <TTCLASS="FILENAME">/etc/at.deny</TT> 文件可以用来限制对 <TTCLASS="COMMAND">at</TT> 和 <TTCLASS="COMMAND">batch</TT> 命令的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许使用空白字符。如果使用控制文件被修改了,<TTCLASS="COMMAND">at</TT>守护进程(<TTCLASS="COMMAND">atd</TT>) 不必被重启。每次用户试图执行<TTCLASS="COMMAND">at</TT> 或 <TTCLASS="COMMAND">batch</TT> 命令时,使用控制文件都会被读取。</P><P>不论使用控制文件如何规定,根用户都总是可以执行 <TTCLASS="COMMAND">at</TT>和 <TTCLASS="COMMAND">batch</TT> 命令。</P><P>如果 <TTCLASS="FILENAME">at.allow</TT> 文件存在,只有其中列出的用户才能使用 <TTCLASS="COMMAND">at</TT>或 <TTCLASS="COMMAND">batch</TT> 命令,<TTCLASS="FILENAME">at.deny</TT> 文件会被忽略。</P><P>如果 <TTCLASS="FILENAME">at.allow</TT> 文件不存在,所有在 <TTCLASS="FILENAME">at.deny</TT>文件中列出的用户都被禁止使用<TTCLASS="COMMAND">at</TT> 和 <TTCLASS="COMMAND">batch</TT> 命令。</P></DIV><DIVCLASS="SECT2"><H2CLASS="SECT2"><ANAME="S2-AUTOTASKS-AT-BATCH-SERVICE"></A>28.3.6. 启动和停止服务</H2><P>要启动 <TTCLASS="COMMAND">at</TT> 服务,使用<TTCLASS="COMMAND">/sbin/service atd start</TT> 命令。要停止该服务, 使用<TTCLASS="COMMAND">/sbin/service atd stop</TT> 命令。建议你在引导时启动该服务。关于在引导时自动启动at 服务的详情,请参阅<AHREF="ch-services.html">第14章 </A>。</P></DIV></DIV><DIVCLASS="NAVFOOTER"><HRALIGN="LEFT"WIDTH="100%"><TABLESUMMARY="Footer navigation table"WIDTH="100%"BORDER="0"CELLPADDING="0"CELLSPACING="0"><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top"><AHREF="s1-autotasks-anacron.html"ACCESSKEY="P">后退</A></TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="index.html"ACCESSKEY="H">起点</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top"><AHREF="s1-autotasks-additional-resources.html"ACCESSKEY="N">前进</A></TD></TR><TR><TDWIDTH="33%"ALIGN="left"VALIGN="top">anacron</TD><TDWIDTH="34%"ALIGN="center"VALIGN="top"><AHREF="ch-autotasks.html"ACCESSKEY="U">上级</A></TD><TDWIDTH="33%"ALIGN="right"VALIGN="top">其它资料</TD></TR></TABLE></DIV></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -