Publicacion de problemas informaticos y su resolución en mi vida diaria -trabajo y casa- para mi documentación personal y para quien le sirva. Temas corrientes aqui son: Linux, macOS, Deployement, bash, configuraciones, DHCP, optimización, Samba, Programas, DOSBOX, Comandos de consola, Scripts, Virtualización, DNS,
viernes, 26 de octubre de 2018
Glusterfs y Virsh 2
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
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
[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
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
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 cuandoel 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
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 comandossu -
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...
- Keine Wortliste für Englisch -> Spanisch...
- Kopieren
viernes, 31 de agosto de 2018
sábado, 25 de agosto de 2018
FreeBSD experiencias
------------------------
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
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?
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
miércoles, 9 de mayo de 2018
Atributos extendidos en Apple macos
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
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)
# 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.commandecho '~/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)
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 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
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
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:
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.
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:
escribir una lista en un archivo:
archivo.write("\n".join(itemlist))
miércoles, 14 de marzo de 2018
usos de XARGS
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:
Para DHCP (automático)
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:
viernes, 2 de marzo de 2018
Montar un nuevo disco fisico en una maquina linux
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
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.