LINUX.ORG.RU

Как проверить, обновился ли файл на сервере?

 ,


0

1

Привет, ЛОР

Как проверить, обновился ли файл на серваке/сайте по первым каким-то буквам в имени файла (версия может поменяться) ?

Имеем: https://repo.com/package-1.10.tar.gz

Какой командой проверять периодически, если вдруг появится ВМЕСТО него новый файл package-1.11.tar.gz ?

curl, wget умеют такое?

Чтобы можно было что-то типа такого:

команда -i package-*.tar.gz

и она тебе выдает список файлов, которые подходят под маску package-*.tar.gz.

Мм?

★★★★★

Последнее исправление: Gonzo (всего исправлений: 1)

Во-первых, когда вместо https://repo.com/package-1.10.tar.gz появился https://repo.com/package-1.11.tar.gz, на него указывает https://repo.com/package-latest.tar.gz, ЕВПОЧЯ.

Во-вторых, можно проверять дату, если ничего лучше нет.

Ну и существуют специфичные для сайтов решения. В целом на эту тему можно почитать, например, тут: https://wiki.debian.org/debian/watch

anonymous
()

Если сервер в заголовках ничего явно не отправляет я бы качал и проверял хэш. Соответственно хэш тоже где-то хранить (хотя бы последнее значение).

Ps не так задачу прочитал, не слушай меня)

frunobulax ★★★
()
Последнее исправление: frunobulax (всего исправлений: 1)

если вдруг появится ВМЕСТО него новый файл package-1.11.tar.gz

Если это реальная репа, то есть утилиты, которые показывают последнюю версию пакета в репе. И да, у тебя в вопросе «обновился», но реально нужно проверять, что создался новый файл.

goingUp ★★★★★
()

если файл меняет имя, то только мониторить список файлов.
в фтп есть решение, но фтп депрекейтнули.
в rsync есть функция получения списка файлов удаленной диры. rsync –list-only

если файл обновляется с одним и тем же именем к примеру package-latest.tar.gz, то можно использовать опцию wget
-N, –timestamping не загружать повторно файлы, только если они не новее, чем локальные.

pfg ★★★★★
()
Последнее исправление: pfg (всего исправлений: 2)
Ответ на: комментарий от pfg

мониторить список файлов

Вот да, что-то типа такого было бы отлично просто:

команда -i package-*.tar.gz

и она тебе выдает список файлов, которые подходят под маску package-*.tar.gz.

Gonzo ★★★★★
() автор топика
Ответ на: комментарий от pfg

Да, пожалуй, буду так (как выше подсказал @goingUp):

wget --spider repo.com/package-1.10.tar.gz

Потому что там нет никаких иных указателей больше, только свалка файлов.

О, а можно с rsync –list-only использовать какой-нибудь * , зная только первое слово в имени файла?

Gonzo ★★★★★
() автор топика