¡Hola!
Para comenzar el año, os vengo con un post que no es realmente de programación, sino más bien de administrador de servidores… Pero como últimamente le doy a todo, me ha parecido interesante escribirlo 🙂
El otro día me surgió la necesidad de copiar casi un tera de información entre dos discos duros remotos. ¿cómo hacerlo? Utilizando el comando scp en modo recursivo.
Sin embargo, incluso utilizando el & para dejar el proceso en segundo plano, al desconectarme de forma accidental (se fue la luz en casa), el proceso se paró y tuve que volver a reanudar la copia.
¿Cómo solucionarlo? Existe una herramienta en Linux llamada Tmux. Esta herramienta, nos permite ejecutar varios terminales desde un solo terminal, y movernos entre ellos de forma sencilla. Y lo más interesante, es que podemos dejar un terminal ejecutando procesos, separarnos de él, cerrar nuestra sesión, volver a ella y continuar la sesión, manteniendo los trabajos, el historial del bash, la consola escrita, ETC.
En palabras del propio readme, tmux es:
tmux is a “terminal multiplexer”, it enables a number of terminals (or windows)
to be accessed and controlled from a single terminal.tmux es un “multiplexor de terminales” que permite acceder y controlar varios terminales (o ventanas) desde una sola terminal.
Y ahora, lo más interesante: ¿cómo funciona?
- Antes de nada, lo instalamos:
- Desde distribuciones basadas en Debian: aptitude install tmux
- Desde distribuciones basadas en red hat: yum install tmux
Si tienes otra distribución, puedes intentar encontrarla con tu gestor de paquetes, o compilarla desde el código fuente usando su repositorio git en: https://github.com/tmux/tmux.
- Desde una terminal, creamos una sesión escribiendo simplemente: “tmux”
- Ejecutamos los comandos que queramos.
- Una vez queramos salir de la sesión sin terminarla, escribiremos: “tmux dettach
- Cuando queramos retomar la sesión, miramos la lista de sesiones activas con: “tmux list-sessions”, y nos conectamos al número mostrado al principio de cada sesión, con: “tmux attach -t num, por ejemplo: tmux attach -t 0.
Aquí os pongo un ejemplo de consola para que lo veáis en acción:
root@koala [~]# tmux root@koala [~]# pwd /root root@koala [~]# tar -zcf /tmp/borrar.tar.gz ./* & [1] 6116 root@koala [~]# root@koala [~]# tmux detach [detached] root@koala [~]# exit logout Connection to koala.tuhorizonte.es closed. C:\Users\juanjo> C:\Users\juanjo>ssh root@koala.tuhorizonte.es root@koala.tuhorizonte.es's password: Last login: Fri Jan 1 22:46:39 2016 from xxx.xxx.xxx root@koala [~]#root@koala [~]# tmux list-sessions 0: 1 windows (created Fri Jan 1 22:49:20 2016) [80x24] root@koala [~]# tmux attach -t 0 root@koala [~]# [1]+ Done tar -zcf /tmp/borrar.tar.gz ./* root@koala [~]# cd /tmp root@koala [/tmp]# ls -lh borrar.tar.gz -rw-r--r--. 1 root root 4.9M Jan 1 22:49 borrar.tar.gz root@koala [/tmp]# rm borrar.tar.gz rm: remove regular file `borrar.tar.gz'? y root@koala [/tmp]# exit [exited] root@koala [~]# exit logout Connection to koala.tuhorizonte.es closed.
Para más información sobre el programa, podéis leer su manual en man tmux
¡Saludos y buen año a todos!
Entrada visitada 809 veces