我是 shell 脚本的新手。
我正在尝试以某种方式 cron 一项工作,该工作将获得一个 url 一次以触发任务,并在每 2 分钟后获取另一个 url 以保持任务有效。
到目前为止,我已经设法让第一个 url 正常工作,问题在于第二个 url wget 每 2 分钟重复 1 小时。
我已经尝试在 .sh 脚本中包含 cron,因为我在其他地方看到了建议,比如
*/2 * * * * wget $url
但终端只是将它抛出一个错误“没有这样的文件或目录”。
这样做的最佳方法是什么?
正如@Fiximan 和@steeldriver 建议的那样,另一种选择是
wget
循环运行1 小时:请注意,包含此代码的脚本必须使用
#!/bin/bash
,而不是运行#!/bin/sh
。在脚本文件 (.sh) 中,您可以创建一个循环运行 1 小时(3600 秒),暂停 2 分钟(120 秒)。
我把
wget
命令作为它运行的最后一件事,这样它就不会在运行最后一个wget
命令后等待额外的 2 分钟。该行
*/2 * * * * wget $url
应放入您的 crontab 以使其工作。您应该首先输出您当前的 crontab,将该行附加到它并将其安装为新的 crontab。它可以做到,例如。使用以下命令:
如果当前没有定义crontab,第一个命令可以在 stderr 上输出“no crontab for username
/dev/null
”,为避免这种情况,您可以将 stderr 重定向到这样:请注意,运行上述行将导致操作永远
wget
重复,即。直到您从 crontab 中手动删除它。如果您希望它在 1 小时后自动删除,您必须创建一个作业,该作业将在 1 小时后从您的 crontab 中删除:at
wget