Перезапустите локальный скрипт из URL-адреса, доступного исходному коду?

У меня длинный скрипт (> 500 строк), который я загружаю при каждой загрузке веб-страницы из локального файла. Исходный код этого скрипта часто обновляется и отображается под определенным URL-адресом, чтобы все пользователи могли обновлять свои локальные файлы, содержащие его (потому что многие предпочитают загружать его локально).

Не обновляя этот скрипт, вы часто подвергаете мой сайт нарушениям безопасности, но вместо копирования и вставки данных каждый раз, когда новый для обновления, я хочу перезагрузить его в свой локальный автоматически с помощью задачи Cron (скажем 0 0 1 * 0 ).

Есть ли способ в Unix, чтобы скопировать и вставить все данные из сценария, доступного URL, в локальный файл сценария?

Я предполагаю, что это будет включать переписку вроде << EOF > ... EOF Но на этот раз не из моего собственного локального стандартного ввода в приглашении Bash, а скорее из удаленного файла.

One Solution collect form web for “Перезапустите локальный скрипт из URL-адреса, доступного исходному коду?”

Есть как минимум два возможных способа сделать это:

Способ 1 – Использовать завиток в работе cron:

Используйте curl (установите его, если он еще не установлен). curl загружает файлы с использованием любого из обычного протокола – HTTP, HTTPS, FTP. Вы можете использовать curl в задании cron для периодической загрузки новой копии скрипта. Используйте man curl для получения информации о вызове.

 curl -o /path/to/script http://www.example.com/script 

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

Способ 2 – Использовать сценарий Wrapper:

Напишите оболочку, которая загружает сценарий, если это необходимо, а затем exec s или вызывает его (в зависимости от языка сценариев). Примером является Bash, так что логика легко понятна; для других языков сценариев вам придется адаптироваться. Например, предположим, что локальный скрипт называется real-script а URL-адрес – http://www.example.com/real-script . Оберткой может быть wrapper-script :

 #! /bin/bash if [ -f /path/to/real-script ] ; then # Local copy exists, download only if remote file is newer curl -z /path/to/real-script -o /path/to/real-script http://www.example.com/real-script else # Local copy does not exist, always download curl -o /path/to/real-script http://www.example.com/real-script fi chmod 755 /path/to/real-script exec /path/to/real-script "$@" 

Вызовите этот скрипт-оболочку так, как если бы это был настоящий скрипт; оболочка загрузит реальный скрипт, если локальная копия отсутствует или местная копия старше удаленного файла; то он будет выполнять гарантированную новую копию, передавая любые аргументы.

Вы также можете избежать поиска более новой версии, если существующая локальная копия не превышает 5 минут или любой временной интервал, который вы разрешаете.

Обратите внимание, что при использовании этого метода в производстве, вероятно, потребуется некоторая проверка ошибок.

  • Терминал - создание гиперссылок
  • Любой способ кодирования url в команде curl?
  • Как правильно перемещать веб-ссылки из моего браузера в папку с помощью перетаскивания в Debian с помощью KDE? (названия страниц не показаны)
  • Получить URL-адрес перенаправления с помощью завитка
  • Сохраните команду ../../../ в команде wget
  • Отредактируйте один URL-адрес
  • Как я могу сделать веб-сервер переадресации, который изменяет входящий порт на 80?
  • Как связать URL-адреса файлов?
  • Что не так с обработкой URI в Linux Mint?
  • Firefox отбрасывает URL-адрес, когда время подключения к серверу или неудача
  • Скажите wget, чтобы он не попадал в URL-адрес, соответствующий шаблону?
  • Interesting Posts

    Unix-система с вредоносным ПО

    SSH: «Permission denied» после изменения оболочки пользователя

    Как определить количество страниц документов djvu из CLI?

    Найти и удалить все временные файлы в каталоге пользователя

    Разделение файлов в Unix с использованием значений в файле

    Строка строк вложения для первых двух столбцов равна

    Скрипт для сравнения «размер файла» с «фамилией файла», и если непревзойденное удаление файла

    Разница между «ping» и «wget» в отношении разрешения имени хоста

    Что делать, если вы случайно удалите / var / spool / mqueue

    Не удается обойти экран входа с правильными учетными данными и никаких ошибок в Kali Linux

    Родитель, перезапущенный дочерним элементом, не отвечает на CTRL-C

    Должно ли мое / usr / local / bin быть 700 разрешений?

    Bash: опрос на создание файла и завершение, если выходы

    Как периодически очищать файлы журналов?

    Как запустить автозаполнение без клавиши табуляции?

    Linux и Unix - лучшая ОС в мире.