Linux 服务器上的Shell脚本调度

Linux 服务器上的Shell脚本调度,linux,shell,drupal-7,cron,acquia,Linux,Shell,Drupal 7,Cron,Acquia,我想安排一个shell脚本每小时运行一次。为此,我试图从Acquire服务器上的cron进行调度 shell脚本文件位于“docroot/scripts/script\u name.sh”中。在命令选项中,我以“/var/www/html/pllsrv2313.dev/scripts/script_name.sh”的形式给出了命令,但它不起作用。首先从登录到您的框开始: 然后像@ScottA提到的调用脚本一样:这次使用-x的verbose标志进行调用 sh -x /var/www/html/pl

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


shell脚本文件位于“docroot/scripts/script\u name.sh”中。在命令选项中,我以“/var/www/html/pllsrv2313.dev/scripts/script_name.sh”的形式给出了命令,但它不起作用。

首先从登录到您的框开始:

然后像@ScottA提到的调用脚本一样:这次使用-x的verbose标志进行调用

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时,它无法对我的非公共可访问dev域执行操作

...
+ 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
...

我认为shell脚本文件应该在“scripts/script\u name.sh”中


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

能否提供shell脚本?如果不看一下代码,我们就无法知道什么不起作用。您是否能够让脚本在本地或Acquia服务器上工作?SSH连接到acquia服务器,并运行命令“sh/path/to/shell/script.sh”,查看直接执行该命令是否有效。下面是关于在cron作业中使用shell脚本的附加文档:我想我是通过反复试验才发现这一点的。那是很久以前的事了。我认为您不希望docroot中的脚本被用户恶意或意外地访问,而php文件的路径在我给出绝对路径之前对我不起作用。