![如何安排命令每 2 小时执行一次?](https://linux22.com/image/141518/%E5%A6%82%E4%BD%95%E5%AE%89%E6%8E%92%E5%91%BD%E4%BB%A4%E6%AF%8F%202%20%E5%B0%8F%E6%97%B6%E6%89%A7%E8%A1%8C%E4%B8%80%E6%AC%A1%EF%BC%9F.png)
我想在我的 ubuntu 机器上每 2 小时运行一个小的监控 jar 文件。
java -jar mymonitoringtool.jar
我不知道如何设置它。
答案1
您可以根据您的要求使用以下表达式设置 crontab。
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar &> path/to/monitor-$(date "+%Y%b%d-%H%M%S").log
您应该首先通过运行来检查是否有任何现有的 cron 作业crontab -l
。
如果您还没有任何 cron 作业,您可以将以上行放入文本文件(例如 my-cron-job.txt)中并运行crontab my-cron-job.txt
以激活它。然后,您可以通过crontab -l
再次运行来验证作业是否已添加。
如果您确实有现有的 cron 作业,则需要运行crontab -e
并编辑 crontab 文件。这将需要您使用命令行编辑器(默认情况下为 vi)。
cron 守护进程仅设置有限数量的环境变量,因此最好指定 java 可执行文件的完整路径。您还需要指定可执行 JAR 文件的完整路径。
我假设您想要收集java -jar
命令的输出,因此我在命令中添加了一个日志文件。命令的输出和错误流将被重定向到此日志文件,该文件将使用时间戳命名(例如,monitor-2018Nov03-200000.log)。
一旦一切设置完毕,您应该监视 cron 作业的前一两次执行。如果一切正常,您就可以让它继续运行。
作为外部参考,这里有关于 cron 作业的介绍。这应该可以帮助您了解调度的实际工作原理。
https://www.howtoforge.com/a-short-introduction-to-cron-jobs
答案2
cron 是 Linux 的内部作业调度程序。它有助于安排命令在特定的时间间隔或日期时间运行。
crontab -e
在终端上输入添加这一行
0 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
保存并退出
crontab语法如下
00 */2 * * * path/to/java -jar path/to/mymonitoringtool.jar
第 0 分钟 每个第 2 小时 每天 每个月 每个工作日 run-this-command