Existem dois problemas principais na sua versão do script:
-
O SMB geralmente requer autenticação; o primeiro erro que você recebe, "curl: (67) login negado" indica que isso falhou no seu caso. Observe que, mesmo que o cliente já esteja autenticado no servidor e tenha a pasta relevante montada,
curl
tentará estabelecer sua própria conexão com o servidor e fazer o download do arquivo por cima. Você precisa colocar o arquivo em algum lugar acessível por hóspedes (um servidor HTTP é provavelmente mais fácil que o SMB) ou encontrar uma maneira diferente de obtê-lo para o cliente.ARD é na verdade uma opção aqui; você pode usar sua opção Copiar itens (no menu Gerenciar ou o botão Copiar na barra de ferramentas) para copiar o arquivo da sua estação de administração para os clientes e, em seguida, executar o script de instalação como uma etapa separada. Além disso, o ARD pode copiar estruturas de pastas inteiras, para que você não precise enviar um arquivo .zip e, em seguida, expandi-lo em cada cliente; basta enviar a pasta expandida.
BTW, há outro problema com o comando
curl
: o nome do arquivo parece ter um espaço, que deve ser citado ou com escape, para que seja tratado como um único URL com um espaço, em vez de dois URLs separados. / p> -
O arquivo parece ter o nome "Samanage_Agent_1.1.72_1.1.37_203_30_installer", mas você tem um comando para descompactar um arquivo chamado "samanage.zip". Altere o nome do arquivo que você está baixando / enviando para "samanage.zip" ou edite o comando
unzip
para corresponder ao nome real. -
Outro problema (que também está no script original) é que ele passa cegamente por todas as etapas, mesmo que uma delas falhe parcialmente. Por exemplo, neste caso, o comando
curl
falhou, então, mesmo que o nome do arquivo estivesse correto, não haveria nada paraunzip
, então, tentar executar o arquivo expandido não poderia ter funcionado ...A menos que você tenha um script mais sofisticado que possa se recuperar de erros, geralmente é melhor sair do script em vez de tentar continuar. Você pode fazer isso adicionando o comando
set -e
no início do script ou unindo os comandos com&&
em vez de;
. A opção&&
também permite adicionar um manipulador de erros com||
: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"