Linux命令:理解at、atq、atrm、batch命令的9个例子
您可以在 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
- 点赞
- 收藏
- 关注作者
评论(0)