我有一个包含特定日期和时间的文本文件。 我希望能够在该文件中指定的时间运行脚本。 你将如何做到这一点?创建另一个在后台运行的脚本(类似于守护进程)并每秒检查当前时间是否与文件中的时间匹配?还有其他方法吗?机器是linux服务器,Debian wheezy。提前致谢
4 回答
请看以下内容:
echo "ls -l" | at 07:00
此代码行在特定时间执行“ls -l”。这是在特定时间执行某事(在我的示例中为命令)的示例。“at”是您真正需要的命令。您可以在此处阅读规格:
http://manpages.ubuntu.com/manpages/precise/en/man1/at.1posix.html http://manpages.ubuntu.com/manpages/xenial/man1/at.1posix.html
希望能帮助到你!
该at
命令专门为此目的而存在(与cron
用于调度重复任务的命令不同)。
at $(cat file) </path/to/script
Cron适合定期运行的东西,比如每周六凌晨 4 点。还有anacron,它可以解决电源关闭、睡眠等问题。以及在.
但是对于不需要 root 或任何东西的一次性解决方案,您可以只使用date来计算目标时间和当前时间的 seconds-since-epoch,然后使用expr找出差异,然后睡那么多秒。
通常在 Linux 中,您使用crontab
这种调度任务。但是您必须指定“设置计时器”的时间 - 因此,如果您希望它可以在文件本身中进行配置,则必须创建一些机制来做到这一点。
但一般来说,你会使用例如:
30 1 * * 5 /path/to/script/script.sh
将在每周五凌晨 1:30 (AM) 执行脚本:
30
是分钟
1
是小时
接下来的 2 个 * 是day of month
和month
(按此顺序)并且5
是工作日