我想CustomLog
在我的 apache 配置中添加一个指令来记录请求的完整 URL(或至少是 URL 的主机部分)。我有几个域由同一个 apache 实例处理,并且希望能够区分日志中的域(现在我看到的只是“GET /”)。我在 LogFormat 的文档中看到它列出%U
了打印 URL 的路径部分,但我正在寻找主机。
我想使用curl
向 URL 发送 HTTP HEAD 请求以验证它是否正常工作(服务器已启动并发送成功响应)。最后,我需要返回的最终 HTTP 响应代码和 URL(在遵循任何重定向之后)。最后,我需要设置一个硬超时(一段时间后调用将失败,无论请求curl
位于何处)。
是否curl
支持这一切?我需要使用哪些选项来完成此操作?
我与发布另一个问题的人处于完全相同的情况,我试图通过网关服务器建立 ssh 连接,而不必 ssh 进入网关并从那里再次手动 ssh 到目标服务器。我正在尝试设置那里接受的答案中给出的解决方案,~/.ssh/config
其中包括:
host foo
User webby
ProxyCommand ssh a nc -w 3 %h %p
host a
User johndoe
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试时ssh foo
,我的连接会保持活动状态 3 秒,然后因Write failed: Broken pipe
错误而终止。删除该-w 3
选项可以解决问题。-w 3
在原始解决方案中这样做的目的是什么,为什么Broken pipe
在我使用它时会导致错误?省略它有什么害处?
我正在使用 curl 请求使用以下Location:
行重定向到不同 URL 的 URL :
Location:/path/to/resource#name
Run Code Online (Sandbox Code Playgroud)
据我了解,根据 HTTP 规范,重定向响应中的那一行是无效的,因此整个 curl 调用失败是可以理解的(在这种情况下,响应代码为 400)。但是,使用 wget 或 Web 浏览器请求 URL 会成功呈现页面(我假设通过在重定向之前填充绝对路径或删除锚标记的启发式方法)。
有什么我可以做的让 curl 做同样的事情(做成功跟随重定向所必需的事情,即使它是“正式”格式错误的)?
编辑:更多细节。最终的响应代码是 400(不是 404 或其他)。当我做一个HEAD请求(有curl -I -L
),我得到一个302 Found
(有Location: /Error
)重定向到500 Server Error
。但是,如果我执行常规请求(没有-I
选项但有-L
选项),我会得到http_code
(在 curl 中--write-out
)的400
. 因此,在这种情况下,HEAD 请求的功能似乎与标准 GET 不同。
我在 Windows 服务器上运行一个软件,通过远程 SMTP 服务器发送电子邮件通知。它有很少的配置选项,并且只支持没有 SSL/TLS 的基本 SMTP 身份验证。我在 Debian 服务器上运行 exim4,该服务器将成为此 Windows 程序的 SMTP 服务器。它使用默认配置进行设置,并允许 AUTH PLAIN 和 AUTH LOGIN 未加密连接。我已经通过 telnet 成功发送了一封电子邮件:
telnet servername 25
ehlo test
250-AUTH PLAIN LOGIN
...
auth plain XXX
235 Authentication succeeded
mail from: ...
...
Run Code Online (Sandbox Code Playgroud)
但是,我要连接到此服务器的程序无法连接。为了了解原因,我在连接期间运行了数据包嗅探器,并查看以下会话:
C: HELO hostname
S: 250 Hello hostname
C: AUTH LOGIN XXX | XXX
S: 503 AUTH command used when not advertised | 500 unrecognized command
C: QUIT
S: 221 closing connection
Run Code Online (Sandbox Code Playgroud)
我对 SMTP 协议不够熟悉,无法理解这里发生了什么。我需要在我的 exim4 SMTP …
我正在使用 rsync 将目录同步到 USB 安装的设备。该设备随myuser:root
所有权自动挂载。当我使用 rsync 我的目录(具有myuser:myuser
所有权)时-a
,我收到许多以下错误:
rsync: chgrp "filename" failed: Operation not permitted (1)
Run Code Online (Sandbox Code Playgroud)
我尝试--no-g
在-a
选项之后添加(因为在这种情况下我不关心设置组),但错误仍然存在。我需要做些什么来阻止 rsync 尝试chgrp
一切?
我在 Windows 上有一个程序,它通过远程 SMTP 服务器发送电子邮件,但它失败了,并显示了一条不明确的“无法连接”错误消息,没有日志或其他关于失败原因的信息。我已经测试了 SMTP 服务器并确认它使用相同的凭据工作。
该程序使用明文登录服务器,因为它不支持 SSL/TLS,所以 SMTP 连接应该以明文形式传输。是否有一种简单的方法可以使用数据包嗅探器来监视尝试的连接,以准确查看正在发送的内容(以发现连接失败的原因)?