如何在Linux上的特定时间运行脚本?

如何在Linux上的特定时间运行脚本?,linux,bash,scripting,debian,Linux,Bash,Scripting,Debian,我有一个包含特定日期和时间的文本文件。 我希望能够在该文件中指定的时间运行脚本。 你将如何做到这一点? 创建另一个在后台运行的脚本(有点像deamon)并每秒检查当前时间是否与文件中的时间匹配? 还有别的办法吗? 这台机器是一台linux服务器,Debian wheezy。 提前感谢您通常在Linux中,您会使用crontab来执行此类调度任务。但是,您必须指定“设置计时器”的时间——因此,如果您希望在文件本身中对其进行配置,则必须创建一些机制来实现这一点 但一般来说,您可以使用以下示例: 30

我有一个包含特定日期和时间的文本文件。 我希望能够在该文件中指定的时间运行脚本。 你将如何做到这一点? 创建另一个在后台运行的脚本(有点像deamon)并每秒检查当前时间是否与文件中的时间匹配? 还有别的办法吗? 这台机器是一台linux服务器,Debian wheezy。
提前感谢您

通常在Linux中,您会使用
crontab
来执行此类调度任务。但是,您必须指定“设置计时器”的时间——因此,如果您希望在文件本身中对其进行配置,则必须创建一些机制来实现这一点

但一般来说,您可以使用以下示例:

30 1 * * 5 /path/to/script/script.sh
将在每周五凌晨1:30执行脚本 在这里:

30
为分钟

1
为小时

接下来的2个*(按顺序)是月的第几天和第五个*(按顺序),第五个*(工作日)是工作日,该命令专门用于此目的(与用于安排重复任务的cron不同)

在$(cat文件)查看以下内容:

echo "ls -l" | at 07:00
此代码行在特定时间执行“ls-l”。这是一个在特定时间执行某物(在我的示例中是命令)的示例。“at”是您真正需要的命令。您可以在此处阅读规范:


希望有帮助

Cron适用于定期运行的东西,比如每周六凌晨4点。还有anacron,它可以解决断电、睡眠等问题。以及在上的


但对于不需要根或任何东西的一次性解决方案,您可以使用date计算目标时间和当前时间的自历元起的秒数,然后使用expr查找差异,和睡眠那么多秒。

cron不工作的原因是什么?为什么这个话题结束了??这是一个非常合理的问题。谷歌搜索将你引向这一领域,答案相当乏味。所以有人谁能回答这是明确的英语将是blocked@Richard我怀疑StackOverflow关闭这么多这样的问题的原因是为了鼓励用户在适当的StackExchange站点上提出与主题无关的问题。有相当多以前不存在的新SE站点。例如,有相当多的on-SO被关闭为非主题,现在有了Vi/Vim-SE,这些问题将在主题上。只是沉思。然而,这看起来仍然像是一个编程问题,因为每次学习cron之后我都忘记了如何使用它,而且我不需要任何高级的东西。那么如何触发该命令呢?Crontab Guru()是Crontab配置的一个有用工具。使用bash,您可以编写
$(
at
处的
作业将保持计划状态,即使同时重新启动机器。获取错误
无法打开/var/run/atd.pid以发送atd信号。没有运行atd?
任何线索?您需要运行
atd
守护进程才能使用
at
。在Manjaro OpenRC上,您只需在OpenRC上安装
,并添加守护程序atd服务:
sudo rc update add atd
,然后从
sudo rc service atd start
开始。通常,
at
软件包已经包含了一个
systemd
(包括Ubuntu在内的各种linux发行版上的默认init/service系统)服务,它可以通过
sudo systemctl start atd
启动,并通过
sudo systemctl enable atd>在init上启用自动启动。在我的例子中,这会打印出来“job 6 at 2017-08-21 10:53”立即…顺便说一句,我的bash文档描述了at-c的用法。如果执行命令的方法是将其导入std in,那么它的作用是什么?如果系统当时断电,该脚本会在以后运行吗?
echo "ls -l" | at 07:00