【问题标题】:Webpage monitoring script is returning false positives网页监控脚本返回误报
【发布时间】:2013-03-12 21:14:32
【问题描述】:

我正在尝试自动化一个以前需要全职工作的流程:监控一系列网站的新帖子。这似乎是一个相对简单的脚本问题,所以我解决了它,编写了一个 bash 脚本,并将其设置为在 crontab 中每分钟运行一次。它工作得很好,但是在页面更改后,它会在一个小时左右的时间里不断返回误报,我终生无法弄清楚为什么。一段时间后它会自行解决,但我不想部署脚本,直到我了解发生了什么。这是我的代码:

#!/bin/bash

SITENAME=example

wget http://web.site.url/apache/folder/$(date +%Y)/$(date +%m)-$(date +%B) -O $SITENAME.backend.new --no-cache 
touch $SITENAME.backend.old
diff $SITENAME.backend.new $SITENAME.backend.old > $SITENAME.backend.diff

if [ -s $SITENAME.backend.diff ]
then  sendemail -xu myaddress@mydomain.com -xp password -f myaddress@mydomain.com -t myaddress@mydomain.com -s smtpout.secureserver.net -u $SITENAME -m backend \
&& cp $SITENAME.backend.new $SITENAME.backend.old \
&& echo true

fi

【问题讨论】:

  • 你能显示 $SITENAME.backend.diff 包含的内容吗?
  • 几行 HTML,除了一些时间戳相差几个小时外,基本相同。嗯...您认为它们在多个服务器之间进行负载平衡吗?我会做一些测试。
  • 是的,看起来他们有多个运行相似但页面略有不同的服务器。它们在一台服务器上的链接是相对的,而在另一台服务器上则是绝对的。看起来我的连接大约每五分钟在这些之间切换一次。尽管页面发生了细微变化,但是否有人对使其工作的可能方法有任何想法?

标签: bash if-statement webpage crontab monitor


【解决方案1】:

如果差异之间的唯一区别是 absolute 或不是 absolute 链接,请考虑将 --convert-links 开关用于 wget,就像该人所说:

  -k
  --convert-links

下载完成后,将文档中的链接进行转换,使其适合本地查看。这不仅会影响可见的超链接,还会影响文档中链接到外部内容的任何部分,例如嵌入的图像、样式表的链接、非 HTML 内容的超链接等。

这会将链接转换为绝对链接。

【讨论】:

  • 哇,太棒了!谢谢!
猜你喜欢
  • 1970-01-01
  • 2015-11-18
  • 1970-01-01
  • 2012-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多