从上午8:00到晚上8点运行脚本,如果没有结束,请在晚上8:00将其删除

时间:2014-07-03 13:49:09

标签: postgresql cron

我尝试模拟连接SQL Server并从中选择数据的企业客户端。现在,我设法在Windows 7上设置了postgres并编写了一个脚本,从远程机器的服务器中选择一些数据:

#!/bin/bash

data="$(psql -h 10.0.0.2 -d test -U postgres -c $'SELECT * FROM tablename;')"
#echo $data

另外,我使用time命令测量时间。

我现在需要的是能够在早上8:00运行脚本并在晚上8:00停止它(它应该整天工作)。在晚上,服务器什么都不做(脚本没有运行),第二天,我需要在给定的天数内反复运行它。

我前一段时间和cron一起玩过,这似乎是一个很好的解决方案,但最大的担忧如下:让我们说,我在上午8点运行脚本但是它将在上午9点完成 - 我怎么能知道在没有中断的情况下再次运行它来模拟一整天的流量会有多长时间?请注意,我不知道选择数据需要多长时间 - 数据的内容对我来说并不重要,我只需要选择它们,而这只是全部。

1 个答案:

答案 0 :(得分:1)

你可以在这样的脚本中包装你的cronjob,并调用它像psql_load_runner:

#!/bin/bash

while [ 1 ]
do
  data="$(psql -h 10.0.0.2 -d test -U postgres -c $'SELECT * FROM tablename;')"
  #echo $data
done

然后将其设置为每天运行08:00 - 它将保持整天循环,这似乎符合您的要求。

然后又有另一个你每天20:00运行的cron作业,这个作业只能用killall -9 psql_load_runner

这样的命令来解决这个问题。