ADMINISTRANDO SISTEMAS
CON GNU SCREEN
Una breve introducción al uso de GNU Screen

https://www.gnu.org/software/screen/
ht...
GNU Screen…¿Para qué?


Para multiplexar terminales.




Screen permite tener múltiples ventanas en una única
aplicació...
Instalando GNU Screen


En distribuciones basadas en GNU/Linux Debian:




En distribuciones basadas en Red Hat Linux:
...
Sesiones, regiones y ventanas
screen -S session0

screen -S session1

session0

region

region

window 0

shell

region

r...
Comandos screen básicos (I)


screen





screen -S sessionname




Detach de la sesión.

screen -r [sessionname]

...
Comandos screen básicos (II)


screen {-d -r | -dr} [sessionname]




screen {-d -R | -dR} [sessionname]




Reattach...
La tecla de comandos Ctrl-a







Ctrl-a es la tecla de comandos de screen.
Utilizada para trabajar con screen dentro...
Comandos Ctrl-a – Gestión de
sesiones


Moviendo una sesión entre terminales con detach y
reattach:
 C-a d (detach)
→ De...
Comandos Ctrl-a – Gestión de
regiones


Visualizando más de una ventana en el display del usuario:












→...
Comandos Ctrl-a – Gestión de
ventanas


Gestión y selección de ventanas:
→ Crear una nueva ventana
 C-a c (create)
→ Cer...
Bonus track


Ejecutar un programa específico al iniciar una sesión:




screen [-S sessionname] [-t windowname] -s pro...
El fichero ~/.screenrc sobrescribe
la configuración de /etc/screenrc
root@demo:~# cat .screenrc
# Auto-screen support; see...
Ejecutando automáticamente
screen al hacer login remoto


Añadimos al fichero .bashrc las siguientes líneas:
# Auto-scree...
Recursos


Imprescindibles:




Manual: https://www.gnu.org/software/screen/manual/[screen.pdf]




Screen web site: ...
Administrando sistemas con GNU Screen
Próxima SlideShare
Cargando en…5
×

Administrando sistemas con GNU Screen

1.372 visualizaciones

Publicado el

Una breve introducción al uso de GNU Screen

Publicado en: Tecnología
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
1.372
En SlideShare
0
De insertados
0
Número de insertados
879
Acciones
Compartido
0
Descargas
3
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Administrando sistemas con GNU Screen

  1. 1. ADMINISTRANDO SISTEMAS CON GNU SCREEN Una breve introducción al uso de GNU Screen https://www.gnu.org/software/screen/ http://vjavierf.wordpress.com
  2. 2. GNU Screen…¿Para qué?  Para multiplexar terminales.   Screen permite tener múltiples ventanas en una única aplicación de terminal. Ventajas: No necesitamos ejecutar varias instancias de la aplicación de terminal para conectarnos al mismo servidor.  Podemos desconectarnos/conectarnos a una sesión de screen en cualquier momento y continuar con el trabajo que estábamos realizando exactamente dónde lo dejamos.  Podemos compartir el terminal para ver el trabajo que está realizando otro sysadmin. 
  3. 3. Instalando GNU Screen  En distribuciones basadas en GNU/Linux Debian:   En distribuciones basadas en Red Hat Linux:   # yum install screen En sistemas Unix:    # apt-get update; apt-get install screen En Solaris…: # pkgadd -d screen_package En FreeBSD: # pkgadd -r screen En Mac OS X Lion:  git clone git://git.savannah.gnu.org/screen.git cd screen/src ./autogen.sh ./configure --enable-colors256 make sudo make install cp screen ~/bin/screen
  4. 4. Sesiones, regiones y ventanas screen -S session0 screen -S session1 session0 region region window 0 shell region region region window 1 window 2 window 0 window 1 shell program shell shell top region session1 tail –f file Screen tiene la habilidad de visualizar más de una ventana. Esto lo consigue dividiendo la pantalla en regiones, las cuáles pueden contener diferentes ventanas.
  5. 5. Comandos screen básicos (I)  screen    screen -S sessionname   Detach de la sesión. screen -r [sessionname]   Listar las sesiones de screen en ejecución. screen -d [sessionname]   Inicia una sesión de screen con el nombre sessionname. screen {-ls | -list}   Inicia una sesión de screen. sessionname → pid.tty.host Attach a una sesión detached. screen -x [sessionname]  Attach a una sesión no detached.
  6. 6. Comandos screen básicos (II)  screen {-d -r | -dr} [sessionname]   screen {-d -R | -dR} [sessionname]   Reattach a la sesión y si es necesario primero hace un detach. Si no existe crea la sesión con sessionname. Si existe más de una sesión disponible usa la primera. screen {-D -r | -Dr} [sessionname]   Reattach a la sesión y si es necesario primero hace un detach. Si no existe crea la sesión con sessionname. screen {-d -RR | -dRR} [sessionname]   Reattach a la sesión y si es necesario primero hace un detach. Reattach a la sesión y si es necesario primero hace un detach y un logout remoto. screen {-D -R | -DR} [sessionname]  Attach aquí y ahora. Si la sesión está en ejecución reattach y si es necesario primero hace un detach y un logout remoto. Si no existe crea la sesión con sessionname.   screen -DR mysession -S newsession -t winname → reattach a la sesión de screen llamada mysession y si no existe crea una nueva llamada newsession. Con -t damos un nombre a la ventana creada. screen {-D -RR | -DRR} [sessionname]  Attach aquí y ahora.
  7. 7. La tecla de comandos Ctrl-a     Ctrl-a es la tecla de comandos de screen. Utilizada para trabajar con screen dentro de una sesión de screen. Todos los comandos de screen se inician con esta secuencia de comandos. El comando más importante es Ctrl-a ?
  8. 8. Comandos Ctrl-a – Gestión de sesiones  Moviendo una sesión entre terminales con detach y reattach:  C-a d (detach) → Detach de la sesión.  C-a DD → Detach de la sesión y logout.  C-a :sessionname name → Renombrar sesión.  C-a x → Bloquea la sesión/el terminal.  C-a C- → Cierra todas las ventanas y termina screen.
  9. 9. Comandos Ctrl-a – Gestión de regiones  Visualizando más de una ventana en el display del usuario:          → split vertical. → split horizontal. → saltar a la siguiente región. → eliminar la región actual. → eliminar todas las regiones excepto la actual. → redimensiona la región ±N líneas. C-a :resize {+|-}N También resize {=|max|min} C-a :caption always caption → Mostrar leyenda de la ventana siempre. C-a :caption splitonly caption → Mostrar leyenda solo cuando hay split. C-a :caption string caption → Cambiar leyenda/pie de la ventana. Por defecto caption = ‘%3n %t’ C-a V o C-a | C-a S C-a TAB C-a X C-a Q Ejs: caption = ‘%{= kB}%-Lw%{=s kB}%50>%n%f* %t %{-}%+Lw%<‘ caption = ‘%{= kg}[%L=%{+u b} %=%{-u W}%?%-Lw%?%45L>%{Y}(%n*%f %t)%?(%u)%?%{W}%+Lw%{+u b} %=%-1=%{-u g}]’
  10. 10. Comandos Ctrl-a – Gestión de ventanas  Gestión y selección de ventanas: → Crear una nueva ventana  C-a c (create) → Cerrar la ventana actual.  C-a k (kill) → Mostrar el listado de ventanas para su  C-a “ selección con las teclas de cursor. → Cambiar a la ventana número nº.  C-a 0…9 → Cambiar a la última ventana mostrada.  C-a C-a → Cambiar a la siguiente ventana.  C-a n (next) → Cambiar a la siguiente ventana.  C-a SPACE  C-a p (prev) → Cambiar a la ventana anterior.  C-a BACKSPACE → Cambiar a la ventana anterior.  C-a A (Annotate) → Renombrar la ventana actual.  C-a :title título → Renombrar la ventana actual.
  11. 11. Bonus track  Ejecutar un programa específico al iniciar una sesión:   screen [-S sessionname] [-t windowname] -s program Screen Saver (idle) + Lock Terminal (lockscreen):  C-a :idle timeout lockscreen   C-a :idle 0   Deshabilitar el screen saver configurado. Hardcopy de la ventana actual:  C-a h [filename]     Bloquea el terminal tras timeout segundos de inactividad. Escribe el contenido visualizado en la ventana en el fichero indicado. Si filename no es especificado se utiliza el fichero hardcopy.n, donde n es el número de la ventana actual. Los ficheros se guardan en el directorio por defecto si no se ha especificado lo contrario. C-a :hardcopydir directory C-a :hardcopy_append {on|off} Log de la ventana actual:   C-a :logfile filename C-a H  Inicia/finaliza el logging de la ventana actual. Si el fichero de log no ha sido especificado se utiliza el fichero screenlog.n, donde n es el número de la ventana actual.
  12. 12. El fichero ~/.screenrc sobrescribe la configuración de /etc/screenrc root@demo:~# cat .screenrc # Auto-screen support; see http://taint.org/wk/RemoteLoginAutoScreen # Automatically detach the session on SIGHUP autodetach on # Display copyright notice on startup startup_message off # Set the default program for new windows. Always use a login shell shell -$SHELL # Begins/ends logging of the current window to file deflog on logfile $HOME/screen-logs/%Y%m%d-%n.log # Configure caption caption always ‘%{= kg}[%L=%{+u b} %=%{-u W}%?%-Lw%?%45L>%{Y}(%n*%f %t)%?(%u)%?%{W}%+Lw%{+u b} %=%-1=%{-u g}]’ # Configure the use and emulation of the terminal’s hardstatus line hardstatus on hardstatus alwayslastline hardstatus string '%L>%{= wk}[c=create|d=detach|k=kill]%=[<esc>=copy|<]>=paste]%=[H=log|h=hardcopy]%=[ S=split|Q=only|X=remove|<tab>=focus]%=[?=help]%=%-21=%{= kG}[%d/%m/%Y %c:%s]'
  13. 13. Ejecutando automáticamente screen al hacer login remoto  Añadimos al fichero .bashrc las siguientes líneas: # Auto-screen invocation. see: http://taint.org/wk/RemoteLoginAutoScreen # if we're coming from a remote SSH connection, in an interactive session # then automatically put us into a screen(1) session. Only try once # -- if $STARTED_SCREEN is set, don't try it again, to avoid looping # if screen fails for some reason. if [ "$PS1" != "" -a "${STARTED_SCREEN:-x}" = x -a "${SSH_TTY:-x}" != x ] then export STARTED_SCREEN=1 [ -d $HOME/lib/screen-logs ] || mkdir -p $HOME/lib/screen-logs sleep 1 screen -RR -t main 2> /dev/null && exit 0 # normally, execution of this rc script ends here... echo echo "Screen failed! continuing with normal bash startup" fi # [end of auto-screen snippet]  Opcionalmente, podemos configurar el fichero /etc/screenrc con las siguientes líneas: # define message of the day echo "" echo "Welcome to terminal managed with screen." sleep 3
  14. 14. Recursos  Imprescindibles:   Manual: https://www.gnu.org/software/screen/manual/[screen.pdf]   Screen web site: https://www.gnu.org/software/screen/ man screen Interesantes:  Automatic ‘screen’ on remote logins: http://taint.org/wk/RemoteLoginAutoScreen  Terminal Multiplexers: Screen, Tmux y Dtach: http://hyperpolyglot.org/multiplexers  GNU screen & Screen’s Appearance: http://aperiodic.net/screen/start & http://aperiodic.net/screen/appearance  "Status Messages in Screen" by Kyle Rankin, LJ, March 2011: http://www.linuxjournal.com/article/10950  "Power Sessions with Screen" by Adam Lazur, LJ, January 2013: http://www.linuxjournal.com/article/6340  “Time-Saving Tricks on the Command Line” by Janos Gyerik, LJ, November 2013: http://www.linuxjournal.com/content/time-saving-tricks-command-line  Aplicaciones relacionadas:  Screenie: screen session handler (wrapper): http://sourceforge.net/projects/screenie/  tmux: http://tmux.sourceforge.net/

×