Я нахожусь в ситуации, когда мне очень поздно сообщили, что у программы, которую мы используем для отслеживания запасов, будет EOL 31 октября. У нас есть около 400 компьютеров Mac, где мы должны удалить старую версию (не обязательно, но правильно) и установить самую новую. Я хочу использовать ARD для этого (Apple Remote Desktop), но сначала нужно, чтобы скрипт работал.

Jampf не вариант из-за стоимости. Я не Mac-человек, и я обнаружил, что пакетные файлы специально предназначены для Windows. Ниже приведен скрипт, который был предложен на форумах. У меня есть файл, сохраненный на сетевом ресурсе. Я покажу предложенную команду Unix и ту, которую пытаюсь использовать с очевидными заменами.

  • Предложено: 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/

  • Мой: cd /Users/Shared/ ; curl -k -O smb://word.word/word/word Mac/Samanage_Agent_1.1.72_1.1.37_203_30_installer ; unzip samanage.zip ; /Users/Shared/samanage/Samanage_Agent_*.app/Contents/MacOS/installbuilder.sh --mode unattended ; rm -rf /Users/Shared/samanage/

С учетом вышесказанного, я получаю следующие ошибки при вставке команды Unix в терминале:

curl:(67) login denied
curl: (6) Could not resolve host: Mac
unzip: cannot find or open samanage.zip
-bash /users/shared/samanage/smanage_agent app/contents/macos/installbuilder.sh: no such file or directory

Это должен быть URL? Использование сценария - даже самый эффективный метод, использующий ARD? Смогу ли я просто запустить новую установку, используя ARD без сценария? Должен ли я обойти все это и отправить инсталлятор по электронной почте пользователям? Извините за незнание этой темы и заранее спасибо за любую помощь.

1 ответ1

1

В вашей версии скрипта есть две основные проблемы:

  • 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"
    

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .