在我的服务器上,我有每个午夜运行的脚本(使用cronjob),并下载一个包含来自url的csv文件的zip文件。 csv文件每天更新。 以下是我的(简单)脚本:
#!/usr/bin/env bash rm -f /home/croaz/public_html/tmp/flatfile_rom_air.* wget --no-cache --user user_name --password password http://www.url.com/DownloadArea/ROM/flatfile_rom_air.zip -P /home/croaz/public_html/tmp/ && unzip flatfile_rom_air.zip -d /home/croaz/public_html/tmp/
但是,我得到一个非常奇怪的行为。 当压缩包中包含更新的csv文件时,解压缩(csv)文件与第一次运行脚本(几个月前的几个脚本)时相同。 它的行为像解压缩将使用一些csv文件的caching副本。 如果我从我的本地PC上的服务器上下载zip压缩文件,并在那里解压缩,那么所有东西都可以正常工作(我得到更新后的文件)。 我错过了什么?
你真的看了看目录,看看里面有什么吗?
默认情况下, wget不会覆盖现有的文件,而是在名称( index.html.1等)后附加一个数字,所以你的脚本只是一遍又一遍地使用旧文件。 使用-O选项来指定输出名称并防止出现这种情况。
你是否检查过,运行cronjob的用户对目录/文件有写权限,这样rm和wget实际上可以删除/写入文件?