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.


miércoles, 20 de diciembre de 2017

ocultar comentarios en vim

AGRUPA LOS COMENTARIOS EN UNA LINIA Y LOS MUESTRA RESUMIDOS
:set fdm=expr
:set fde=getline(v:lnum)=~'^\\s#'?1:getline(prevnonblank(v:lnum))=~'^\\s#'?1:getline(nextnonblank(v:lnum))=~'^\\s*#'?1:0
 
MAS LEGAL QUE LA SIGUIENTE PARA DESAPARECER COMENTARIOS
:hi! link Comment Ignore 
 
CAMBIA EL COLOR DE LOS COMENTARIOS, SI VIM ES NEGRO Y SE COLOCA NEGRO DESAPARECEN 
:hi! Comment guifg=bg ctermfg=white 



 
 

jueves, 23 de noviembre de 2017

Encontrar a que Unidad Organizacional pertenece un usuario

A veces hay cosas que deberian ser faciles pero son dificiles. Esta es una de ellas. A pesar de todo no es tan dificil:

en PowerShell ejecutar:

  Get-ADUser nombredelusuario

Entre la informacion importante que volcará esta el Distiguishname, donde esta la OU

viernes, 10 de noviembre de 2017

Mis notas sobre Python3.6

Opciones confundibles:

>>> pals = ['uno','pepe','tomate', 'gusanito']
>>> for p in pals:
    print(p)

   
uno
pepe
tomate
gusanito


>>> print(pals)
['uno', 'pepe', 'tomate', 'gusanito']


EXPLICACION:
pals es una lista. Listas se conocen por sus corchetes cuadrados [] .  En el primer ejemplo contamos cada elemento de pals, llamandolo "p" y lo imprmimimos. Asi el resultado fue cada elemento uno tras otro sin mas ni menos

print(pals)
Imprime la lista, tal como es, con corchetes, comillas, comas separadoras, y elementos.

si despues de esto hicieramos

>>>len(p)
8

mientras que
>>>len(pals)
4

y eso es porque
>>>print(p)
gusanito

mientras que:
 
>>> print(pals)
['uno', 'pepe', 'tomate', 'gusanito'] 


osea que 8 es el largo de la palabra gusanito y 4 la cantidad de elementos en la lista pals



viernes, 15 de septiembre de 2017

2.- Linux from Scratch bajo mi concepto

despues de borrar y borrar cosillas, me canse y crei capaz de empezar por otro lado: Linux desde cero. Mi plan es mas o menos asi:

1. Formatear un disco (con fdisk, diskpart, etc ?)
2. Ponerle MBR con install-mbr
3. Instalarle Grub con grub-install
4. Copiar un kernel

Mi objetivo es lograr todo esto desde la consola de comandos, pero para empezar voy a usar el instalador standard. Con este, mi proceso esta siendo asi:

1. Crear la tabla de particion. Para esto me ayudé con el video:
https://www.youtube.com/watch?v=AkkW63toTOM
aunque no separé / y /home, sino que hice solo /. /boot le asigne 250MB y swap 600MB. El disco virtual era de unos 6 GB
Al aceptar arranca ubuntu con una rutina de "installing the system"

Con un poco de búsqueda, me parecio que lo mejor para lograr mi objetivo es Gentoo Linux.

El Manual de Gentoo Linux recomienda dos caminos para la particion. Entre Fdisk y parted, escoji fdisk por parecer mas antiguo y tener mas adeptos asi como funciones. parted parece una implementacion que salva a los discos mayores de 2TB, cosa que hasta podría esperarse de fdisk en un futuro (quizas ya ahora, y estoy en el pasado)

Particion de Arranque BIOS:
fdisk
d (si se desea eliminar particiones existentes, mi DD virtual estaba nuevecito)
n (nueva)
p (primaria)
1 (particion no. 1)
 2048 (primer sector)
+2M (ultimo)
t 4
Particion de Arranque
default (al final de la anterior)
+128M
t 83 (linux)

Particion SWAP
default (al final de la anterior)
+1024M
t 84 (linux swap)Particion Root / 
default (al final de la anterior)
bis zum ende (default)
t 83 (linux)

Crear los sistemas de archivos:
mkfs.ext2 /dev/sda2
mkfs.ext4 /dev/sda4

el 2 con 2 y el 4 con 4 es solo coincidencia. Systema de Archivos EXT2 se utiliza para boot y ext4 es mejor para los archivos.

Inicializar y Activar la partition swap
mkswap /dev/sda3
swapon /dev/sda3

montar root
mount /dev/sda4 /mnt/gentoo

Copiar el Stage3 adentro
cd /mnt/gentoo
wget http://distfiles.gentoo.org/releases/amd64/autobuilds/20170824/stage3-amd64-nomultilib-20170824.tar.bz2 (puede variar segun version)

desempaquetar el bz2
tar xvjpf stage3-*.tar.bz2 --xattrs --numeric-owner


montar la particion gentoo
mount /dev/sda4 /mnt/gentoo

configuring compiler option
nada me molesta mas que un handbook o tutorial que parezca muy facil, explique banalmente y mande a leer otros manuales indecifrables. Exactamente esto es lo que este apartado de la guia de gentoo me parece.
Bueno, pero a lo hecho pecho y hay que seguir adelante.
IMPORTANTE: si reinicias la maquina, tendras que remontar la particion gentoo otra vez

Critica:
el trabajo de la gente de gentoo es maravilloso. Se puede aprender mucho a traves de este sistema. Pero la "independizacion" me parece perjudicial. Me explico: gentoo ofrece comodas herramientas para la configuracion como portage o emerge. Estas herramientas son lamentablemente solo bajo gentoo disponible. Aprender a configurar linux a traves de esto significa aprender gentoo y no linux estandar.

selecionar los mirrors:
otra vez a traves de una herramienta gentoo, aunque es bastante rudimentaria y a pesar de ello útil, ya que si no habria que escribir largamente direcciones de url´s en el archivo make.conf en una variable llamada GENTOO_MIRRORS

mirrorselect -i -o >> /mnt/gentoo/etc/portage/make.conf

mkdir /mnt/gentoo/etc/portage/repos.conf

cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf

Copiar informacion DNS
cp -L /etc/resolv.conf /mnt/gentoo/etc/

Montar archivos de sistema necesarios
root #mount -t proc /proc /mnt/gentoo/proc
root #mount --rbind /sys /mnt/gentoo/sys
root #mount --make-rslave /mnt/gentoo/sys
root #mount --rbind /dev /mnt/gentoo/dev
root #mount --make-rslave /mnt/gentoo/dev

descartar algun problema de gentoo con el cd
root #test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
root #mount -t tmpfs -o nosuid,nodev,noexec shm /dev/shm
root # chmod 1777 /dev/shm
entrar en el nuevo ambiente
root #chroot /mnt/gentoo /bin/bash
root #source /etc/profile
root #export PS1="(chroot) $PS1"

Montar la particion boot
el manual dice, "crear la carpeta boot", pero ya esta creada
root #mount /dev/sda2 /boot

otra opcion gentoo: 
Configurar Portage
 root #emerge-webrsync
 hasta aqui llege donde un error se repite:
rsync_ recv_generator mkdir "/usr/portage/xxxxx failed: no space left on device (28)
parece ser que la particion esta llena, y como el disco es de alrededor 8 GB casi no puede ser, entonces el problema parece estar en los inodos. Pero antes de entrar en la lata de buscar un error en un sistema de test del que no estoy ni tan convencido, prefiero continuar como si nada pasara...

eselect profile list
eselect profile set 2 (el standard, paso innecesario)

Critica:
No encuentro como instalar 2 perfiles. El estandar es nomultilib que no incluye las librerias x32 pero si ademas quiero systemd no veo la forma de elegir los dos

lunes, 17 de julio de 2017

mis notas sobre un DHCP server en linux (ubuntu 16)

modificar el archivo de interfaces para asignar al servidor una ip fija:
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens3
iface ens3 inet static
        address 192.168.0.240
        netmask 255.255.255.0
        gateway 192.168.0.1
        dns-nameservers 213.146.232.2 213.146.230.2


reiniciar la tarjeta de red
sudo service networking restart

modificar el nombre del host
sudo nano /etc/hostname 

e importante para que resuelva su propio nombre
sudo nano /etc/hosts 
agregar el nombre en la linea despues de localhost para 127.0.1.1


logs se encuentran en
cat /var/lib/dhcp/dhcpd.leases

y los de sistema que se pueden ver con
cat /var/log/syslog | grep -Ei 'dhcp'

escribir el archivo de configuracion
sudo nano /etc/dhcp/dhcpd.conf

contenido (minimo) del archivo de configuracion
# Lokal netz
option broadcast-address 192.168.0.255;
option subnet-mask 255.255.255.0;
option routers 192.168.0.1;
option domain-name-servers 213.146.232.2, 213.146.230.2;
# Dynamisch IPs
subnet 192.168.0.0 netmask 255.255.255.0 {
        range 192.168.0.50 192.168.0.70;
        default-lease-time 86400;
        max-lease-time 86400;
        }


reiniciar dhcp
sudo /etc/init.d/isc-dhcp-server start


viernes, 14 de julio de 2017

pequeno razonamiento sobre como utilizar los recursos de thunderbird para el trabajo efectivo

Cuales recursos?

Thunderbird no solo recibe emails. Aparte de otros clientes de email muy aceptados como Outlook o iMail, Thunderbird tiene una infinidad de recursos limitados solamente por nuestros propios conocimientos, ya que por ser OpenSource, podemos hasta "reescribir" el código para adaptarlo a nuestras necesidades.

Esto de reescribir el código es por supuesto una exageracion una porque pocos estamos en la capacidad de hacerlo y dos porque no es necesario porque los recursos que ya tiene son muy grandes y poderosos.

- Carpetas de Busqueda
- Carpetas (IMAP)
- Marcas con estrella (kennzeichnung)
- Palabras clave (schlagworte)
- Filtros rápidos
- Filtros
- Convertir en
-- Cita
-- Nota
- Columnas y Configuracion de Columnas para Carpetas

Ejemplo:

Casi una vez al mes pero irregularmente me llega un email invitandome a una conferencia a la que quiero participar.
Tengo varias reglas para que todos los email del departamento invitador se metan en una carpeta de notificaciones, pero quisiera que exactamente esas invitaciones no se me pasen desapercibidas.
En mi compañia los departamentos escriben nombrandose con corchetes en el asunto. El asunto es un poco variable, aunque he observado que una palabra siempre esta alli. Por esto, genero un filtro que busque dentro de la carpeta DEPTO-CONT la cadena "invitacion" y marque esta con mi palabra clave "citas" y agrege una estrella.

Como en la carpeta hay tambien invitaciones anteriores, entonces pierdo nuevamente un poco el objetivo, con lo que complemento el filtro con "antiguedad en días" y asi le pido que solo marque asi los emails que tienen menos de 60 dias.

Una posibilidad es tambien copiar o mover los emails que cumplen la regla a otra carpeta, llamada por ejemplo "Citas-Actuales". Copiar tiene una desventaja: cada vez que aplicas el filtro a la carpeta copia nuevamente lo mismo. Mover tiene la desventaja de que cuando busques los emails del departamento, los de estas citas no van a estar en esta carpeta. Para que esta repeticion no suceda, puedes agregar el filtro "estatus""no es""marcado", pues como la marca la agrega el filtro al copiar, no volvera a aplicarse el filtro en los emails ya copiados porque al mismo tiempo fueron marcados.

Esta desventaja de mover tambien se puede solventar con una carpeta de busqueda, pues es virtual y puede contener emails que estan en diferentes carpetas.


Ademas de estos recursos estandar de Thunderbird, puedo recomendar los Addons
ColorFolder
RegExSuche
ThemeFontSizeChanger
CalendarTweks

martes, 13 de junio de 2017

Como usar una carpeta compartida en la red para guardar Backups de Time Machine de Apple Mac

Para la mayoría, Apple Mac resulta un icono de la facilidad y amabilidad con el usuario. Claro que el usuario solo abre la maquinilla y lo ve todo bonito, pero cuando se trata de administrar Mac en un ambiente empresarial es otra la historia.

Los usuarios Windows, cuentan con Shadows Copy. Si los usuarios Mac guardan en una Carpeta de servidor windows esta funcion estar corriendo "por debajo de la mesa". Si un archivo se pierde o borra, se podrá recuperar del servidor windows, pero solamente con un Cliente windows en el que se haga clic con el boton derecho y luego en Versiones.

Este clic no estará presente en Mac, aunque las versiones estén ahí.

Claro que hay mucho que se puede hacer: Maquinas Virtuales, Servidores de Remote Desktops Services, Exploradores de Archivos especializados, etc. Lamentablemente todo resulta "pañitos calientes" o en IT-Jerga "Worksarounds".

Por otro lado, utilizar una Carpeta de Servidor Windows con SMB no siempre resulta tan facil con mac. Mac no tiene GPOs con las que podamos mandar los perfiles completos al servidor y una sincronizacion no es de mi agrado (pocas veces sabe el usuario que esta sincronizado y que no).

Pero Mac tiene su propia solución, y además que se ve bonita (esto es siempre importante para Mac y sus usuarios) se llama Time Machine o Maquina del Tiempo. En TM puedes ver como en el tiempo tus documentos y toda tu máquina ha pasado por el tiempo y puedes restablecer con una increible facilidad las versiones pasadas.

Claro, tienes que enchufar un disquito externo a tu mac... o también correrá bien (o mejor) si te compras una no tan económica Cápsula del Tiempo, con la que podrás guardar tus Backups por el aire.

Pero si la empresa tiene un grande y poderoso servidor SMB, porque necesitamos unos aparatitos de jugete como las capsulas del tiempo?. Eso se puede preguntar cualquier IT administrador que tenga mas de dos dedos de frente y algunos usuarios con fundamento.

Pues porque no es tan fácil. Lo ideal sería que mac nos permitiera en Time Machine, encontrar las Shares que estan disponibles en la red y que podamos decirle "aqui por favor". Pero esto no es posible. Si bien existe un "hack" bastante elegante y eficiente que nos lo permitirá:

Crea una Imagen de Disco con la aplicación estandard de administracion de Discos. Debe ser HFS-J (journaled) y de crecimiento automatico "parseled bunded" ni mas esta decir que del tamaño adecuado para tus documentos.

Pon esta imagen en tu carpeta de red (Share) y luego montala en el sistema de archivos (simple doble clic)

Ahora manda a Time Machine a usar esta unidad montada con

sudo tmutil setdestination /Volumes/TimeMachine

Despues tendrás el problema de montar esta Carpeta de Servidor o Share automaticamente en mac, pues aunque esto parezca evidente, y de echo en un clic en Windows, resulta un dolor de cabeza en mac. Sobre todo, si tus usuarios no son Administradores de su Cliente.

Pero esto es tema de otro Blog donde me ocupo de esto.
 


miércoles, 10 de mayo de 2017

Thunderbird deja todos los documentos anexos en en escritorio de Mac

escribo "de Mac" porque realmente no habi visto esto antes en Windows, quizas tambien pasa, quizas le pasa a alguien. Pero esta molesto hábito se puede configurar relativamente fácil y los encontramos en en link:

http://cote.cc/blog/stop-thunderbird-from-littering-your-desktop-with-attachments

Por si el link se pierde, o la pagina, o simplemente necesitas un manual es espanol, lo explico a continuacion:

- Ve a configuracion: Extras --> Configuracion --> Avanzada --> Trabajar la Configuracion (about:config)

- Ahi buscas la clave : "browser.helperApps.deleteTempFileOnExit" sin comillas, que debe estar presente y configurada como "False".

- Dale doble clic y deberia cambiar a "True", sino haslo manualmente.

y ya esta, con esto Thunderbird borrara todos los archivos temporales dejados al terminar la sesion.



jueves, 4 de mayo de 2017

Identacion para archivos XML sin identacion en TextWrangler

TextWrangler es excelente. Si algo le puede criticar es que es un poquito lento, pero para lo brinda en comparacion con los rapidos, se puede soportar.

Un problemita que me ocupó mientras trataba de editar archivos de configuracion sin saltos de linea en xml, es justamente que no tienen saltos de linea, es decir que toda la configuración era una sola linea. A pesar de que esto pueda parecer lógico, tambien debe resultar logico que se pueda crear una identacion, ya que cada linia posee un nuevo tag con la forma <> y esto lo puede encontrar un programa.

Entonces por esto me di a la busqueda de una solucion para ello y encontre esta bella solucion:
https://magp.ie/2010/02/15/format-xml-with-textwrangler/

No por copiar, sino porque me desagrada que a veces cuando guardo unos vinculos con buena informacion desaparecen de internet, pongo aqui tambien el contenido de la solución, sin dejar de agredecer a su autor original Eoin Gallagher

-----------------------------------------------------------------------------------------------------------------------
Simple guide
We want to add a UNIX script to TextWrangler so it can format an XML file… to do this, do this…
    • Open TextWrangler and open a new text file.
    • Copy and paste the code below into this file.
1
2
#!/bin/sh
XMLLINT_INDENT=$'\t' xmllint --format --encode utf-8 -
    • Save the file, something like Tidy XML.sh, in the ~/Library/Application Support/TextWrangler/Text Filters/ folder.
    • Now anytime you want to format an XML file, just go to the Text menu and select the Tidy XML.sh script and BOOM, neat tidy XML.
text-filter
This is an interesting facility to extend an already great text editor, and I will be looking into more cool scripts that can hopefully lessen my daily annoyances.
UPDATED:: Added UTF8 encoding, thanks Rolan.
UPDATED:: Added a post to format PHP code in TextWrangler.
UPDATED:: Updated for TextWrangler version 4.5.8.

---------------------------------------------------------------------------------------------------------------------