WGET 本地主机 0 字节

WGET 本地主机 0 字节

你好,我正在尝试使用 cron 在本地执行 wget,我的主机告诉我,由于本地环回,这不起作用?

我正在尝试以下命令:

wget -q -O /pathtofile/blah.xml "http://myurl/myfeed.php?id=26"

我在这里尝试做的是获取输出(rss)并将其作为 xml 保存在我的网络服务器上,我一直以来的做法是打开 url 并将源保存为 xml 并上传,所以我想自动执行这一操作。

错误文本:

--12:38:58-- http://www.myurl.com/mydir/myfeed.php?id=26
=> `myfeed.php?id=26'
正在解析 www.myurl.com…myip
连接到 www.myurl.com|myip|:80... 失败:连接被拒绝。

我能做些什么来实现这个目标?

答案1

您也可以尝试使用 --bind-address 选项。

  --bind-address=ADDRESS
       When making client TCP/IP connections, bind to ADDRESS on the local machine. ADDRESS may be specified as a hostname or IP
       address.  This option can be useful if your machine is bound to multiple IPs.

并绑定到外部IP,而不是本地IP。

答案2

如果您可以修改myfeed.php以采用命令行变量以及 $_POST/$_GET,那么您可以从 cron 执行 PHP:

php /path/to/myfeed.php --id=26

这里有关将参数传递给命令行 PHP 的更多信息。

您需要在文件顶部执行如下操作:

define('CLI', php_sapi_name() == 'cli');

if(CLI){
   $input =& $argv;
}else{
  $input =& $_POST;
}

if(isset($input['id'])) // etc...

答案3

如果满足以下条件,它将起作用:

  1. 您的 Web 服务器正在监听本地接口;并且
  2. 您的 /etc/hosts 文件有指向本地 IP 的 www.myurl.com。

否则,它将失败。如果您可以执行netstat -untap并确认您的 Web 服务器正在本地接口上侦听,它应该可以工作。

相关内容