Condividere e’ bello con Screen

screen_terminalSCREEN appartiene a quella categoria di applicativi molto potenti ma poco conosciuti, basta però utilizzarlo anche una sola volta per non poterne più fare a meno. Tecnicamente è un multiplexer per terminale, ovvero un applicativo con cui eseguire, all’interno di una console, molti comandi contemporaneamente, oppure connettersi allo stesso schermo virtuale da più console.

Proprio questa seconda opportunità è quella preferita dagli utenti GNU/Linux, infatti, tramite screen si può lanciare un programma, disconnettersi dal suo output, fare altro e riagganciarsi ad esso in un altro momento senza aver perso nulla!

Ma cerchiamo di spiegarci meglio; sicuramente per lavoro, sia chi usa Linux che chi usa Windows, acra’ dovuto connettersi in remoto su altre macchine e spesso si usano tool quali Putty, diciamo che per varie necessita’ le operazioni di calcolo lanciate sulla macchina su cui operate occupano parecchio tempo e non potete fare log-out per non perdere l’attivita’ iniziata…., bene, nel mondo unix e linux esistono due soluzioni a questo problema e si tratta delle utility `nohup` e `screen`. In questo articolo spiegherò come usare  “screen“.

Iniziamo con l’installazione :

sudo apt-get install screen

Fatto questo, si può avviare screen, semplicemente digitando nel terminale della macchina remota:

screen

e si avra’ subito una sessione in cui poter lavorare.
Per inviare comandi direttamente a screen, si usa la combinazione di tasti CTRL-a (abbreviati in seguito con C-a) e poi va digitato il comando.
Ad esempio, per avviare una nuova sessione, basta digitare C-a c, oppure per avere l’elenco dei comandi, C-a ?.
Le combinazioni sicuramente necessarie da sapere sono:

C-a ? :: visualizza la pagina di aiuto
C-a c :: avvia una nuova sessione
C-a n :: torna alla sessione precedente
C-a p :: va alla sessione successiva
C-a h :: crea un file di log per la sessione
C-a m :: avvia monitoraggio per una sessione
C-a a :: va alla sessione che ha segnalato un evento di monitoraggio
C-a d :: stacca il terminale da screen, lasciando il processo attivo
C-a k :: chiude la sessione corrente di screen

Ora, cosa succede se mi disconnetto senza chiudere screen? Viene semplicemente lasciata aperta la sessione, ed al nuovo accesso, basterà digitare:

screen -ls

per avere l’elenco delle sessioni attualmente attive, es :

@tuttiperlinux:~$ screen -ls
There is a screen on:
326.pts-2.tuttiperlinux (01.10.2014 09:50:57) (Attached)
1 Socket in /var/run/screen/S-tuttiperlinux.

e per riconnettersi alla sessione, basterà digitare:

screen -r 326

o piu’ semplicemente “screen -r” se esiste una sola sessione attiva.

Se la vostra necessita’ e’ invece quella di condividere una sessione di lavoro/diagnosi con altri colleghi potrete, ad esempio collegarvi remotamente tutti sullo stesso server , successivamente usare una utenza specifica per la manutenzione del servizio in questione e collegarvi tutti alla stessa sessione, esempio :

screen -x <user>; #che potra' essere tomcat, come apache ecc...

condividendone lo stesso terminal e potendo cosi interagire avendo davanti a voi tutto cio’ che succede sulla macchina a prescindere da chi stia impartendo i comandi.

Caratteristiche principali

Persistenza
Similmente a tool quali VNC, “screen” permette all’utente di avviare delle applicazioni da un computer e poi riconnettersi da un altro computer e continuare ad usare la stessa applicazione senza farla ripartire. Questo rende gli spostamenti, come ad esempio tra casa e lavoro, molto più semplici. Screen fornisce una funzionalità terminal-agnostic (ovvero funziona indipendentemente dal terminale utilizzato) perciò gli utenti possono disconnettersi e riconnettersi utilizzando tipi diversi di terminali, permettendo alle applicazioni di continuare senza percepire il cambio del terminale.
Finestre multiple
Possono essere create sessioni multiple, ognuna delle quali di solito ospita una singola applicazione. Le finestre sono numerate e l’utente può utilizzare la tastiera per passare da un’applicazione all’altra. Alcune GUI forniscono delle tab o qualche altra opzione simile per fornire questa caratteristica. Ogni finestra ha la sua scroll-back buffer, così è possibile vedere l’output anche quando la finestra non è attiva in quel momento e questo output può essere salvato anche quando si passa ad un altro computer. Le finestre possono essere ripartite in più screen tramite split screen. Mentre alcune applicazioni di testo hanno già questa funzionalità, Screen permette che ogni finestra sia divisa orizzontalmente in un numero qualsiasi di altre applicazioni.
Condivisione di sessione
Screen permette che più computer si connettano alla stessa sessione allo stesso tempo, permettendo così la collaborazione tra più utenti. Lo stesso computer può essere utilizzato per fare connessioni simultanee multiple, fornendo funzionalità alternative per la divisione della schermata, in particolare per i computer con più monitor.

Insomma una gran comodita’, un tool sicuramente utile da usare in tante diverse situazioni….!

File Condivisi al Fulmicotone

fast_net Trasferimenti veloci tra computer senza troppe configurazioni!
Questo e’ il piccolo trucco di oggi che puo’ far risparmiare pero’ parecchio tempo, soprattutto quando non ne abbiamo abbastanza. Come possiamo immaginare sui sistemi Linux esistono decide di modi per condividere file tra PC attraverso la rete, la maggior parte di questi sono pero’ accomunati dal fatto che prima di poterlo fare si debba configurare almeno una coppia di programmi (client-server o client-client) sui PC coinvolti nell’operazione. Spesso non si tratta di nulla di complicato ma molto spesso sono operazioni dispendiose e non del tutto pratiche. In tutti questi casi e’ buono sapere che esistono anche toll com WOOF che al contrario non richiedono alcuna configurazione. (http://www.home.unix-ag.org/simon/woof.html)

Si tratta di un’applicazione sviluppata in linguaggio Python, in grado di abilitare “immediatamente” la condivisione di file via Web. In pratica, dopo averlo scaricato dal sito di riferimento , sopra riportato, oppure averlo installato tramite repository con un classico sudo apt-get install woof , bastera’ lanciare il comando woof nome_file par avviare la condivisione del file indicato nella riga di comando e renderlo cosi’ accessibile direttamente dal browser di un computer remoto.

Per aiutarci nel procedimento subito dopo aver indicato a woof il file che vogliamo condividere, ed aver premuto INVIO, il programma c’indichera’ (dopoa la scritta “Now serving On”) , l’esatto indirizzo di rete a cui collegarsi per accedere al file condiviso da remoto. Al termine del download del file , woof verra’ chiuso automaticamente, ma nel caso volessimo rendere disponibile il file per piu’ download, sara’ sufficiente aggiungere al comando precedente l’opzione ” -c ” seguita dal numero di trasferimenti che vogliamo concedere. Tramite gli switch ” -i -p ” sara’ invece possibile definire un indirizzo IP differente da far raggiungere (utile nei casi in cui il computer abbia piu’ schede di rete) , o una porta alternativa, ad esempio 8080 Utilizzando invece l’opzione -U potremo invece impostare la modalita’ di upload , attraverso cui caricare un file locale su un computer remoto tramite una semplice pagina web dedicata.