我运行一些脚本从数据库中提取数据的几个服务器帐户可用的工具非常有限,其中一些帐户不允许(即使是正式请求)使用 cron,那么,您能否推荐任何我可以用来安排脚本执行的工具(就像 cron 一样)?
提前致谢 :)
更新 1:是的,我指的服务器是 Linux、HP-Ux 和 Solaris,Bash > 3.x 可用。
答案1
如果您被允许从带有 Cron 的服务器进行 SSH,那么您可以远程启动定期作业。
答案2
那么,在无限循环中,使用后台、无 hup 的脚本,最后以 sleep 结束,怎么样?
例子:
$ cat runme.sh
#!/bin/bash
while true; do
echo "Do useful stuff here"
sleep 86400
done
$ nohup ./runme.sh &
这将每天打印一次“在这里做有用的事情”。
答案3
ktower 的建议是可行的,我想不出更好的方法,但如果你有真正的选择,它不会是你选择的解决方案。我能给出的最佳建议是将其全部转移到提供所需工具和设施的主机上。变通方法通常会造成比解决的问题更多的问题。有如此多的托管服务提供商可供选择,真的没有理由满足于临时解决方案。
答案4
补充 ktower 的答案。如果您必须走那条路线,并且需要更频繁的间隔(即每 5 分钟运行一次),您会看到时间上的一些漂移。为了尽量减少这种情况,您可以使用类似这样的行(假设您使用的是 linux)
sleep $((60 - `date +%s` % 60))
其中“60”是您想要等待的秒数。