【问题标题】:Giving credentials for a url in cron job在 cron 作业中为 url 提供凭据
【发布时间】:2012-03-20 06:34:29
【问题描述】:

我需要编写一个每天访问一次 url 的 cron 作业。问题是这个 url 需要身份验证。如何通过 cron 作业进行身份验证并点击 url?

谢谢

【问题讨论】:

  • 你用的是哪个http客户端?
  • 这是“HTTP 身份验证”还是常规登录?如果是 HTTP 身份验证,则使用 wget --http-user=foo --http-passwd=bar example.com/page.html
  • 嗨亚当,它只是一个drupal(PHP)的常规登录。

标签: linux cron crontab


【解决方案1】:

然后写一个脚本,例子来自wget手册

# Log in to the server.  This can be done only once.
wget --save-cookies cookies.txt \
--post-data 'user=foo&password=bar' \
http://server.com/auth.php

# Now grab the page or pages we care about.
wget --load-cookies cookies.txt \
-p http://server.com/interesting/article.php

然后从用户 cron 或系统 cron 调用此脚本。

【讨论】:

  • 感谢 Jasonw,我收到一个错误“发送的 HTTP 请求正在等待响应 403 被禁止”我也使用 firefox 尝试过,但仍未解决。我使用它就像“wget -U firefox -r -np --save-cookies cookies.txt \ --post-data 'user=foo&password=bar' \ server.com/auth.php
  • 字段用户和密码必须与服务器中的登录表单字段匹配。该用户代理有效吗?请获取有效的用户代理。为什么在登录时需要 -r 和 -np?您还必须确保将请求提交到正确的路径。我会假设表单操作 url。
【解决方案2】:

如果您想要一个有用的答案,您需要回答 Adam 的问题:“这是 'HTTP authenication' 还是常规登录?”(虽然我不知道他所说的“常规登录”)。

Jasonw 的回答是不太可能奏效。

亚当对wget --http-user=foo --http-passwd=bar http://... 的回答是您最好的选择。事实上,鉴于“403”返回码,我愿意打赌它你需要的答案。

【讨论】:

  • OP 问题是三个不涉及代码的语句。对我来说,听起来 OP 想要一个关于如何集体解决这个问题的总体思路。这就是我要回答的。现在,我希望 OP 可以详细说明他的问题并阅读 wget 手册以了解各种身份验证方法,而不是给出具体的操作命令。
猜你喜欢
  • 2020-03-12
  • 2018-09-23
  • 2021-03-25
  • 2021-02-15
  • 1970-01-01
  • 2013-10-16
  • 2017-05-11
  • 2017-02-27
  • 2015-09-27
相关资源
最近更新 更多