wget下载新的通配符文件并覆盖旧的通配符文件

时间:2014-12-15 10:37:27

标签: linux cron download ubuntu-12.04 wget

我目前正在使用wget从远程服务器下载特定文件。文件每周更新一次,但始终具有相同的文件名。例如,新上传 file1.jpg 将取代本地 file1.jpg

这就是我抓住它们的方式,没什么特别的:

wget -N -P /path/to/local/folder/ http://xx.xxx.xxx.xxx/remote/files/file1.jpg

如果它比本地版本新,则从远程服务器下载file1.jpg,然后用新版本覆盖本地版本。

麻烦的是,我每周都要为100多个文件执行此操作,并设置了cron作业以在特定时间触发100个不同的下载脚本。

有没有办法可以使用通配符作为文件名,并且只有一个脚本每5分钟触发一次?

像......那样的东西。

wget -N -P /path/to/local/folder/ http://xx.xxx.xxx.xxx/remote/files/*.jpg

那会有用吗?它会检查本地文件夹中的所有当前文件名,查看什么是新的,然后下载并仅覆盖新的文件名?此外,是否存在下载远程服务器上部分上传文件的危险?

我知道服务器之间的某种文件同步脚本是更好的选择,但设置起来看起来都很复杂。

非常感谢!

1 个答案:

答案 0 :(得分:0)

您可以在文本文件中逐个指定要下载的文件,然后使用选项-i--input-file传递该文件名。

e.g。内容list.txt

http://xx.xxx.xxx.xxx/remote/files/file1.jpg
http://xx.xxx.xxx.xxx/remote/files/file2.jpg
http://xx.xxx.xxx.xxx/remote/files/file3.jpg
....

然后

wget .... --input-file list.txt

或者,如果所有* .jpg文件都是从特定HTML页面链接的,则可以使用递归下载,即让wget跟随您页面上的链接到所有链接的资源。您可能需要限制"递归级别"和文件类型,以防止下载太多。有关详细信息,请参阅wget --help

wget .... --recursive --level=1 --accept=jpg --no-parent http://.../your-index-page.html