Linux命令:理解at、atq、atrm、batch命令的9个例子

举报
Tiamo_T 发表于 2022/02/20 16:09:51 2022/02/20
【摘要】 您可以在 UNIX/Linux 中使用以下三个命令中的任何一个执行批处理作业 - at、batch 或 cron。 在本文中,让我们了解一下如何使用at 命令安排作业、查看作业和删除作业。

您可以在 UNIX/Linux 中使用以下三个命令中的任何一个执行批处理作业 - at、batch 或 cron。

在本文中,让我们了解一下如何使用at 命令安排作业、查看作业和删除作业。

您可以通过两种不同的方式安排 at 作业:

  • 安排在特定时间执行的作业。例如,7 月 3 日上午 10 点
  • 从现在开始安排要在相对时间执行的作业。例如,5 小时后。

1. 使用特定日期和时间安排 at 工作

句法:

$ at time date

例如,要在 5 月 20 日上午 11 点安排作业,请使用以下 at 命令。

$ at 11 am may 20

2. 使用相对时间安排 at 作业

您可以从现在开始使用相对时间安排要执行的作业。

句法:

$ at now + COUNT UNIT

例如,以下作业将在 1 分钟后执行。


$ at now + 1 min

上面的示例将从标准输入读取命令,并在一分钟后执行作业。当你在时间格式上给出错误时,你会得到错误'乱码时间'。

您可以使用以下 at 命令将后台作业安排为从现在起 1 小时或(或)从现在起 1 天:

$ at now + 1 hour

$ at now + 1 day

与 at 命令类似,您也可以使用 crontab 在预定时间执行作业。请参阅我们之前的15 cron 命令示例文章。

3.使用atq查看所有安排的at作业

您可以使用 atq 命令(或 at -l)来显示所有计划或当前正在运行的 at 命令作业。

以下 atq 命令将列出所有待处理的 at作业。显示的第一个数字是作业编号,然后是执行进程的时间和用户名。

$ atq
4	2010-04-20 11:00 a sathiya

4. 使用 atrm 删除/删除计划的 at 作业

您可以使用 atrm 命令(或 at -d)来删除特定作业。例如,要删除作业编号 4,请使用以下 atrm 命令。

$ atrm 4

5. 仅当系统平均负载小于 1.5 时才使用批处理命令执行作业

您可以使用批处理命令调度作业,该命令将提示输入命令,当系统平均负载小于 1.5 时将执行该作业。

$ batch

输入成功后,您将获得工作编号。要列出和删除批处理作业,您可以使用上面解释的 at 命令。

6. 使用 -f 选项从文件中安排作业

首先创建一个文本文件,其中包含您希望使用 at 命令在后台执行的所有命令或 shell 脚本。

$ cat myjobs.txt
/home/sathiya/calculate-space.sh
/path/to/a/shell-script
/path/to/any/command/or/script

使用 -f 选项,您可以使 at 命令从文件而不是标准输入中获取输入。

执行 at 命令将在 1 小时后执行 myjobs.txt 中的所有作业。

$ at -f myjobs.txt now + 1 hour

7. 允许和拒绝某些用户使用 at 作业

系统管理员可以控制谁可以安排 at 作业,谁不能使用 at.allow 和 at.deny 文件。

首先,系统检查 at.allow 文件。如果 at.allow 存在,则只允许 at.allow 文件中指定的用户名使用 at 命令。

接下来,(如果 at.allow 不存在),系统检查 at.deny 文件。如果 at.deny 存在,则 at.deny 文件中指定的用户名不允许使用 at 命令。

默认情况下,大多数系统使用 at.deny 文件来阻止某些用户使用 at 命令,例如 www-data、guest、backup、man user。

8. 像 nohup 这样的命令执行

与我们之前讨论的nohup 命令类似,您可以使用 at 命令在远程服务器上执行命令(或 shell 脚本)并从服务器注销。

$ at -f myjob now + 1 min

$ exit

注意:即使您退出服务器,myjob 仍将运行。

9. 命令时的附加格式

您可以在命令日期时间格式中使用以下任何一种:

$ at 10 am tomorrow

$ at 11:00 next month

$ at 22:00 today

$ at now + 1 week

$ at noon
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。