我正在为我的 YAMon 脚本开发一个安装程序,用于 *WRT 路由器(请参阅 http://www.dd-wrt.com/phpBB2/viewtopic.php?t=289324(。
我目前正在使用 DD-WRT v3.0-r28647 标准 (01/02/16( 的 TP-Link TL-WR1043ND 进行测试。像许多其他变体一样,此固件变体不包括curl
因此我(优雅地(回退到wget
调用。但是,DD-WRT似乎包括wget
的精简版本,因此无法识别-C和--no-cache选项。
长话短说,我的wget
电话坚持下载所请求文件的缓存版本。
顺便说一句 - 我正在使用:wget "$src" -qO "$dst"
其中src
是远程服务器上的源文件,dst
是本地路由器上的目标
到目前为止,我尝试过: 1. 在请求 URL 后附加时间戳 2. 重新启动路由器 3. 运行stopservice dnsmasq
startservice dnsmasq
没有人改变我仍在获取该文件的缓存版本的事实。
我把头撞在墙上...有什么建议吗?感谢!
铝
不是真正的答案,而是一个看似可行的解决方法......
经过大量的实验,我发现如果请求的文件的扩展名为".html",wget
似乎总是从远程服务器返回文件的最新版本;但如果它是其他东西(例如,".txt"或".sh"(,则不会。
我不知道为什么会发生这种情况或它们被缓存在哪里。
但是现在我这样做了,我的安装程序所需的所有文件在删除服务器上都有一个 html 扩展名,并且脚本将它们以适当的扩展名保存在本地。(叹...我生命中的几天我不会回来(
铝
我也有同样的概率。从相机获取图像时,相机上的HTTP服务器始终发送相同的图像。
wget --no-http-keep-alive ..
解决了我的问题
我的全线是
wget --no-check-certificate --no-cache --no-cookies --no-http-keep-alive $URL -O img.jpg -o wget_last.log