linux 命令行 运行 r,详述Linux后台运行命令(二)

Linux后台运行命令第二讲,这里介绍at命令,这个命令与cron有一定的关系,这里还会详细介绍at命令的使用方法。我们应该对Linux后台运行命令加以比较分析,可以看出at与cron和crontab命令的区别。

at

a t命令允许用户向c r o n守护进程提交作业,使其在稍后的时间运行。一旦一个作业被提交, a t命令将会保留所有当前的环境变量,包括路径,不象c r o n t a b,只提供缺省的环境。该作业的所有输出都将以电子邮件的形式发送给用户,除非你对其输出进行了重定向,绝大多数情况下是重定向到某个文件中。

和c r o n t a b一样,根用户可以通过/ e t c目录下的a t . a l l o w和a t . d e n y文件来控制哪些用户可以使用a t命令,哪些用户不行。不过一般来说,对a t命令的使用不如对c r o n t a b的使用限制那么严格。

a t命令的基本形式为:

at [-f script] [-m -l -r] [time] [date]

其中,

-f:script 是所要提交的脚本或命令。

-l:列出当前所有等待运行的作业。a t q命令具有相同的作用。

-r:清除作业。为了清除某个作业,还要提供相应的作业标识( I D);有些U N I X变体只接受a t r m作为清除命令。

-m:作业完成后给用户发邮件。

time:at命令的时间格式非常灵活;可以是H、H H . H H M M、H H : M M或H : M,其中H和M分别是小时和分钟。还可以使用a . m .或p . m .。

date:日期格式可以是月份数或日期数,而且a t命令还能够识别诸如t o d a y、t o m o r r o w这样的词。

使用at命令提交命令或脚本

使用a t命令提交作业有几种不同的形式,可以通过命令行方式,也可以使用a t命令提示符。一般来说在提交若干行的系统命令时,使用a t命令提示符方式,在提交s h e l l脚本时,使用命令行方式。

提示符方式:

以在a t命令后面跟上日期/时间并回车。然后就进入了a t命令提示符,这时只需逐条输入相应的命令,然后按‘ < C T R L - D >’退出。

命令行方式:

at [-f script] [-m -l -r] [time] [date]

例一:提示符方式

# su sam

$ at 10:40

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh

at> find /etc -name "passwd" -print

at>

job 1 at 2004-11-02 10:40

其中, < E O T >就是< C T R L - D >。在10:40系统将执行一个简单的f i n d命令。提交的作业被分配了一个唯一标识job 1。该命令在完成以后会将全部结果以邮件的形式发送给我。

下面这些日期/时间格式都是a t命令可以接受的:

at 5.00am May23

at 11.20pm

at now +2 hour

at 9am tomorrow

at 15:00 May24

at now + 10 minutes

例二:命令行方式

如果希望向a t命令提交一个s h e l l脚本,使用其命令行方式即可。在提交脚本时使用- f选项。

如:

$ touch db_table.sh

$ at 3:00pm tomorrow -f db_table.sh

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh

job 3 at 2004-11-02 15:00

在上面的例子中,一个叫做d b _ t a b l e . s h的脚本将在2004-11-02 15:00运行。

还可以使用e c h o命令向a t命令提交作业:

$ echo find /etc -name "passwd" -print | at now +1 minute

warning: commands will be executed using (in order) a) $SHELL b) login shell c) /bin/sh

job 4 at 2004-11-01 19:07

列出所提交的作业

一个作业被提交后,可以使用at -l命令来列出所有的作业:

$ at -l

1       2004-11-02 10:40 a sam

3       2004-11-02 15:00 a sam

4       2004-11-01 19:07 a sam

其中,第一行是作业标识,后面是作业运行的日期/时间。最后一列a代表a t。

还可以使用a t q命令来完成同样的功能,它是a t命令的一个链接。

直接>atq,相当于>at -l

当提交一个作业后,它就被拷贝到/ v a r / s p o o l / a t目录中,准备在要求的时间运行。

# pwd

/var/spool/at

# ls -l

清除一个作业

清除作业的命令格式为:

atrm [job no] 或at -r [job no]

要清除某个作业,首先要执行at -l命令,以获取相应的作业标识,然后对该作业标识使用at -r 命令,清除该作业。

$ at -l

1       2004-11-02 10:40 a sam

3       2004-11-02 15:00 a sam

4       2004-11-01 19:07 a sam

$at -r 3

$at -l

1       2004-11-02 10:40 a sam

4       2004-11-01 19:07 a sam

有些系统使用at-r [job no]命令清除作业。

Linux后台运行命令at就介绍到这里。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值