viernes, 26 de octubre de 2018

Glusterfs y Virsh 2

Este segundo apartado es para desglosar y reorganizar los conceptos del primero:
1- Ambiente Físico: Una unidad de disco física será adicionada al sistema de archivos
2- Cluster, se creará un cluster con Glusterfs que debe replicarse entre dos servidores
3- Virtualizacion, se creará un pool almacenado en el cluster, que permitirá encender las maquinas virtuales en cualquiera de los dos servidores (migración)

1- Ambiente Físico:
la primera unidad de disco fisico : /dev/sda
la primera partición en el primer disco: /dev/sda1

Al agregar un segundo disco a este se le asigna (autom.)  /dev/sdb
al crear la primera partición se le asigna: /dev/sdb1
CREAR PARTICION
fdisk /deb/sdb/
mkfs.btrfs -i size=512 /deb/sdb1
MONTAR PARTICION
mkdir -p /export/sdb1
echo "/dev/sdb1 /export/sdb1 btrfs defaults 0 0" >> /etc/fstab 
mount -a 


root@vsh05:~# blkid
/dev/sda1: UUID="c7ad3108-758a-4920-8a95-c94865901ea3" UUID_SUB="2a7234b0-6b59-48fd-b711-255f4f378675" TYPE="btrfs" PARTUUID="32dc5157-01"
/dev/sdb1: UUID="2Tkg0j-OIlG-wEWt-guI6-dfFw-TJnh-RLcchK" TYPE="LVM2_member" PARTUUID="46936cbd-01" <<- esta unidad es con LVM


/dev/mapper/vg00--vm05-data: UUID="bcbb8eb9-a861-4348-a848-c545af674c7c" TYPE="ext4" <<-esta entrada sólo aparece cuando agregamos glusterfs


Comandos útiles:
blkid
cat /etc/fstab  [comparar ambas salida] 
gluster volume delete almacen



2- Cluster:
conectar los nodos:
gluster peer probe node2      <<-- inicia los nodos debe hacerse cruzado
gluster peer status

mkdir -p /export/sdb1/brick
gluster volume create almacen replica 2 servidor01:/export/sdb1/brick servidor02:/export/sdb1/brick     <<-- xq simplemente ambos servidores tienen                                                                                                                                                                                            los mismos directorios. Este comando creará la                                                                                                                                                                                           entrada "dev/mapper" en fstab (ver arriba)
gluster volume start almacen
gluster volume info
gluster volume status
gluster peer status
gluster volume create almacen replica 2 servidor01:/export/sdb1/brick servidor02:/export/sdb1/brick force

Links:

https://www.youtube.com/watch?v=LlczFSvdYkQ
https://libvirt.org/storage.html#StorageBackendGluster
https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/sect-managing_guest_virtual_machines_with_virsh-storage_pool_commands

viernes, 12 de octubre de 2018

Debian 9 en Macbook early 2008

Especificamente estoy hablando de un A1181

Empece por la version Debian-mac 9.5 amd64

Para salvar la lentitud en el arranque: rEFInd

Desktop escojido LXCE (una mejora de openbook)

Problemas:
Con el brillo, con las teclas de control de brillo

Con las teclas de control de audio

Con la techla de expulsion de cd

Con el WiFi
- tools :
-- lspci -vvnn | grep 14e4
-- iw list
-- iwlist chan

Con la WebCam

Montar la particion Macos:
- Encontrarla con fdisk -l
- Crear carpeta y montarla con mount /dev/hda2 APPLE
Sacar el driver desde: System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBVideoSupport.kext/Contents/MacOS/AppleUSBVideoSupport

Con un teclado externo de otro idioma

Con un monitor externo

Con algunos dvds

*LightDM me obliga cada vez a escribir mi usuario (no solo la contrasena):
https://wiki.debian.org/LightDM#Enable_user_list

Escribir en /usr/share/lightdm/lightdm.conf.d/01_my.conf:
[Seat:*]
greeter-hide-users=false

martes, 9 de octubre de 2018

Una facil mudanza a shell zsh

Despues de trabajar casi 20 años con el MS-DOS de microsoft y otros 5 con powershell, los interpretes de comandos te resultan simpáticos.

El uso frecuente de linux me acerco a bash, csh y sh, donde por ser el mas usado, me quedé largo tiempo con bash.
Pero el brinco a mac y su sabor por lo fácil y bonito me hizo buscar una alternativa "mac" al esqueletico shell estandar de macos.

Lo primero fue cambiar el terminal estandar por iTerm. Cuidado que el terminal no es el shell, sino un "metashell"

A medida que lo fuí usando fui experimentando problemas habituales y repetitivos que el buen bash no podia salvar, como es el hecho que las historia de las sesiones no se guardan de manera confiable. Me refiero a las incongruencias que ocurren cuando el usuario esta logeado en varias consolas del mismo servidor.

Los cambios a zsh no fueron en nada duro (ni siquiera en mi servidor FreeBSD), instalar zsh:
en mac  ya estaba en /bin/ (lo habre instalado en otra ocasion?)
en bsd : pkg install zsh

Luego ponerle el fancy skin "oh-my-zsh" con el sabor "agnostec" que es el mas pichirruchi que se puede escojer.

Los caminos cortos descritos en el sitio github de oh-my-zsh no me funcionaron muy bien en los diferentes sistemas que uso, pero el camino largo: advanced installation --> manual installation no presentan ningun problema.

En mac para mi iTerm tuve que instalarme una coleccion de letras especiales llamadas
"Powerline", tambien presentes en github. Mi FreeBSD no lo necesita.

UPDATE Agosto 2020

Despues de algunos años usando zsh me han liado las configuraciones, la instalacion de git y wget, para instalar ohmyzsh, la configuracion, etc. He probado FiSH, que tiene casi todo lo que necesito desde el principio sin tanto trabajo. Me lo quedo!

simplemente:

pkg install fish

chsh root /usr/local/bin/fish

jueves, 4 de octubre de 2018

Usando VIM

Vim es, aunque conocido por lo dificil, también conocido como potente y poderoso editor de texto con fines de programación.

Bien por lo poderoso o lo complicado, hace ya desde algun tiempo que empecé a incursionar en el uso de vim, alternando con otros editores,  por lo que ahora escribo mis experiencias:

Casi todo lo configurable y lo más importante de VIM se puede configurar a traves de  este archivo de configuración:

~/.vimrc

------------------------------------------------------------
filetype plugin indent on
syntax on
set nocompatible
set number  #<-- numera las lineas
set filetype=XML
autocmd BufEnter *.recipe :setlocal filetype=xml
execute pathogen#infect()  #<--carga el instalador de plugins "pathogen"
set laststatus=2  #<-- permite que funcione el plugin light..
map <C-o> :NERDTreeToggle<CR> #<-- mapea a ctrl-o la aparicion del plugin NERDTree
------------------------------------------------------------



Vim tiene, dos o hasta 3 modos de edición, que yo uso asi:
-------------------------------------------------------------------------
Modo Comandos, que es el que abre Vim, o se llama con ESC + :
Modo Insercion (Insert), que se llama cuando estas en modo comando y presionas "i"
Modo Visual que aparece cuando usas el ratón, desde una GUI y con lo que puedes cortar y pegar. En algunos contextos tambien se puede cortar y pegar sin modo Visual.

Los comando son un queso, por lo que hay que buscarlos y memorizarlos, yo (todavía) uso una chuleta que de vez en cuando actualizo y pego en mi monitor:

=====================================================
Chuleta Comandos Importantes de VIM:
-------------------------------------------------------------------------
:set number
:set nonum
:ha!               --> hard copy (imprimir)
:wq               --> guardar y salir
:w archivo.txt  --> guardar con nombre "archivo.txt"
:q!         --> salir sin guardar
u    --> deshacer
p    --> pegar
dd  --> cortar (y borrar) linea
dw --> delete word --> borrar/cortar palabra
37dd --> cortar 37 lineas
yy --> copiar linea
23y(espacio) --> copiar 23 lineas a la derecha
y8(espacio) --> copiar 8 caracteres a la derecha
y6l(espacio) --> copiar 6 car a la izq

:tab archivo.txt    -->  abre una nueva pestaña (tab) con el archivo.txt
:tabnew
gt   --> go tab , siguiente pestaña
:tabc --> tab close
:e archivo.txt  --> cambiar (abrir) a archivo.txt
/palabra --> buscar "palabra" (hacia adelante)
?palabra --> buscar "palabra" (hacia atras)

:vsp archivo.txt  --> split con archivo.txt
:windo diffthis  --> encuentra las diferencias entre las dos ventanas (del split)
ctrl + ww ---> cambia entre ventanas
ctrl + wr ---> intercambia las ventanas (el derecho va a la izq y viceversa)

:%s/^/textoaagregar  --> agregar caracteres o espacios en todas las lineas, bueno para agregar espacios

:125, 189s/^/#  --> agrega el comentario # desde la linea 125 hasta la 188

copiar lineas desde la 81 a a 91:
81,91y

osea que :
%= todos
n-inic, n-fin= rango   
s = linias
/^/# = agregar #

cambiar un texto por otro:
:g/texto_a_sustituir/s//texto_nuevo/g
 
 ó también:
:%s/texto_a_sustituir/texto_nuevo/g 
==============================================


Plugins para VIM
------------------------------------------------------
Además, se puede complementar VIM con plugins que le agregan funcionalidades o lo hermosean, como por ejemplo:
- NERDTree --> agrega un arbol interactivo de directorios y archivos
- lightline --> agrega color funciona la barra de comandos e infos
y asi muchos más que se pueden encontrar en vim-awesome, que es una pagina web dedicada a las herramientas para vim


Estos plugins se pueden installar con varios gestores de plugins. Yo uso pathogen, creo que fortuitamente y no recuerdo ninguna razon especial por la que le haya escojido. Hasta ahora me funciona bien y me parece fácil. Otros gestores son: Vundle, Neobundle und VimPlug.

-- Pathogen instalacion :
----------------------------
Básicamente se trata de copiar el paquete pathogen.vim en la carpeta ~/.vim/autoload
En el apartado instalación de github se explica muy bien:
https://github.com/tpope/vim-pathogen

en resumen:
  mkdir -p ~/.vim/autoload ~/.vim/bundle && \
  curl -LSso ~/.vim/autoload/pathogen.vim https://tpo.pe/pathogen.vim
y agregar a vimrc. la linea
exit:
  execute pathogen#infect() 

eso es todo!

-- Instalar Plugins NERDTree y lightline con Pathogen:
------------------------------------------------------------------
Para instalar cualquier plugin con Pathogen, basta copiarlo en la carpeta ~/.vim/bundle, esto es lo que hacen los comandos siguientes:

  git clone https://github.com/scrooloose/nerdtree.git ~/.vim/bundle/nerdtree
  git clone https://github.com/itchyny/lightline.vim ~/.vim/bundle/lightline.vim 

--- Trics con NERDTree y Lightline
NT se activa con el comando 
:NERDTree
Pero si lo usas mucho, pronto te fastidiara ese engorroso comando, asi que se puede
mapear a una combinacion de comando, eso es lo que sale arriba en mi ejemplo de .vimrc

Lightline no me funcionó asi nada mas hasta que agregé a .vimrc

set laststatus=2
 
 -- Agregar algo al final de cada linea:
:%norm A algo
 
Explicacion: 
:%norm A*
This is what it means:
% = for every line 
norm = type the following commands 
A* = append '*' to the end of current line

-- Imprimir (en impresora) los numeros de linea:
set number
set printoptions=number:y

 

jueves, 13 de septiembre de 2018

Como imprimir un documento de Word directamente desde el formato PDF

Después de la última actualización de Office 2016 para macOS, se me ha presentado uno de esos quebraderos de cabeza difícil de solucionar: Sucede que en nuestra empresa (bastante grande) hay unos directivas para el uso de encabezados de cartas, presentaciones en pantalla, tablas, logos y demás. De repente a otro, las impresoras Ricoh, que reciben las impresiones de cartas con estos formatos comenzaron a dar problemas con las impresiones mandadas desde Word en macOS. No otras impresoras, por lo que podemos pensar que algo va mal en los controladores, pero tienen diferentes controladores y todas dan el resultado con una manchas negras arriba de los logos y faltas en la impresion.

La encargada de crear estas plantillas, las crea en Word Windows y no tiene estos problemas, por lo que esta dificil de convencerla que realice unas plantillas limpias donde todo funcione. Además las plantillas no presentan manchas ni faltas en otras impresoras, aun desde mac y desde word.

Por otro lado las mismas plantillas se dejan imprimir sin problemas desde los mismos clientes pero con LibreOffice, que como es absurdamente normal, nadie quiere usar.

También se imprimen las plantillas sin problemas cuando se exportan a .pdf y luego desde .pdf se imprimen, por lo que un error en la impresora es casi descartable.

Buscando infos en la red, me he topado con toda clase de foros que vociferan (una vez más)  contra Microsoft y su update 16 para MS-Office. Super, que tengo que hacer? desinstalar el software y reinstalar el viejo?

Aunque no sea la solución más limpia, he tenido que trabajar y presentar una solución, que es la siguiente:

En macOS, he configurado una
Carpeta con acciones automáticas llamada "to-pdf-to-print"
-->  imprimir Objetos de Finder 
-->  Borrar (a Papelera) objetos de Finder 

Todo lo que se guarde en esta carpeta se imprimirá y luego irá a la papelera.

En MS-Office, he configurado una macro que exporta como pdf, al exportar, el usuario escoje la carpeta de impresion automática, que ligue en un favorito al finder*.

Sub Save_to_PDF()
' Save_to_PDF Macro
  With Dialogs(wdDialogFileSaveAs)
        .Format = wdFormatPDF
        .Show
    End With  
End Sub 
 
Claro que se siempre se puede hacer todo el proceso de manera manual, pero cuando
el empresa son flojitos y tu un consentidor admin...

* Puede parecer una estupidez no configurar el VBA para que directamente guarde en esta carpeta, asi nos ahorramos el favorito en Finder y algunos clic al ejecutar el script, pero lo que pasa es que el soporte de VBA para las rutas en macOS es bien deficiente y es otro quebradero de cabeza que no he querido ahondar.

https://wordmvp.com/FAQs/MacrosVBA/ChangeSaveAsPath.htm
https://www.rondebruin.nl/mac/mac007.htm
http://ideophone.org/one-click-save-as-pdf-word-2007-2010-2013/

-----

Como instalar la solución?


miércoles, 5 de septiembre de 2018

FreeBSD experiencias - parte II

He decidido repartir este Blog en una segunda parte para acentuar "mis orgullosos avances"

Debo confesar que FBSD toca el limite de lo soportable para usuarios comunes y esta lleno de pequenas pesadillas. Esto aqui no funciona, esto alla, y asi. Ahora sé porque el diablito es su mascota.

Pero muy aparte de los problemas que he tenido, debo admitir que he tenido con FBSD una diversión que hacía mucho tiempo no tenía.

Todos los problemitas tienen soluciones relativamente simples y el sistema corre estable (despues que lo estabilizas).

Me gusta la universalidad de freebsd. Mientras en linux te ahogas en foros y blog que tratan sobre diversas distribuciones, en fbsd es todo un poco mas centralizado, un poco mas unificado. Lamentablemente no de manera absoluta, pues encontramos también unas cuantas versiones, de las cuales muchas estan medio o bien muertas, o les cambiaron el nombre y asi.

Bueno, mi primera prioridad con mi FBSD laptop (un viejo thinkpad x61s) fue formar un sistema usable en modo texto para usuario. Para esto instalé mis herramientas favoritas:

- zsh (fbsd por defecto es el csh)
-- oh-my-zsh (es demasiado cool)
- vim (fbsd viene con ee, que me parece terrible)
- mc (midnight commander como filemanager)
- w3m (navegador text)
- git
- curl

Lo más del trabajo en esta primera fase estuvo en configurar, editando archivos rc y demás.

En este segundo capítulo voy a referirme a la configuración del entorno xorg para usar aplicaciones gráficas, esto fue realmente muy fácil con

   pkg install xorg

-- y digo fácil porque x11 funcionó de un tiro en modo vesa. El driver gráfico de Intel no me funcionó automaticamente con la distribución TrueOS por lo que puedo derivar que tampoco funcionará con FreeBSD, pero aún tengo que probar.

Para empezar traté de trabajar con el entorno por defecto twm, cosa que abandone relativamente rápido, puesto que además de su exageradamente espartana simplicidad, es bastante lento. Por ahora estoy trabajando con blackbox que es bonito, simple, configurable y rápido.

Desde los tiempos en que empece con algun linux slackware que venía en una revista tengo la costumbre (no se si es correcta) de instalar xorg, y ejecutarlo manualmente despues del login en modo texto por el comando startx o xinit. Despues instalo xdm. En FBSD tuve el problemilla que hacía un loop, devolviendose a xdm cada vez que introducía nombre y contrasena.

Al mirar en ~/.xsesions-error encontré la causa:
/usr/local/bin/xsm not found

la solución:
pkg install xsm

a pesar de que xdm a la finale funcionó, pronto me di cuenta de que estaba bastante obsoleto y su configuración es bien terrible ya que cuenta con varios grupos de archivos que se guardan en varias carpetas, que además difieren entre distribuciones. En el camino a realizar todos estos cambios, me fui topando con mas y mas foros en los que se hablaba de lightdm, el cual decidí probar en lugar de xdm.

Para cambiar lo que se ejecuta con el comando startx, hay que editar:
 /usr/local/etc/X11/xinit/xinitrc

aqui comente twm y todos los "nice programs" y agregé al final del archivo "blackbox" sin "".

Especialidad del Thinkpsad x61s con el adaptador grafico y el control de brillo:
--------------------------------------------------------------------------------------------------------
de En la primera instalación de xorg, escojí el adaptador vesa por ser mas confiable, ya que por experiencia es el unico que siempre funciona. Gracias a esto el thinkpad se veía brilloso y la imagen aunque bastante aceptable, no muy fina. Al buscar una solucion para el broblema del control de brillo, llegue al punto en el que con el controlador vesa no podía ir mas alla. Lo tenia que cambiar entonces por otro mas específico. Simplemente:

pkg install xf86-video-intel

y como magia, en el proximo arranque funcionaba el control de brillo y la calidad estaba mucho mejor!

un mensaje de la consola en el arranque decía:

VT: Replacing driver "vga" with new "fb"

NOTA Sobre el brillo:
los comandos:
xrandr --listmonitors
xrandr --output LVDS1 --brightness 1.1
pueden resultar muy utiles. En mi caso mi monitor es LVDS1, lo cual me enseno el primer comando.

Problema con WLAN
-------------------------------------------------------------------------------------------
el adaptador en rc.conf para wlan no debe estar igual que el ethernet "DHCP" sino que debe decir  "WPA SYNCDHCP", entonces funciona. Así:

ifconfig_eth0="DHCP"
ifconfig_wlan0="WPA SYNCDHCP"


Problema con el teclado Ingles UK de una Thinkpad x61s
-------------------------------------------------------------------------------------------
En esta constelación mi Thinkpad tiene un teclado un poco extrano, pues en la esquina superior izquierda, antes del uno, esta una tecla  --|  ` |  y entre la mayuscula izquierda y la z estan | (partida) y \ . Concuerda con el articulo de wikipedia https://en.wikipedia.org/wiki/QWERTY#United_Kingdom  . La herramienta kbconf no me funciono para poner ninguna de las opciones para teclados UK.

Este problemilla, de solución simple, tarde un poco en solucionar, ya que ningun foro apunta como problema exacto, y fue sólo que por ahí alguien compartió su rc.conf y al probar su linea funcionó, claro que ahora tengo el problema que el tenía!

https://lists.freebsd.org/pipermail/freebsd-questions/2003-August/015709.html


Claro, que como en el foro, ahora a mi tampoco me funciona el signo de Libra (que antes si funcionaba), aunque para mi es una solución, porque creo que en mi vida he usado este signo menos de 10 veces mientras que los slash, pipes y arrobas me resultan mucho mas importantes...

en pocas palabras: agrega al /etc/rc.conf la linea
keymap="uk.cp850"
 
Lamentablemente esto no se acaba aqui, pues la configuracion de rc.conf no se extiende
hasta xorg, y el problema persiste al entrar en startx. La solución aqui, me resulto
ser:
 
setxkbmap -rules xorg -model cp850 -layout bg
 

aunque este comando era "provisorio" pues volvía el problema con cada salida de X. 
Traté de solucionar el problema agregando las lineas 
 
xxx 
 

a .xorg.conf.new pero no sirvió de nada, por lo que opte por simplemente agregar el
comando a /usr/local/etc/x11/xinit/xinitrc, al final, pero antes de fluxbox, esto funcionó de
maravilla.
 
Update 17.04.2020: ya no funciona :-(
 
 

Funcionalidad de Portapapeles para Fluxbox
facil: instalar copyq. Esta aplicacion permite compartir portapapeles entre casi todas las aplicaciones incluyendo el terminal.
----

Pasar los Escritorios de izq. a derecha con ctrol + --> y con ctrol + <-- como en macOS:

configurar en ~/.fluxbox/keys

las lineas:
Control Right :NextWorkspace
Control Left :PrevWorkspace


ademas: el menu de FLUXBOX se configura en ~/.fluxbox/menu
---
24.03.2020
Cambiar el fondo de escritorio en Fluxbox
Muchas configuraciones de Fluxbox se realizan a través de los comandos fbset... (root, bg)
Aunque estos comandos ya estan instalados, dependen de otros como Esetroot(ETerm), feh o wmsetbg. A mi me funcionó bien feh, con:

pkg install feh
fbsetroot -solid grey15

Update: 26.03.2020
El comando anterior sólo cambia el escritorio por sesion. Es decir que el proximo restart ya esta igual que antes. Tengo que probar si se puede meter en algún script de inicio.
---

Hacer un usuario sudoer
Primero debes instalar sudo porque no viene por defecto: pkg install sudo
Despues debes editar el archivo /usr/local/etc/sudoers de los sudoers con los comandos
su -
visudo

root ya es sudoer, por lo que puedes copiar su linea y agregar tu usuario:
root ALL=(ALL) ALL
tuusuario ALL=(ALL) ALL
---
 
como Actualizar FreeBSD 
uname -a   <--muestra la version actual como "11.2-RELEASE
freebsd-update fetch
freebsd-update -r 12.1.RELEASE -upgrade 
freebsd-update install
 
la instalación pedirá varios reboots y fbs-update install y al final pedirá actualizar 
los programas instalados cosa que se puede hacer bien con:
 
ports update

pkg bootstrap -f 
pkg update
pkg upgrade
 
  • Im Wörterbuch speichern
    • Keine Wortliste für Englisch -> Spanisch...
    • Eine neue Wortliste erstellen...
  • Kopieren

sábado, 25 de agosto de 2018

FreeBSD experiencias

configurar tarjeta de red:
------------------------
ee /etc/rc.conf
ifconfig_re0="inet 10.10.0.0 netmask 255.255.255.0"

ee /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
nameserver 208.67.222.222
nameserver 208.67.220.220

/etc/rc.d/netif start
oder 
ifconfig em0 up / down 

configurar ssh:
-------------------------
ssh-keygen
- desde el computador administrador:
- ssh-copy-id usuario@freebsdcomp

CUIDADO: ssh-copy-id solicitará un password que no aceptará sin no se acepta passwords-logins
ee /etc/ssh/sshd_config
agregar linea: PasswordAuthentication yes

CUIDADO: root ssh no esta activado, se puede con otro usuario entonces hay que agregarlo a sudoers
-- activar ssh root login:
ee /etc/ssh/sshd_config
agregar linea: PermitRootLogin yes

encontrar una unidad anadida (p.e. USB-Stick)
------------------------

servicios:
-------------------------
service sshd restart / status / stop / start

editar archivos:
-------------------------
vi esta instalado pero no va tan bien como editor estandar de FreeBSD, que se puede llamar con
edit ó con ee (easy editor)

montar discos
-------------------------

Ver informacion de discos:
--------------------------------
camcontrol devlist
https://www.cyberciti.biz/faq/freebsd-hard-disk-information/

diskinfo -v ada1

mount

cat /etc/fstab

Instalar otros shells
---------------------------
pkg install zsh / bash

echo $SHELL       <-- para ver que shell tengo y su ruta

cambiar el shell standar:  chsh -s zsh

Problemas con el teclado:
------------------------------------
/etc/login.conf editar:
german:German Users Accounts:\
 :charset=UTF-8:\
 :lang=de_DE.UTF-8:\
 :tc=default:


/etc/rc.conf editar:
# Zu verwendende Konsoleschrift (iso8859-15)
font8x14="iso15-8x14"
font8x16="iso15-8x16"
font8x8="iso15-8x8"
# Deutsche Tastaturbelegung
keymap="german.iso"

correr el commando:
cap_mkdb /etc/login.conf
 
y como no sirve de nada, reiniciar. Entonces si va todo en aleman! 

miércoles, 22 de agosto de 2018

Usar la herramienta "ping" para vigilar si un sistema se prende o se apaga

Hace una senal auditiva cuando el servidor/cliente esta activo:

ping -i 10 -a sistema.local.net

-i 10 = interval --> manda el ping cada 10 segundos en lugar de cada segundo
-a = audio senal, hará bip si el sistema se activa



Hace una senal auditiva cuando el sistema deja de responder (sin conexion o apagado)

ping -i 10 -A sistema.local.net

miércoles, 6 de junio de 2018

Python en macOS, un poco de K-os ó CAOS?

Entre versiones de macOS y Python´s (incluso HomeBrew Python) pueden haber variaciones molestas a la hora de instalar algun módulo

Mac viene con Python 2.7 por defecto preinstalado.
La version 3.x la he instalado manualmente a través del paquete original creado por Python.org

Para ejecutar scripts de python 3 simplemente ejecuto en iTerm

python3 script.py
python script.py  --> para ejecutarlo con el 2.7

Pero tengo problemas a la hora de instalar librerias y otras mejoras, pues normalmente se van a 2.7 por ser el python por defecto.

Para revelar donde esta qué, se puede usar:

>>> ~ >>> type -a python
python ist /usr/bin/python

>>> ~ >>> type -a python3
python3 ist /Library/Frameworks/Python.framework/Versions/3.6/bin/python3

así si quiero instalar un modulo en python3 puedo ir a

cd  /Library/Frameworks/Python.framework/Versions/3.6/bin/
y con un ls ver que hay...

ahi encontraré pip3 pudiendo entonces instalar el módulo que deseo con él así:

>>> ~ /Library/Frameworks/Python.framework/Versions/3.6/bin>>> pip3 install wxPython

Eso es todo, así se pueden instalar modulos estando seguro de que corren en el python correcto.

martes, 5 de junio de 2018

Libre Office - Aumentar el número de ultimos documentos abiertos

LibreOffice --> Einstellungen --> LibreOffice --> Erweitert --> ExpertenEinstellungen Offnen--> org.openoffice.Office.Common --> History --> PickList --> History --> Cambiar aqui el valor deseado


miércoles, 9 de mayo de 2018

Atributos extendidos en Apple macos

A veces al ejecutar una lista en la consola veras una @ al final de los atributos normales de archivos.
Esta arroba significa que esos archivos poseen atributos extendidos.
Es una especialidad UNIX por lo que esta presente en BSD y macOS, aunque anda por ahí en Linux.

Podemos ver esto al ejecutar el comando
$ ls -lha
-rw-r--r--@  1 root  wheel   1.7M May  9 10:23 PSOeci.icc
-rw-r--r--@  1 root  wheel   1.7M May  9 10:23 PSO2.icc
-rw-r--r--@  1 root  wheel   1.7M May  9 10:23 PSO3.icc
-rw-r--r--@  1 root  wheel   1.7M May  9 10:23 PSO4.icc


Para saber de que se trata el atributo podemos:

$ xattr PSOeci.icc 
 com.apple.quarantine

Y para eliminarlo:
$ sudo xattr -d com.apple.quarantine PSOeci.icc

También se pueden borrar todos con "clear"

$ sudo xattr -c PSOeci.icc

Recursividad tambien funciona con el comando, asi limpia todas los atributos extendidos de una carpeta.


$ sudo xattr -rc Perfiles

jueves, 3 de mayo de 2018

borrar la historia de github sin eliminar los archivos actuales

advertencia: este artículo es sólo una parafrase del original :
https://gist.github.com/heiswayi/350e2afda8cece810c0f6116dadbe651

si has trabajado con github y de pronto te das cuenta que en tu proyecto has dejado datos sensibles personales o de tu empresa te darás cuenta que no sólo alcanza borrarlos del archivo que estas programando.
GitHub guarda una útil historia de todos los cambios que has ido realizando, asi que si deseas eliminar alguna info, tendrás que eliminar toda esta historia también.
Cabe la posibilidad de que tu, como yo no trabajes tan directamente con la linea de comandos git, sino que uses github desde alguna interfaz mas amigable como TextWrangler, Notepad++, PyCharm, Netbeans, etc.
Si así es tendrás un pequeno problema.
Pero los amigos de GitHub concientes de esto han escrito algunas direcciones que yo trataré de mejorar con unos tipps entremedio  y correcciones.

Recomiendo el segundo método:

# si todavia no has configurado tu git
git config --global user.name "xastherion"
git config user.name "xastherion"
git init

git clone https://github.com/xastherion/mi_proyecto

# ahora debe haber una carpeta "mi_proyecto" en la carpeta ~/.git
cd .git
ls
cd mi_proyecto
ls -lha           # para que se vean las carpetas de punto .git
rm -rf .git       # borra toda la carpeta .git ojo: dentro de "mi_proyecto"

                  # aqui esta la historia

git remote add origin https://github.com/xastherion/mi_proyecto
git remote -v         # v para verbose
git add --all
git commit -am "Primer Commit"        # -am interative + msg
git push -f https://github.com/mi_proyecto

miércoles, 25 de abril de 2018

Instalar wordgrinder en macOS (sierra)

Instalar wordgrinder en macOS (sierra)

# xcode intallation --> ask for accept (please accept!) 
xcode-select --install
 
# homebrew installation --> ask for sudoer password (please give it!)
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew install ninja

# install wordgrinder
git clone https://github.com/davidgiven/wordgrinder.git
cd wordgrinder
make
make install
rm -Rf wordgrinder

# put a beautiful clickable icon in desktop:

echo '#!/bin/bash'>~/Desktop/wordgrinder.command
echo '~/bin/wordgrinder'>>~/Desktop/wordgrinder.command
chmod +x ~/Desktop/wordgrinder.command



 
Instalar
sudo make install PREFIX=/usr

Problema con iTerm2 en macOS (y un teclado aleman)

Siempre que el entorno es complejo suceden estas cosas: sucede que hablo espanol vivo en alemania trabajo para windows linux y macos y uso una mac. Para hacerlo mas complejo no uso el terminal incluido en macOS sino que uso iTerm2, que es muchooooo mejor.

Pero desde siempre he tenido problemas con algunos símbolos como el de tuberia y los corchetes rectos: [ | ]

Esto se debe a que mac los hace con la combinación [opcion]+5 o 6 y [opcion][control]+7 para tuberías.

Cuando quería hacer alguno de estos símbolos me salia un pequeno prompt asi:

[arg:5] o cuando apretaba la tecla varias veces : [arg:55555]
[arg:6] o cuando apretaba la tecla varias veces : [arg:66666]
[arg:7] o cuando apretaba la tecla varias veces : [arg:77777]

hasta ahora no sé que significa, o para qué sirve (si claro, argumentos para algo)

Para que salgan los corchetes y la tubería correctamente y no ese mensaje, es necesario cambiar algo en la configuración del perfil:

iTerm --> Preferencias --> Perfiles --> ServidorX --> Teclas --> Tecla opción izq "normal"

Claro, el problema se da SOLAMENTE cuando se configuran perfiles para acceder a servidores por SSH.

Si connectas SSH con otro, desde tu consola de localhost no pasa este problema con el perfil y es porque el perfil que tienes por defecto "default" ya tiene esta configuración.

miércoles, 11 de abril de 2018

mis tipps para DOSBOX

cambiar de pantalla pequena a full = alt + enter
cambiar el teclado (online) = keyb gr (para aleman) keyb (para espanol)
montar una carpeta (para mac) = mount /users/miusuario/documents/DOSBOX c:

Automatizar tareas con Cron en Linux / Unix

Cron es un servicio de automatización de tareas muy versátil.
Se configura en el archivo de configuración root /etc/crontab segun queramos como se ejecuten las tareas diarias, semanales o mensuales segun un formato establecido

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    cd / && run-parts --report /etc/cron.daily
47 6    * * 7   root    cd / && run-parts --report /etc/cron.weekly
52 6    1 * *   root    cd / && run-parts --report /etc/cron.monthly

Se ve fácilmente en el encabezado lo que cada columna significa.

Las tareas a ejecutar se guardan en las carpetas hourliy, daily, weekly, monthly en forma de scripts

Para la automatización de tareas que no se realizen según días de la semana existe tambien la herramienta "ANACRON" que funciona de modo parecido.


LVM fácil. Como crear y mantener particiones con el Logical Volume Manager de Linux

Primero que nada necesitamos el programa LVM.
Para comprobar si lo tenemos podemos llamar alguna de sus rutinas: pvs ó tambien pvdisplay.
el resultado será:

-bash: pvs: command not found

Si asi es el caso de no tenerlo entoces lo installamos con

apt-get install lvm2

despues de esto podemos probar los comandos de arriba otra vez y no tendremos ningún resultado. Esto es porque el comando fue encontrado pero no hay volumenes que mostrar

ahora debemos saber como se llama el dispositivo de almacenamiento, nos puedes ayudar

df -h

y ahora convertir el dispositivo en un Phisical Volume (PV)
(importante: no debe estar montado, si asi es usar umount)

pvcreate /dev/sdb1

y como proximo paso sera crear el Virtual Group y darle el Phisical Volume, asi:

vgcreate vg-nombre /dev/sdb1

y casi como último paso sera crear el o los volúmenes lógicos

lvcreate -L 100GB -n datos vg-nombre

donde -L sera por Longitude, que aquí son 100 Gigabytes y -n será el nombre del volumen, el último valor no tiene interruptor pues es el grupo de volumen dondé estara ubicado el LV

antes de montar la particion, sera necesario asignarle una partición pues de lo contrario estaremos recibiendo el mensaje:

Error: /dev/mapper/vg-nombre--datos: unrecognised disk label

aquí simplemente con

mkfs.ext4 /dev/vg-nombre/datos


ahora bastará que con el comando

blkid /dev/mapper/vg-nombre-datos

veamos la UUID del disco virtual y luego lo montemos con mount, o mejor lo escribamos en /etc/fstab

ver mi otro articulo de este blog llamado "agregar disco en linux"

viernes, 23 de marzo de 2018

Python : Una excelente explicacion sobre self

https://stackoverflow.com/questions/2709821/what-is-the-purpose-of-self
 
Pongo aqui este excelente explicacion sobre el parámetro de python "self". 
El original esta en el enlace de arriba, pero copio el articulo por si es que
desapareciera, ya que esta demasiado bueno como para permiterse perderlo:
 
 
When objects are instantiated, the object itself is passed into the self parameter.
enter image description here
Because of this, the object’s data is bound to the object. Below is an example of how you might like to visualize what each object’s data might look. Notice how ‘self’ is replaced with the objects name. I'm not saying this example diagram below is wholly accurate but it hopefully with serve a purpose in visualizing the use of self.
enter image description here
The Object is passed into the self parameter so that the object can keep hold of its own data.
Although this may not be wholly accurate, think of the process of instantiating an object like this: When an object is made it uses the class as a template for its own data and methods. Without passing it's own name into the self parameter, the attributes and methods in the class would remain as a general template and would not be referenced to (belong to) the object. So by passing the object's name into the self parameter it means that if 100 objects are instantiated from the one class, they can all keep track of their own data and methods.
See the illustration below:
enter image description here

escribir una lista en un archivo:
 
archivo.write("\n".join(itemlist))

miércoles, 14 de marzo de 2018

usos de XARGS

Me llega un Email con una lista de profesores los cuales haran una presentacion y cada uno debe guardarlo en una carpeta,
Si hago una carpeta donde todos ellos puedan escribir y poner su carpeta, en poco tiempo tendre algo como esto:
/Prof. Perez
/lopez
/Profesora Ortiz
/Suares Prof. Literatur
/4to Semestre Olivares
/Arquitectura
etc, es decir el caos!

entonces, copio la lista del email, y la pego en un archivo que llamare profes.txt
en Shell escribo:
cat profes.txt | xargs mkdir

el comando cat mostrara el contenido del archivo profes.txt y lo mandara al comando mkdir a traves de xargs. Entonces mkdir creara una carpeta con los nombres de cada uno asi:
/perez
/lopez
/ortiz
/suares
/olivares
/smidt

jueves, 8 de marzo de 2018

Linux/Unix Configurar una segunda tarjeta de red


Herramientas necesarias:
ifconfig, ethtool, ifdown, ifup, nano/vim

Suponiendo que nuestras 2 tarjetas de red ya estan instaladas en el equipo, al correr la utilidad ifconfig, es posible que sólo veamos una, eth0.

Podemos encontrar la tarjeta con el comando

ethtool eth1

el cual muy posiblemente sin nos dará la información sobre la tarjeta inactiva,  ademas de que al final pondra algo como:

Link detected: no

Lo cual significa que el cable no esta conectado (o no esta funcionando)

Si tratamos de arrancar la segunda tarjeta con ifup / ifdown, es posible que nos topemos con un mensaje:

interface eth1 not configured

Para configurarla nos vamos al archivo de interfaces con nano:

nano /etc/network/interfaces

alli, agregamos la nueva interfaz:


Para DHCP (automático)
iface etc1 inet dhcp

Manual:
iface eth1 inet static address 192.0.2.254/24
 
O con todos sus detalles:
iface eth1 inet static  
     address 192.0.2.7  
     netmask 255.255.255.0  
     gateway 192.0.2.254
     broadcast 192.0.2.254

Para el caso que  queramos hacer una red peer2peer o de crossover-cable
(ya no hace falta el cable especial), o con sólo un swicht como intermediario...


iface eth1 inet static  
     address 10.0.0.18
     netmask 255.255.255.0
     broadcast 10.0.0.254

Reiniciar el demonio de redes:
/etc/init.d/networking restart

viernes, 2 de marzo de 2018

Montar un nuevo disco fisico en una maquina linux

Primero que nada, debemos estar seguros que el disco esta reconocido por la BIOS.
Luego podemos usar el comando   df -h   para ver lo que hay, que tiene una salida mas o menos asi:

root@server:~# df -h
Dateisystem    Größe Benutzt Verf. Verw% Eingehängt auf
udev             10M       0   10M    0% /dev
tmpfs           806M    284K  805M    1% /run
/dev/sda1       7,5G    1,7G  5,6G   23% /
tmpfs           5,0M       0  5,0M    0% /run/lock
tmpfs           1,6G       0  1,6G    0% /run/shm

de todos estos sólo /dev/sda1 es un dispositivo fisico. En este caso conectado al SATA0 con 8GB (se trata de un pequeno SSD para el sistema. El dispositivo es sda pero la particion es sda1

El otro disco que he montado no aparece por ninguna parte. En mi test he atravesado un pequeño inconveniente: la aplicacion fdisk -l.

fdisk -l /dev/sdb

Como sé que mi segundo Disco esta en SATA1, entonces lo crearé como sdb.

Para ello usaré el comando

cfdisk /dev/sdb

este comando tiene una interfaz interactiva de usuario, y nos presentará de manera sencilla, p.e. el tamaño del disco en la columna Size Type. Si compruebas que coincide con el tamaño instalado vas por buen camino. la columa "Device" debería decir "Free Space".

El resto se explica por si solo: New --> Partition Size -->

cfdisk permite escojer algunos formatos de particion como ext4 (Linux). Pero faltan algunos como btrfs para el que podemos usar mkfs.btrfs /dev/sda1
Para asignar un formato ext4 usamos mkfs.ext4 /dev/sda1
y asi sucesivamente hay tambien:
mkfs          mkfs.btrfs    mkfs.exfat    mkfs.ext3     mkfs.ext4dev  mkfs.ntfs
mkfs.bfs      mkfs.cramfs   mkfs.ext2     mkfs.ext4     mkfs.minix


Luego podemos crear una carpeta en el dir raíz para montar la unidad:

mkdir /DATA

y montarla (temporalmente):

mount /dev/sdb1 /DATA

pero para que la particion se monte despues de cada reinicio debemos también, encontrar el UUID y anotarlo en el archivo fstab:

blkid /dev/sdb1

y escribir el fstab con el UUID obtenido en blkid imitando el formato del disco existente

 (ó vim) nano /etc/fstab

 y ahora sería bueno reiniciar para comprobar que nuestra particion esta todavia alli con df -h

Comando tipp: lsblk



miércoles, 28 de febrero de 2018

Claves Privadas y Publicas para SSH, Correo y demás

Bien, una vez mas y como siempre, escribo esta pequena explicación primero para mi mismo, y luego para el que le sirva de algo.

Las conecciones remotas a través de el protocolo SSH se pueden facilitar obviando el usuario y la contraseña usando sistemas de validacion asimetrica.

Esta validación se fundamenta en la creación de dos claves encriptadas, una privada que solo tendrá el dueño del mensaje o la conección y una pública que tendran los destinatarios de correo o las computadoras remotas.

El principio es practicamente el mismo para SSH y para los correos autentificados.

Primero que nada el usuario (x-man) que desee conectarse por SSH con Claves debe generar esas claves en el Cliente (aqui x-man-pc). Para esto usara en sistemas niXs una herramienta llamada ssh-keygen.

x-man-pc:~ x-man$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/x-man/.ssh/id_rsa):
Created directory '/Users/x-man/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/x-man/.ssh/id_rsa.
Your public key has been saved in /Users/x-man/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:G8M+S4PG5MfdWmbntaRnptl3KBgnpV2HdBoS8L1mJ8w X-man@x-man-pc.local
The key's randomart image is:
+---[RSA 2048]----+
|          ....   |
|           ...o .|
|            .o.= |
|       .    .o+..|
|      . S  + .E..|
|     + + =+.oo o |
|      = O .== .o.|
|     . o +.=.o*=+|
|        . .  =*oo|
+----[SHA256]-----+


Esto significa que ssh-keygen va a crear un par de claves publica/privada y las va a guardar (por defecto) en la carpeta (Escondida por . ) de usuario con el nombre id_rsa

Ahora ssh-keygen ha creado una nueva carpeta y dentro estan las dos claves.

Y cuando quiero conectarme por ssh...

este fingerprint (arriba) es lo mismo que esta guardado en ir_dsa.pub, es sólo otra formato, para verlo como fingerprint otra vez, debemos ejecutar:
 
x-man-pc:.ssh x-man$ ssh-keygen -l -f id_rsa.pub
2048 SHA256:G8M+S4PG5MfdWmbntaRnptl3KBgnpV2HdBoS8L1mJ8w x-man@x-man-pc.local (RSA) 
 
cambiar la Paraphase:
ssh-keygen -p -f ~/.ssh/id_dsa

Tipos de claves:
ecdsa = 256
dsa = 1024
rsa = 2048 
 
Importante:
Si el cliente pregunta "password"  3 veces antes de ejecutar la conneccion ssh, y luego conecta sólo poniendo un usuario existente en el servidor-ssh es porque la clave publica no se ha exportado al servidor, para esto ejecutamos:


sudo ssh-copy-id -i ~/.ssh/id_rsa.pub administrator@192.168.148.136

donde administrador va a ser el usuario que va a poder entrar con esa clave sin importar el nombre que tenga en el cliente. Es el nombre antes de @nombrehost. Tiene que existir en el Servidor

Si todavia para exportar la clave pregunta por 3 veces por la clave del administrador, puede ser que el acceso sobre ssh esta impedido para el root

Mas Informacion:
https://www.freebsd.org/doc/de_DE.ISO8859-1/books/handbook/openssh.html
http://manpages.ubuntu.com/manpages/xenial/en/man8/sshd.8.html 
https://www.linuxtotal.com.mx/index.php?cont=info_seyre_010
https://www.linuxtotal.com.mx/index.php?cont=info_seyre_003
https://serverfault.com/questions/690855/check-the-fingerprint-for-the-ecdsa-key-sent-by-the-remote-host
https://blog.mellenthin.de/archives/2007/08/08/ssh-fingerprint-uberprufen/
https://apple.stackexchange.com/questions/254468/macos-sierra-doesn-t-seem-to-remember-ssh-keys-between-reboots

TIPPS:
Si tienes varias computadoras no necesitas generar una nueva Llave en cada una, lo causaria que el servidor tenga una lista grande de computadoras, claves publicas, etc. , es suficiente si copias las claves que ya tienes de computadora en compu. No confundas esto con ssh-copy-id. Esta copia la debes realizar manualmente por ejemplo con un usb-stick o por la red.

- En algunas Distribuciones de Linux viene el usuario root desactivado, si lo activas por ejemplo con 
sudo -u root passwd
puedes tener problemitas para logearte por ssh y hasta para exportar la clave. Esto es puede ser porque el ssh esta desactivado para root. Para esto te vas a /etc/ssh/sshd_config y agregas la linea:
PermitRootLogin yes

- Cuando copiamos unas claves en la carpeta .ssh de manera manual (con el explorador de archivos, finder, cp) los derechos se cambian a rwxrr o 644, lo que ssh reconocerá como riesgoso. Al probar la conexion aparece el mensaje:

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0644 for '/Users/usuariox/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/Users/usuariox/.ssh/id_rsa": bad permissions
root@servidor.com's password:


para reparar esto basta asignarle los permisos 600. Algunos Blogs dicen que el 400 funciona, cosa que a mi no me resulta puesto que me dice que no es accesible.