ServerTutorial

Come eseguire comandi da remoto su Linux/Unix [SSH]

Il tuo obiettivo è quello di eseguire comandi da remoto (ad esempio un hosting web equipaggiato con un VPS) e vedere i risultati sul tuo terminale. Alcuni esempi potrebbero essere:

  • Estrarre informazioni sul file-system e sul disco;
  • Scoprire informazioni su un utente;
  • Monitorare i processi attivi;
  • Scoprire se un servizio è attivo o meno.

Quali sono le istruzioni da riga di comando coinvolte?

I comandi che ci interessano sono due: RSH (comunicazione non criptata) e SSH (comunicazione criptata, consigliato), con l’accortezza di fare uso sempre della seconda perché più sicura.

Come funziona SSH (mediante esempi)

Al fine di eseguire un comando su un host server remoto la sintassi basilare è la seguente:

ssh [USERNAME]@[HOST-REMOTO] [comando o script]

dove il significato dei vari termini è il seguente:

  1. SSH: il client SSH non è altro che un programma per fare login all’interno di una macchina remota ed eseguire comandi di vario genere.
  2. [USERNAME]: la username dell’utente sull’host remoto del server in questione
  3. [HOST-REMOTO]: indirizzo IP o nome dell’host coinvolto, ad esempio nome.abc.est.
  4. [comando o script]: il nome del comando (con eventuali parametri) e dello script che sarà eseguito sulla macchina remota.

Vediamo di seguito una serie di esempi pratici che potete adattare alle vostre necessità.

Esempi pratici

Di seguito riportiamo alcune delle istruzioni che si possono eseguire mediante ssh, ovvero terminale che usualmente utilizziamo su Linux/Unix mediante accesso ad una macchina remota.

Si noti come le operazioni siano tipicamente vincolate all’inserimento della password di accesso, che viene richiesta di solito dopo aver inviato il comando. In certi casi, inoltre, la procedura di autenticazione può funzionare con meccanismo a chiave pubblica / privata (crittografia asimmetrica).

Preleva informazioni da un disco remoto sull’host www1.host123.com come utente pippo, e le mostra in output

ssh pippo@www1.host123.com df -h

Mostra le porte aperte sull’host remoto come utente pippo

ssh pippo@www1.host123.com netstat -vatn

Esegui un riavvio della macchina remota come utente root

ssh root@www1.host123.com reboot

Riavvia il server MySQL sulla macchina remota (utile per molti servizi di hosting)

ssh root@www1.host123.com '/etc/init.d/mysql restart'

Memorizza nel file status.txt nella cartella tmp informazioni sulla memoria libera sulla macchina

ssh pippo@www1.host123.com 'free -m' > /tmp/status.txt

Utilizza una pipeline per concatenare ed eseguire istruzioni più complesse

ssh pippo@www1.host123.com free -m | grep "Mem:" | awk '{ print "Memoria disponibile (utilizzata + libera): " $3 " + " $4 " = " $2 }'
Back to top button