В вашей версии скрипта есть две основные проблемы:
SMB обычно требует аутентификации; первая ошибка, которую вы получите, «curl: (67) login denied») означает, что это не удалось в вашем случае. Обратите внимание, что даже если клиент уже прошел проверку подлинности на сервере и смонтировал соответствующую папку,
curl
он попытается установить собственное подключение к серверу и загрузить через него файл. Вам нужно либо поместить файл где-нибудь в гостевой доступ (HTTP-сервер, вероятно, проще, чем SMB), либо найти другой способ передачи его клиенту.ARD на самом деле вариант здесь; Вы можете использовать его опцию «Копировать элементы» (в меню «Управление» или кнопку «Копировать» на панели инструментов), чтобы скопировать файл с административной станции на клиенты, а затем запустить сценарий установки как отдельный шаг. Кроме того, ARD может копировать целые структуры папок, поэтому вам не нужно отправлять ZIP-файл, а затем расширять его на каждом клиенте; просто отправьте расширенную папку.
Кстати, есть еще одна проблема с этой
curl
командой: в имени файла есть пробел, который должен быть заключен в кавычки или экранирован, чтобы он обрабатывался как один URL с пробелом, а не как два отдельных URL.Файл выглядит как «Samanage_Agent_1.1.72_1.1.37_203_30_installer», но у вас есть команда, чтобы разархивировать файл с именем «samanage.zip». Либо измените имя файла, который вы загружаете / отправляете, на samanage.zip, либо измените
unzip
команду, чтобы она соответствовала действительному имени.Другая проблема (которая также есть в оригинальном сценарии) заключается в том, что он вслепую проходит все этапы, даже если один из них завершается неудачей на полпути. Например, в этом случае
curl
команда завершилась неудачно, поэтому даже если имя файла было правильным, ничего бы не былоunzip
, поэтому попытка запустить расширенный файл не могла бы сработать ...Если у вас нет более сложного сценария, который может восстанавливаться после ошибок, обычно лучше иметь сценарий выхода, а не пытаться продолжить. Вы можете сделать это, либо добавив команду
set -e
в начале скрипта, либо присоединив команды&&
вместо;
.&&
Опция также позволяет добавить обработчик ошибок с||
:cd /Users/Shared && curl -k -O https://server.hostingyourfiles.com/samanage.zip && unzip samanage.zip && /Users/Shared/samanage/Samanage_Agent_*.app/Contents/MacOS/installbuilder.sh --mode unattended && rm -rf /Users/Shared/samanage/ || echo "Installation failed on $HOSTNAME"