我目前正在使用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
那会有用吗?它会检查本地文件夹中的所有当前文件名,查看什么是新的,然后下载并仅覆盖新的文件名?此外,是否存在下载远程服务器上部分上传文件的危险?
我知道服务器之间的某种文件同步脚本是更好的选择,但设置起来看起来都很复杂。
非常感谢!
答案 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