Esecuzione di cmd su SSH

0

Nella mia attuale architettura, mi collego dal mio script locale a un server in SSH ed eseguo uno script .sh. Lo scopo dello script è eseguire una query SQL e generare il risultato in un file.

Il mio script .sh contiene mysql -h ${hostname} -P ${port} -u ${dbuser} -p${auth} ${dbname} -e " cat $ {sqlfile} " > ${outfile}

In questo momento, mi chiedo se è il modo giusto per farlo, il che significa avere i miei parametri nel mio script in remoto e solo dover eseguire lo script .sh. O metti tutti questi parametri nel mio script locale, esegui direttamente il comando mysql e sbarazzati dello script .sh?

Per renderlo più semplice forse, quando devo eseguire qualcosa su SSH, i parametri che ho bisogno di usare per eseguire il comando, dovrebbero essere memorizzati direttamente sul server SSH o devo memorizzarli sul mio locale server ? E se non c'è modo migliore, quali potrebbero essere i pro ei contro per ciascuno?

    
posta Steven 23.03.2016 - 06:59
fonte

1 risposta

1

Se il tuo script esegue solo alcune query sql sul computer remoto, è meglio usare un connettore mysql dalle tue app e collegarti direttamente al server mysql remoto.

Se vuoi eseguire uno script di shell più complesso sull'host remoto, ci sono 2 suggerimenti:

  1. Assegna il tuo param ai tuoi comandi (ogni comando di linea che necessita di param).
  2. Invia prima la tua collezione param all'host remoto. È possibile utilizzare file con formato json. Invia tramite ssh (scp). E poi puoi eseguire un singolo file di script su remoto che questo script carica il tuo file param che invia prima. Utilizza il nome del parametro file uniqly, ad esempio puoi combinare dalla stringa di data.
risposta data 24.03.2016 - 08:03
fonte

Leggi altre domande sui tag