我正在尝试使用wget自动下载文件并从cron调用php脚本,文件名始终由文件名和日期组成,但日期会根据文件上载的时间而变化。问题是文件何时更新是不确定的,因此在检查目录之前永远不会知道最终名称。
示例文件名是file20100818.tbz
我尝试在wget中使用通配符,但它们都失败了,都使用了*和%
提前致谢,
格雷格
答案 0 :(得分:3)
假设文件类型是常量,那么从wget
手册页:
您想要从中下载所有GIF HTTP服务器上的目录。您 试过wget http://www.server.com/dir/ *。gif,但是 因为HTTP而无效 检索不支持globbing。 在这种情况下,请使用:
wget -r -l1 --no-parent -A.gif http://www.server.com/dir/
因此,您希望使用-A
标志,例如:
wget -r -l1 --no-parent -A.tbz http://www.mysite.com/path/to/files/
答案 1 :(得分:1)
为了清楚起见,因为在搜索“wget and wildcards”时这个帖子出现在谷歌搜索中,并且因为上面的答案没有带来敏感的解决方案而且似乎没有 SO 上的任何其他内容回答:
根据wget手册,您可以在使用 ftp 并使用选项-g on (--glob=on)
时使用通配符,但{{1}除非您使用所有wget
选项,否则将返回错误。感谢Wiseman20@ubuntuforums向我们展示了方式。
<强> Samplecode:强>
-r -np -nd
答案 2 :(得分:0)
您可以像这样循环每个日期:
<?php
for($i=0;$i<30;$i++)
{
$filename = "file".date("Ymd", time() + 86400 * $i).".tbz";
//try file download, if successful, break out of loop.
?>
您可以增加for循环的尝试次数。