Доброе утро,
У меня есть специальное программное обеспечение, которое обновляется с помощью специального script.sh
.
Часть файла выглядит примерно так:
if [[ $software == A ]]
then
echo "downloading package..."
rm -rf test.zip >> SoftwareUpdate.log
wget --user admin --password "test" https://update.example.com/software/test.zip >> SoftwareUpdate.log
if test -f test.zip
then
echo "Performing Backup of Old software"
zip -r backup/test-$now.zip /var/www/html/* >> SoftwareUpdate.log
echo "Clearing out old software from folder html"
rm -rf software/* >> SoftwareUpdate.log
echo "Unziping new software"
unzip test.zip -d software >> SoftwareUpdate.log
echo "Overwriting / Applying update ..."
yes | cp -rf software/* /var/www/html/ >> SoftwareUpdate.log
echo "Changing permissions"
chown -R www-data /var/www/html/* >> SoftwareUpdate.log
else
echo "test.zip doesn't exist, please insure that update is available and try again"
fi
Я бы хотел иметь версии в файле имени, например:
test_1239. zip
или test_1531.zip
Программа должна проверить, является ли версия, доступная для wget, более новой, чем последняя загруженная им, и продолжить, если это правда.
Итак, сценарий Если онлайн-версия = test_1531.zip и последняя загруженная версия = test_1239.zip 1531 больше 1239, продолжите загрузку и обновление. {{1 }} Спасибо
Сохраните содержимое заголовка «Last-Modified» из последнего загруженного файла test.zip и добавьте заголовок «If-Modified-Since» в свой следующий запрос wget, используя дату строка, которую вы получили.
Сервер ответит 304, если нет более свежего test.zip.
В качестве альтернативы вы можете оставить test.zip в текущем каталоге, а затем, используя wget с параметром отметки времени (-N), загрузит test.zip только в том случае, если на сервере установлена более новая версия. Проверьте вывод wget, если он содержит «304 Not Modified» и «Omitting download», вы знаете, что можете пропустить контроль версий.