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:
- SSH: il client SSH non è altro che un programma per fare login all’interno di una macchina remota ed eseguire comandi di vario genere.
- [USERNAME]: la username dell’utente sull’host remoto del server in questione
- [HOST-REMOTO]: indirizzo IP o nome dell’host coinvolto, ad esempio nome.abc.est.
- [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 }'
2 commenti