Linux如何在特定时间运行脚本?
我有一个包含特定date和时间的文本文件。 我希望能够在该文件中指定的时间运行脚本。 你将如何实现? 创build另一个在后台运行的脚本(sorting的deamon),并检查每一秒,如果当前时间是匹配的文件中的时间? 有另一种方法吗? 该机器是一个Linux服务器,Debian wheezy。 提前致谢
看看下面的内容:
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
克朗对于那些定期运行的东西是很好的,比如每个星期六凌晨4点。 也有anacron ,它围绕着停电,睡觉,什么都没有。 以及在 。
但是对于一次性的解决scheme来说,不需要root或者任何东西,你可以用date来计算目标时间和当前时间的秒数,然后用expr来找出差异, 睡几秒钟。
通常在Linux中,您使用crontab
来处理这种types的任务。 但是您必须指定“设置计时器”的时间 – 所以如果您希望在文件本身中进行configuration,则必须创build一些机制来执行此操作。
但总的来说,你会使用例如:
30 1 * * 5 /path/to/script/script.sh
每个星期五1:30(上午)执行脚本这里:
30
分钟
1
是小时
接下来的2 *是day of month
和month
(按顺序), 5
是工作日
Linux已经提供了这个工具,你不需要重新创build。 将其设置为以Cron作业运行。
查看此链接了解详情: http : //www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/