我正在尝试 wget 一个特定的 cacti 图形图像以便制作每日报告。我们有 cacti 网站的 htpasswd,我已为其添加了一个用户。我使用 wget 来--http-user/password
传递它。这是有效的,因为没有它,我就可以403 Authorization Required
返回。但是当我尝试 wget 图像时,我被重定向到 index.php。它在做什么?
我尝试在 wget 中将用户代理更改为与我的 Firefox 相同,但没有变化。我在 wget 中将 referer 设置为 cacti 页面,也没有变化。它在做什么?http auth 和 wget 有什么特别之处吗?
答案1
您可以使用 wget 命令传递 cookie 信息:
wget --help | grep cookie
--cookies=off don't use cookies.
--load-cookies=FILE load cookies from FILE before session.
--save-cookies=FILE save cookies to FILE after session.
答案2
从您的描述来看,您似乎已将 BasicAuth 应用于 Cacti 的内置授权机制之上。因此,通过提供授权,--http-user
您可以访问 Web 资源,但 Cacti 仍然不知道您是谁,因此它会将您重定向到登录页面。
你可能有两个选择:
- 向 wget 提供一个 cookie,以便其保持登录状态。
- 在设置下切换到“Web Basic Authentication”。
答案3
你可以设置 Cacti 定期预生成图表,然后将它们粘贴到你能找到它们。这样就避免了向仙人掌表明身份的问题。
转到:控制台 -> 配置 -> 设置 -> 图表导出
您可能希望导出到本地文件系统,然后将图表放在可以从中获取它们的某个位置。请注意,这似乎会同时生成所有图表,这可能会对您的系统产生重大影响(取决于您的系统和 cacti 安装的复杂性),并提供比您真正想要的更多的信息。
(这对于 cacti 0.8.7b 是正确的,而且我认为,更好的版本也是如此。)
答案4
我会先检查服务器日志(可能是 Apache),看看是否还有更多信息。您能向我们展示使用不同用户名和密码的命令吗?
哦,我没仔细看,抱歉。你确定图片不是在你请求时动态生成的吗?如果它们还不存在,链接将无效,apache 日志可能会显示这一点。