我在cron作业中使用wget每分钟将一个.jpg文件提取到一个Web服务器文件夹中(每次使用相同的文件名,覆盖).该文件夹是"实时"的,因为Web服务器也从那里提供该图像.但是,如果在获取图像的过程中有人浏览该页面,则会将其视为带有错误的jpg,并在浏览器中这样说.所以我需要做的是,类似于Firefox下载文件时,wget应该写入临时文件,在/ var或目标文件夹中但是使用临时名称,直到它具有整个内容,然后重命名为原子(或至少可忽略的持续时间)步骤.
我已经阅读了wget手册页,但似乎没有一个命令行选项.我错过了吗?或者我需要在我的cron作业中执行两个命令,一个wget和一个移动?
单纯使用 GNU Wget 是无法做到这一点的。
wget的工作是下载文件,它就是这样做的。一个简单的一行脚本就可以实现您想要的:
$ wget -O myfile.jpg.tmp example.com/myfile.jpg && mv myfile.jpg{.tmp,}
Run Code Online (Sandbox Code Playgroud)
由于mv它是原子的,至少在 Linux 上,您可以获得就绪文件的原子更新。
| 归档时间: |
|
| 查看次数: |
1085 次 |
| 最近记录: |