1

我想安排一个 shell 脚本每小时运行一次。为此,我试图从 acquia 服务器上的 cron 进行安排。

shell 脚本文件位于“docroot/scripts/script_name.sh”中。在命令选项中,我将命令指定为“/var/www/html/pllsrv2313.dev/scripts/script_name.sh”,但它不起作用。

4

2 回答 2

1

我认为shell脚本文件应该在“scripts/script_name.sh”中。

如果从 shell 文件调用 php 脚本,则需要使用 php 文件的整个路径,即使它位于同一目录中。

于 2016-05-14T02:13:15.823 回答
0

首先从登录您的盒子开始:

然后像@ScottA 提到的那样调用你的脚本:这次使用详细标志,即 -x。

sh -x /var/www/html/pllsrv2313.dev/scripts/script_name.sh

这将转储脚本运行或出错的所有内容。看看有没有什么不是你所期望的。

就我而言,在我的脚本中,我有一个未按计划进行的 curl 请求:

curl --silent --compressed http://dev.example.com/code.sh

所以我标记了我的 curl 调用 --verbose 以使其也转储:

curl --silent --compressed --verbose http://dev.example.com/ 

并称:

sh -x /var/www/html/example.dev/docroot/ex_scripts/my_script.sh

我回来说无法解析主机,因为我的开发域仅在我的 DNS 中可用。所以对我来说,问题是当 cron 运行时,我的 curl 无法对我的不可公开访问的开发域做。

...
+ curl --silent --compressed --verbose http://dev.example.com/
* getaddrinfo(3) failed for dev.example.com:80
* Couldn't resolve host 'dev.example.com'
* Closing connection #0
...
于 2015-10-26T17:58:30.353 回答