Como posso executar o seguinte comando Unix (script?) em Macs?

0

Estou em uma situação em que fui informado muito tarde que um programa que usamos para rastrear o inventário terá seu EOL em 31 de outubro. Temos cerca de 400 computadores Mac, onde temos que desinstalar a versão antiga (não é necessário, mas apropriado) e instalar o mais novo. Eu estou olhando para usar o ARD para isso (Apple Remote Desktop), mas precisa ter o script trabalhando primeiro.

Jampf não é uma opção devido ao custo. Eu não sou uma pessoa do Mac e estou descobrindo que os arquivos em lote são especificamente uma coisa do Windows. Abaixo está o script que foi sugerido nos fóruns. Eu tenho o arquivo salvo em um compartilhamento de rede. Mostrarei o comando Unix que foi sugerido e o que estou tentando usar com substituições óbvias.

  • Sugerido: 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/

  • Meu: 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/

Com o acima, estou recebendo os seguintes erros quando colo o comando Unix no terminal:

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

Tem que ser um URL? Está usando um script, mesmo o método mais eficiente usando o ARD? Eu seria capaz de apenas empurrar a nova instalação usando o ARD sem um script? Devo ignorar tudo isso e enviar o instalador por e-mail para os usuários? Desculpem minha ignorância sobre este assunto e agradeço antecipadamente por qualquer ajuda.

    
por cj riveron 27.10.2017 / 19:08

1 resposta

1

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 para unzip , 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"
    
por 28.10.2017 / 03:57