На моем сервере у меня есть скрипт, который запускается (используя cronjob) каждую полночь и загружает zip-архив, содержащий файл csv с URL-адреса. Файл 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. Если я загружу zip-архив со своего сервера на локальный компьютер и разархивирую его там, все будет работать, как должно (я получаю обновленный файл). Что мне не хватает?
Вы действительно заглядывали в каталог, чтобы увидеть, что там?
По умолчанию, wget
не будет перезаписывать существующие файлы, а вместо этого добавит число к имени (index.html.1
и т.д.), поэтому ваш сценарий просто использует старый файл снова и снова. Использовать -O
возможность указать имя вывода и предотвратить это.
Вы проверили, что у пользователя, запускающего задание cron, есть права на запись в каталог / файлы, чтобы rm
и wget
может реально удалить / записать файлы?