Commit fa8f9c88 authored by OSiRiS's avatar OSiRiS
Browse files

@ 00:15 hs - recupero posts a medio terminar :)

parent 658ce9e1
......@@ -4,9 +4,52 @@
#+LANGUAGE: es
#+LINK_HOME: index.html
#+INCLUDE: "header.org"
#+OPTIONS: toc:nil timestamp:nil
#+DATE: {{{modification-time(%Y-%m-%d %H:%M)}}}
*** [[file:gcoop-en-accion.org][gcoop en acción]] :noexport:
:PROPERTIES:
:ID: a1bbdd6a-55e1-4db7-a127-299755cd539d
:END:
*** [[file:multi-ssh-config.org][Multi SSH Config]] :noexport:
:PROPERTIES:
:ID: 214a1da6-b739-442b-b185-9fa95ebadf40
:END:
*** [[file:openscad-para-programadores.org][OpenSCAD para programadores]] :noexport:
:PROPERTIES:
:ID: bcea51a7-a22b-48a0-8e76-0ba532af0215
:END:
*** [[file:workshop-prusa-i3-impresora-3d.org][Workshop Prusa i3 Impresora 3D]] :noexport:
:PROPERTIES:
:ID: c60be70c-daa4-4214-a05b-7b1f66b5e432
:END:
*** [[file:plan-b-fast-openvz-backups.org][plan-b Fast OpenVZ Backups]] :noexport:
:PROPERTIES:
:ID: dcf07566-241e-44a2-bec2-620941f17ccc
:END:
*** [[file:un-tupper-para-almacenar-backups.org][un tupper para almacenar backups]] :noexport:
:PROPERTIES:
:ID: c180e17e-ee35-424d-a0c6-785df73f54d1
:END:
*** =27/JUN=
:PROPERTIES:
:ID: 3b21ae02-1e1f-4b1d-ae2d-d573a16a6a9b
:END:
*** [[file:tmux-terminator-awesome.org][tmux + terminator = awesome]]
:PROPERTIES:
:RSS_PERMALINK: tmux-terminator-awsome.org
:ID: c5939cd6-18bd-47ff-bda8-0c567cd8bd2c
:END:
#+ATTR_HTML: :width 640 :height 480 :alt tmux+terminator+awesome
[[file:tmux-terminator-awesome.org][file:tmb/tmux-terminator-awesome.png]]
*** =14/ENE=
:PROPERTIES:
:ID: 9112bbca-5b08-4917-986a-4b450598ba3c
......
#+TITLE: tmux + terminator + awesome
#+AUTHOR: Osiris Alejandro Gómez
#+EMAIL: osiux@osiux.com
#+LANGUAGE: es
#+LINK_HOME: index.html
#+INCLUDE: "header.org"
#+DATE: 2015-01-22
** porqué usar tmux?
Durante mucho tiempo que uso =screen= y me resulta muy útil, muchos
desconocen que se pueden hacer split horizontal y vertical usando
(=CTRL-A + |= y =CTRL-A + -=).
Luego de leer varios tutoriales para tmux llegué a dos conclusiones:
1. es un reemplazo de screen (muchos sugieren mapear el =CTRL-B= por
=CTRL-A=
2. es para usar con monitores grandes!
Debido a esto es que tarde en implementarlo, =screen= parecía
suficiente y =tmux= no me resultaba del todo atractivo.
** tmux + terminator + awesome
Hasta que decidí probarlo y descubrí que podía adaptarlo a mi
manera de trabajar. Habitualmente uso =awesome= [fn:awesome] y
=terminator=, me resultan muy cómodos, por un lado terminator
permite realizar un /split/ muy fácil, usando =CTRL+SHIFT+E= y
=CTRL+SHIFT+O=. Por otro lado usando =SUPER+1..9= me permite
cambiar de /workspace/ fácilmente, de esta manera venía trabajando
con 1 terminal por /workspace/, esto resulta muy útil para mantener
el foco en una única aplicación y no distraerse.
Ahora en cada terminal hay una sesion de =tmux= corriendo y cada
sesion esta dividida en diferentes ventanas y en muy pocos casos
además cada ventana en diferentes paneles. No me resulta cómodo
usar varios paneles porque no puedo tener diferentes tamaños de
fuente en cada panel (al menos yo no encontré cómo hacerlo) y esa
funcioalidad la realizo con =terminator=, normalmente lo utilizo para
ver logs locales o remotos relacionados a lo que estoy trabajando.
[[file:img/tmux-terminator-awesome.png][file:tmb/tmux-terminator-awesome.png]]
** definiendo sesiones
Sin dudas, una de las mejores características de =tmux= es el poder
definir la composisión de una sesión, la cantidad y tamaño de las
ventanas y/o paneles.
Un ejemplo de cómo se puede definir una sesion mediante un script
=bash= , por ejemplo =~/bin/tmuxosiux= es el siguiente:
#+BEGIN_SRC bash :session :results code :export code
#!/bin/bash
cd ~
tmux new-session -d -s osiux -n 'mm' 'mutt -F ~/config/mutt/muttrc-imap-osiux-gin'
tmux new-window -t osiux:2 -n 'mx' 'mutt -F ~/config/mutt/muttrc-imap-xuiso-gin'
tmux a -t osiux
#+END_SRC
De esta manera se crea una sesion *osiux* con dos ventanas *mm* y
*mx*, en la primera levanto un =mutt= con la cuenta *osiux* y en la
otra ventana un =mutt= con la cuenta *xuiso*. Para simplificar su
ejecución defini el alias =tmx=.
Entonces tengo asociada cada sesion de =tmux= a un *workspace* de
=awesome= con el siguiente esquema:
| ws | alias | comando |
|----+--------+------------|
| 1 | tmo | tmuxosiris |
| 2 | tgca | tmuxgca |
| 3 | tmx | tmuxosiux |
| 7 | temacs | tmuxemacs |
| 8 | tmoc | tmuxmoc |
| 9 | tchat | tmuxchat |
Otros alias que uso bastante son:
#+BEGIN_SRC bash :session :results code :export code
alias tas='tmux a -s '
alias tls='tmux ls'
alias tma='tmux a'
alias tns='tmux new-session -d -s '
#+END_SRC
** =screen= dentro de =tmux=
No cambié el default de =CTRL+B= de =tmux= como reemplazo de
=screen=, esto permite que pueda ejecutar =screen= dentro de =tmux=
e invocar los comandos de =screen= mediante =CTRL+A= y al mismo
tiempo sin superponerse los comandos de =tmux=. Generalmente utilizo
=screen= en servidores remotos para procesos que requieran una
ejecución prolongada.
[[file:img/tmux-screen.png][file:tmb/tmux-screen.png]]
** local y remoto de la misma manera
La gran ventaja de usar =tmux= es poder mantener abiertos todos
los programas con la configuración de ventanas y paneles tanto
localmente como remotamente vía =ssh=, es decir, no necesito cerrar
nada y al terminar el día, al volver a casa puedo conectarme por
=ssh= al trabajo y esta todo donde lo dejé, continuar con algo
que me olvidé o necesitaba mi atención, hacer un =tmux detach= o
=CTRL-B= y quedarme que esta ahi corriendo en segundo plano y que
puedo recuperar mediante un =tmux attatch= en cualquier momento y
desde cualquier lugar.
#+BEGIN_EXAMPLE
tmux list-windows -a
chat:2: finch* (1 panes) [140x47]
emacs:2: emacs!* (1 panes) [140x47]
gca:2: vim* (1 panes) [140x47]
gca:3: socks# (1 panes) [140x47]
gca:4: ssh#- (1 panes) [140x47]
gcoop:1: mg!* (1 panes) [140x47]
gcoop:3: mo#!- (1 panes) [140x47]
moc:2: mocp* (1 panes) [140x47]
osiux:1: mm!* (1 panes) [140x47]
osiux:2: mx#!- (1 panes) [140x47]
#+END_EXAMPLE
Dado que la única aplicación que uso que no vive dentro de una
terminal es /Firefox/, todo mi entorno se reduce a una terminal y
tmux, ya sea local combinando con /awesome/ como remotamente mediante
=ssh=, y esto además de resultar muy cómodo es extremadamente
productivo, pueden pasar 2 días y puedo volver en cualquier momento
a un archivo abierto en una línea determinada de cualquier proyecto
y remotamente!
[[file:img/tmux-terminator-ssh.png][file:tmb/tmux-terminator-ssh.png]]
Por tratarse de una conexión =ssh= que sólo envía texto plano,
no requiero de ancho de banda, de ser necesario puedo recuperar la
sesión desde un telefono espía con /android/
[[file:img/tmux-juice-ssh-android.png][file:tmb/tmux-juice-ssh-android.png]]
** tmux es un excelente monitor
También resulta muy útil utilizar =tmux= como herramienta de
monitoreo, por ejemplo en /malbec/ a veces es necesario monitorear
las conexiones de red y como hay varias placas de red, mediante un
script tmux es muy simple ver que esta sucediendo en cada interfaz de
red al mismo tiempo:
#+BEGIN_SRC sh :session :results none :exports code
#!/bin/bash
cd /
tmux ls | grep gorra >/dev/null 2>/dev/null
OK=$(echo $?)
if [ $OK -eq 0 ]
then
tmux a -t gorra
else
tmux new-session -d -s gorra 'iftop -n -i eth3'
tmux select-window -t gorra:0
tmux split-window -h -t 0 'iftop -n -i eth5'
tmux select-window -t gorra:0
tmux split-window -h -t 1 'iftop -n -i eth0'
tmux split-window -h -t 0 'iftop -n -i eth4'
tmux select-window -t gorra:0
tmux split-window -v -t 0 'nbwmon -i eth3'
tmux select-window -t gorra:0
tmux split-window -v -t 1 'nbwmon -i eth5'
tmux select-window -t gorra:0
tmux split-window -v -t 2 'nbwmon -i eth0'
tmux select-window -t gorra:0
tmux split-window -v -t 3 'nbwmon -i eth4'
tmux a -t gorra
fi
#+END_SRC
[[file:img/tmux-malbec-gorra.png][file:tmb/tmux-malbec-gorra.png]]
Para visualizar varios archivos de logs al mismo tiempo:
[[file:img/tmux-tail-logs.png][file:tmb/tmux-tail-logs.png]]
[fn:awesome] [[file:awesome-es-increible.org]]
#+TITLE: Un tupper para almacenar backups
#+AUTHOR: Osiris Alejandro Gómez
#+EMAIL: osiux@osiux.com
#+LANGUAGE: es
#+LINK_HOME: index.html
#+INCLUDE: "header.org"
#+OPTIONS: toc:nil timestamp:nil
#+DATE: 2014-11-14
[[file:tupper.png]]
** dónde guardar los backups?
En la /cooperativa/ [fn:gcoop] trabajamos con muchas máquinas
virtuales (usando /PROXMOX/ [fn:proxmox]) y si bien contamos con
/backup/ local no está demás ser previsor y contar con un /backup/
remoto por si fuera necesario utilizarlo algún día...
Como todo problema, uno tiende a simplificarlo, en principio la
solución parecía simple: "comprar un disco externo, y copiar todo ahí"
** siempre es bueno tener un tupper a mano
Teníamos una /AllInOne/ que usamos en algún momento para un evento
y que estaba en deshuso, como no se trataba de una compu muy potente,
estaba en una caja. /¿Y si la desarmamos y la metemos en un tupper?/
Las ventajas, en principio son:
- ocupa muchísimo menos espacio (no necesitamos monitor)
- es fácil de transportar (si fuera necesario)
- puede estar en cualquier lugar (wifi mediante)
- no hace nada de ruido
Asi procedí al desarme, descarté el disco para ahorrar espacio, en su
reemplazo utilice un pendrive de 16GB para el Sistema Operativo, que
inicinalmente fue un Huayra 2.0 [fn:huayra], luego probé con
OpenElect y OpenMediaVault, finalmente la mejor opción fue realizar
la instalación mínima de un Debian Jessie.
[[file:tupper-desarme.png]]
Contaba con 1 puerto USB 3.0, donde conecté el disco externo de 2T.
Lo ciframos usando LUKS porque somos paranoicos...
Tuve que tapar con cinta los LEDS, de no hacerlo tendría Navidad
todas las noches.
La wifi interna no tenía buena señal, asi que use un /dongle USB/
TPLink WNAlgo que mejoró notablemente la conexión:
[[file:tupper-wavemon.png]]
A fin de que no se caliente demasiado hice unos cuantos agujeros en
la tapa y en los bordes, y aproveche uno para pasar la antena.
Aunque luego opté por conectar el tupper mediante UTP a un AP TPLink
WDR841ND, asi extendía la red de CompartirEsBueno, agregando un nodo
más a la mesh.
** plan-b
Un backup si no es automatizado: NO SIRVE!
Así que implementé plan-b [fn:plan-b], que son una serie de scripts
que facilitan el backup de contenedores OpenVZ y que tuve el gusto de
presentarlo en la edición 2015 de la SASOConf [fn:sasoconf] y que
están disponibles en github [fn:github] para que cualquiera pueda
usarlos y mejorarlos.
** bonus extra: un mediacenter!
Y ya que el tupper tenía que estar prendido todo el día y podía
estar en cualquier lugar de la casa, aproveché a conectarlo por
/HDMI/ a una /TV/ y se convirtió en un /mediacenter/ instalando
/XBMC/ [fn:xbmc].
[[file:tupper-xbmc.png]]
[fn:gcoop] http://gcoop.coop
[fn:proxmox] http://proxmox.com
[fn:huayra] http://huayra.conectarigualdad.gob.ar
[fn:xbmc] http://xbmc.org
[fn:github] https://github.com/gcoop-libre/plan-b
[fn:plan-b] http://pub.osiux.com/plan-b-sasoconf.pdf
[fn:sasoconf] http://sasoconf.com.ar
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment