在我的服务器上,我有一个脚本,该脚本每天午夜运行(使用 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/
但是,我遇到了一个非常奇怪的行为。虽然 zip 包包含更新的 csv 文件,但解压后的 (csv) 文件与我第一次运行脚本时(几个月前)的文件相同。它的行为就像解压会使用 csv 文件的一些缓存副本一样。如果我从本地 PC 上的服务器下载 zip 存档,然后在那里解压,一切都会正常进行(我得到了更新的文件)。我错过了什么?
答案1
您是否实际查看过目录并查看其中的内容?
默认情况下,wget
不会覆盖现有文件,而是在名称后附加一个数字(index.html.1
等),因此您的脚本只是一遍又一遍地使用旧文件。使用该-O
选项指定输出名称并防止这种情况发生。
答案2
您是否检查过运行 cronjob 的用户是否对目录/文件具有写权限,以便rm
可以wget
实际删除/写入文件?