Sto cercando di far aggiornare i Mac sul mio posto di lavoro in un momento specifico. Per fare ciò, sto eseguendo uno script bash da un Macbook di riserva che esegue OS X Server. Ho un piccolo e un grosso problema con il mio script corrente e potrei usare il tuo aiuto.
Lo script è molto semplice e non ho bisogno che sia troppo robusto per i miei scopi:
#!/bin/bash
for host in 192.blah.blah.blah 192.blah.blah.blah 192.blah.blah.blah
do
ssh -t $host sudo softwareupdate -ia
ssh -t $host sudo shutdown -r now
done
Il problema minore: per qualsiasi motivo, se provo a mettere entrambi questi comandi sulla stessa riga usando ;
o &&
in questo modo:
ssh -t $host sudo softwareupdate -ia;sudo shutdown -r now
o
ssh -t $host sudo softwareupdate -ia && sudo shutdown -r now
riavvia invece il server attuale. Non sono sicuro di dove sto andando male con la sintassi.
Il grosso problema: nonostante l'impostazione di ssh con una chiave pubblica ssh (utilizzando le istruzioni che ho trovato qui ), mi viene ancora chiesto di inserire una password due volte per macchina quando viene eseguito lo script. Sono sicuro che è dovuto al nostro amico sudo
, ma i comandi non funzionano affatto senza di esso. Idealmente, stabilirò un cron job all'inizio della mattinata e farò funzionare questo script automaticamente in modo che, quando sono al lavoro, i Mac si siano aggiornati e riavviati. Sono sicuro che c'è un modo per farlo, ma il mio Google-Fu mi sta fallendo.
MODIFICA / RISPOSTA PARZIALE Risulta, anche se si mette TextEdit in modalità Testo normale, sta ancora usando 'virgolette intelligenti'. Digitando e salvando la sceneggiatura attraverso il Terminale e POI in esecuzione funzionava come un incantesimo.
0942v8653 è stato così gentile da aiutarmi in chat e ha anche fornito un comando per disabilitare questa 'funzione': defaults write NSGlobalDomain NSAutomaticQuoteSubstitutionEnabled -bool false
Ancora in cerca di una soluzione al problema della password.