在 Linux 环境中调度任务时,系统管理员经常使用 cron 命令执行重复性任务。但是,还有另一个用于调度一次性作业的强大工具,称为at命令。 了解 at 命令 at命令是一个多功能实用程序,允许用户计划在将来的指定时间执行命令或脚本。它对于运行一次性作业(如维护任务、备份或系统更新)特别有用,而无需手动干预。 安装 at 命令 对于基于 Debian 的发行版,请使用以下命令:at sudoapt-get install at 对于基于 Red Hat 的发行版,请使用以下命令: sudoyum install at 执行一次性任务 要安排一次性任务,只需提供所需的执行时间。 例如,若要计划一次性作业以在一小时后在 /tmp 目录中创建包含“Hello,World!”的文件,请使用以下命令: echo"echo 'Hello, World!' > /tmp/hello_world.txt" | at now + 1 hour 或者,可以按如下方式调度命令: atnow + 1 hour echo 'Hello, World!' > /tmp/hello_world.txt 按 CTRL + D 退出命令终端。 列出和管理计划作业 要列出当前用户的所有计划作业,请使用“atq”命令: atq 要删除计划作业,请使用后跟作业 ID 的“atrm”命令: atrm 其他提示和技巧 虽然该命令本身已经是一个强大的工具,但在安排一次性任务时,还有一些额外的技巧可以参考: 调度多个命令:如果需要安排在单个作业中按顺序执行多个命令,可以通过在命令终端中的单独行中输入每个命令来实现。输入所有命令后,按 CTRL + D 退出并保存作业。 at now + 10 minutes echo 'First command' > /tmp/output.txt echo 'Second command' >>/tmp/output.txt echo 'Third command' >>/tmp/output.txt 使用脚本:您可以创建一个包含要运行的所有命令的 shell 脚本,并使用该选项指定脚本文件,而不是在命令终端中输入多个命令。确保脚本是可执行的。 # Create a script called myscript.sh echo '#!/bin/bash' > myscript.sh echo 'echo "Task 1" >/tmp/script_output.txt' >> myscript.sh echo 'echo "Task 2" >>/tmp/script_output.txt' >> myscript.sh chmod +x myscript.sh # Schedule the script to run in 15 minutes at -f myscript.sh now + 15 minutes 使用该命令时,请记住以下最佳做法: 始终验证系统上是否已安装并启用该命令。 在您的作业中使用描述性注释,以便更容易理解其目的。 在使用命令计划命令或脚本之前测试它们。 请记住,该命令是为一次性作业设计的,cron 命令用于周期性任务。 |