考虑一台运行 SMTP 服务器的简单 FreeBSD 机器 - 我如何自动验证它是否在做正确的事情(例如,接受某些收件人的传入 SMTP 连接,并将邮件放入某些 Maildir 中)?
我们已经使用了服务器监控软件(在这个 cas 中,Nagios),当然我们也进行了手动测试,但我想知道:是否有一些通用的方法可以对服务器服务运行自动功能测试?
我正在考虑的一个例子:当重新配置我们的服务器时(这通常发生在 VM 内以进行测试),我正在考虑
我想能够为其他服务执行一系列这样的测试(例如测试可以创建备份,测试 IMAP 服务器接受某些用户的连接并列出正确的邮件)可能对测试配置更改有用,或者用于验证恢复的系统备份是否按预期工作。
您可以使用Expect与服务交互,例如
#!/usr/bin/expect -f
set timeout 1
spawn telnet localhost 25
expect "220 *"
send -- "helo localhost\n"
expect -- "250*Hello\ localhost*"
send -- "mail from: root@localhost\n"
expect -- "250\ OK"
send -- "rcpt to: root@localhost\n"
expect -- "250\ Accepted"
send -- "data\n"
expect -- "354*"
send -- "functional test\n.\n"
expect -- "250\ OK*"
send -- "quit\n"
expect "221*closing\ connection"
Run Code Online (Sandbox Code Playgroud)
像这样调用上面的内容
/path/to/expect.script | grep -q "250 OK"
if [ $? = 0 ]
then
echo "Message queued successfully"
else
echo "Message Failed to queue"
Run Code Online (Sandbox Code Playgroud)
然后,您可以继续查看邮件是否已正确传递到邮件池或 Maildir 或其他位置。您可以更改您选择的远程主机的 localhost,尽管这会使交付检查变得复杂,但您始终可以使用 Expect 来登录 - 这是一个非常强大的工具。
归档时间: |
|
查看次数: |
620 次 |
最近记录: |