Origama

Una parte dei miei me.


  • Carico il messaggio personale da twitter...

Entries Comments



Screen: SSH Session? Keep it Open!

15 March, 2008 (18:28) | Linux | By: admin

In effetti potrebbe non essere necessario ai più, ma se come me avete un server che comandate solo da ssh vi sarà di certo capitato di voler lasciare in esecuzione un processo poco interattivo anche dopo aver lasciato la secure shell e ritrovarlo attivo alla prossima vostra riconnessione.

 

Supponiamo ad esempio di voler scaricare un file di grosse dimensioni da un canale irc con l’ottimo client testuale irssi.

 

A meno che non abbiamo deciso di restare attaccati al server per tutto il tempo necessario al download abbiamo bisogno di una shell persistente. E’ un lavoro per Screen!

 

Screen è un applicativo GNU che una volta lanciato crea una finestra (modalità testuale, si intende) contenente una shell. Questa si appoggia a dei log che tengono traccia dello standard output dal momento in cui lasciamo la sessione SSH e quindi effettuiamo il Detouch di questa shell virtuale.

 

Ma come si usa?

 

Apriamo una shell SSH sul nostro server

 

tu@client$ ssh ip-server

e installiamolo semplicemente con un

 

tu@server$ sudo apt-get install screen

e poi lanciamolo con

 

tu@server$ screen

A questo punto, a seconda della versione che avete installato, potreste avere un messaggio che vi avvisa che siete su una shell creata da Screen o non avere nessun messaggio. In ogni caso siete in una shell Screen.
Fate pure come a casa vostra, lanciate tutti i comandi che volete e non noterete alcuna differenza. Lanciamo ad esempio il nostro irssi e colleghiamoci al nostro canale preferito. A questo punto premiamo la combinazione di tasti

 

[CTRL] + a

seguita dal tasto

 

d

Quello che abbiamo fatto è stato mettere Screen in condizione di ricevere comandi (un po come il [CTRL]+c di VIM) e poi dargli il comando detouch (d).

 

usciamo dalla nostra shell

 

tu@server$ exit

e dopo un paio d’ore (se volete potete farlo anche subito) riconnettiamoci alla nostra macchina remota in SSH e ottenuta la shell digitiamo

 

tu@server$ screen -ls

ottenendo un risultato di questo tipo

 

There is a screen on:

            XXXX.pts-Y.server     (Detached)

1 Socket in /var/run/screen/S-tu.

dove ovviamente “XXXX”, “Y”, “server” e “tu” avranno valori relativi alla vostra configurazione. Le shell listate in questo output potrebbero essere anche più d’una nel caso ne abbiate avviate diverse. Quello che dobbiamo fare per recuperare la nostra shell è

 

tu@server$ screen -r XXXX.pts-Y.server

e come per magia troveremo la finestra irssi completa di tutti i messaggi scritti sul nostro canale preferito durante la nostra assenza o con il download che avevamo lanciato ancora in esecuzione (sempre che non abbiate aspettato davvero due ore, in quel caso potrebbe anche aver finito).

 

per chiudere una shell Screen è sufficiente digitare exit dal prompt.

 

Per me è stato più che utile e mi ha permesso di aggirare molti problemi altrimenti difficilmente risolvibili, chissà se lo troverete utile anche voi…

Write a comment