Как узнать, загружен ли файл wget?

Я использую wget для загрузки файлов (большинство из них – zip-файлы) автоматически для меня в течение ночи.

Однако иногда утром я обнаружил, что несколько файлов нельзя распаковать. Я не знаю, почему это происходит, возможно, что-то не так с удаленным сервером.

Я хочу написать скрипт для периодического тестирования zip-файлов в папке загрузки с помощью «unzip -t», но я не хочу тестировать файлы, которые загружаются. Итак, как я могу определить, используется ли файл wget ?

3 Solutions collect form web for “Как узнать, загружен ли файл wget?”

Вы можете использовать fuser , или lsof .

 fuser foo.zip 

Результат выглядит так:

 $ fuser archlinux-2013.02.01-dual.iso /home/chris/archlinux-2013.02.01-dual.iso: 22506 $ awk -F'\0' '{ print $1 }' /proc/22506/cmdline wget 

Измените скрипт загрузки, чтобы загрузить файлы во временное имя или каталог, а затем переместите результат при завершении загрузки. Это более устойчиво, чем попытка обнаружить, что wget все еще работает; в частности, если wget прерван (например, перезагрузкой), вы не рискуете ошибочно принять частичный файл для полной загрузки. Кроме того, обязательно проверьте статус возврата wget. Скорее всего, ваши сломанные файлы на самом деле усекают файлы в результате прерывания загрузки.

 cd incoming && wget http://example.com/foo.zip && mv foo.zip .. 

Вы можете использовать lsof для проверки того, открыт ли файл какой-либо программой.

 for FILE in /path/to/files/*.zip do if [ -z "$(lsof $FILE)" ] then unzip $FILE fi done 

или что-то подобное

  • невозможно извлечь файл, который загружается на FTP-сервер
  • Отправка zip-файла, содержащего простой текстовый файл по электронной почте
  • Кодирование кириллических имен файлов в zip-файлах
  • Как сжать файлы на основе даты файла
  • Как перенаправить unzip -v вывод в файл журнала в сценарии оболочки
  • Распакуйте все файлы в директории с тем же именем
  • Неоднократно застегивая файл, который был недавно создан, но идентичен, однако shasum zip продолжает меняться
  • Выборочно извлекать файлы из .zip-архива из командной строки
  • Скопировать файл из одной ZIP в другую?
  • Как я могу сделать zip, указав каталог?
  • Почему параметр -x exclude в zip, по-видимому, не исключает путь?
  • Какой язык сценариев я могу использовать для автоматизации процесса конкатенации и копирования?
  • Linux и Unix - лучшая ОС в мире.