如何在 Linux 中使用“at”命令在给定时间或稍后时间安排任务
作为 cron 作业调度程序的替代方案,at
命令允许您安排命令在给定时间运行一次,而无需编辑配置文件。
唯一的要求包括安装此实用程序并启动并启用其执行:
yum install at [on CentOS based systems]
sudo apt-get install at [on Debian and derivatives]
接下来,在引导时启动并启用 at 服务。
--------- On SystemD ---------
systemctl start atd
systemctl enable atd
--------- On SysVinit ---------
service atd start
chkconfig --level 35 atd on
atd
运行后,您可以按如下方式安排任何命令或任务。我们希望在下一分钟开始时(即,如果是 22:20:13,则向 www.google.com
发送 4 ping 探测命令将在 22:21:00 执行)并通过电子邮件(-m
,需要 Postfix 或同等版本)向调用该命令的用户报告结果:
echo "ping -c 4 www.google.com" | at -m now + 1 minute
如果您选择不使用 -m
选项,则将执行该命令,但不会将任何内容打印到标准输出。但是,您可以选择将输出重定向到文件。
另外请注意,at
不仅允许以下固定时间:现在、中午(12:00)和午夜(00:00),还可以自定义 2 位数字(代表小时)和4 位数时间(小时和分钟)。
例如,
要在今天晚上 11 点(如果当前日期晚于晚上 11 点,则明天)运行 updatedb
,请执行以下操作:
echo "updatedb" | at -m 23
要在今天 23:55 关闭系统(适用与上一示例相同的条件):
echo "shutdown -h now" | at -m 23:55
您还可以使用 +
符号和所需的时间规范将执行延迟分钟、小时、天、周、月或年,如第一个示例中所示。
时间规范遵循 POSIX 标准。
概括
根据经验,只要您只想在明确定义的时间运行命令或执行给定任务一次,请使用 at 代替 cron 作业调度程序。对于其他场景,请使用cron。
接下来,我们将介绍如何使用 openssl 加密 tar 存档文件,直到保持与 Tecmint 的连接。