Cómo borrar archivos de un sólo tipo y de froma recursiva

Simple, con este comando buscas (find) todos los archivos de un tipo determinado (zip, gz, jpg, gif, pdf, etc) y los borras recursivamente a lo largo del árbol de directorio, partiendo desde donde estás ubicado. Con la opción -i te pedirá confirmar ante de borrar un cierto archivo, mostrándote su nombre en la consulta.

Sin pedir confirmación

find . -type f -name “*.gz” -exec rm -f {} \;

Con confirmación

find . -type f -name “*.gz” -exec rm -i {} \;

Suerte!

Password random en php

Hace un par de años tuve que comenzar a generar claves aleatorias para algunos sistemas de registro de usuarios seguros y captchas en los que he trabajado. He utilizado varias fórmulas, pero hasta ahora la que considero más acabada y elegante es esta:

$claves = array_flip(array_merge(range(’a’,’z’),range(’A’,’Z’),range(0,9)));
$password = implode(“”,array_rand($claves, 6));

No necesita mucha explicación, pero lo que hace es generar tres arrays, uno de la “a” a la “z” en minúscula, otro en mayúscula y el tercero, del “0” al “9”.  Luego unimos los arrays en uno gracias a array_merge, y con array_flip intercambiamos “keys” por “values“. En la segunda línea generamos un nuevo array compuesto por 6 “keys” aleatorias y, finalmente, obtenemos nuestra password random con el implode que nos devuelve un string de 6 dígitos.

Referencia
Generador de Password Aleatorios

Problemas comunes III: respaldos a distancia con rsync

Aunque existen numerosas herramientas de Escritorio para respaldar y sincronizar archivos en distintas máquinas, ninguno me ha gustado funcionado correctamente. Por lo mismo, prefiero usar el terminal y rsync. Una forma fácil de entender y comenzar con este comando es la siguiente:

serumax@bunbury:~$ comando -opciones /carpeta-o-archivo/origen /carpeta-o-archivo/destino

Es importante destacar que cuando se trata de carpetas  las rutas de origen y destino no se comportan de igual forma si se usa o no un salsh (/) final. De esta forma, si el ejemplo anterior fuese real, tendríamos como resultado la carpeta “destino” ahora contiene una llamada “origen”

Veamos entonces algo más concreto. Pongamos por caso que necesitamos respaldar todos los archivos de la carpeta /var/www/sitio1 en una carpeta de igual nombre pero en otra máquina. Para esto tenemos dos opciones:

Opción 1
rsync -avz /var/www/sitio1 usuario@192.168.0.1:/var/www

Opción 2
rsync -avz /var/www/sitio1/ usuario@192.168.0.1:/var/www/sitio1/

Como pueden observar, para indicar donde respaldaremos los archivos debemos escribir el usuario y la ip de la máquina de destino usuario@192.168.0.1, seguido de los “:” y de la ruta /var/www/sitio1/, esto nos permitirá autenticarnos en la máquina remota tal como lo hacemos con ssh. Para conocer el resto de las opciones de rsync podemos recurrir a man rsync, no obstante, en el ejemplo hemos usado -avc, que significa que respaldaremos la carpeta de froma recursiva en mdo verboso (con salida por pantalla) y con compresión.

Finalmente, para evitar que nos pregunte la password -por ejemplo para programar un crontab- podemas crear un certificado DSA.

Post relacionados

Código Abierto: ¿No das la talla?

open-source-microsoft

Así de simple, la nueva ley señala que:

“La cotización de equipos computacionales que incluya el costo de licencias debe indicar al menos una alternativa con software licenciado bajo la modalidad de fuente abierta o libre de costo.

No se podrá adquirir licencias en la compra de equipamiento computacional y las licencias de software que se requieran deberán ser adquiridas individualizándose por separado, y su cotización deberá acompañarse por una justificación especial si es que existe un software de código abierto o libre de costo que realice la misma función”.

Por lo que si eres uno de esos informáticos que pensó que ahora tendrás que estudiar más, te digo que estás en lo correcto. Como dice Francotirador en su post, si no das la talla te cambiarán a ti no al sistema.

Pero no todo será tan terrible, por ejemplo, tus servidores tendrán mayor “Up Time” que nunca, no tendrás que andar reparando tarros con malware ni viruses y con poco esfuerzo tendrás a tu disposición software de punta para trabajar con comodidad y eficiencia. O sea, tiempo para estudiar tendrás, eso es seguro!

Prism, ideal para aplicaciones web como escritorio!

prism

En resumen, Prism es otra aproximación más a esto de las aplicaciones web como escritorio bajo el alero de la cloud-computing, es decir, es la apuesta de Firefox para competir contra Adobe Air y Silverlight.

En mi opinión, la ventaja que tiene Prism por sobre la otras alternativas es que al ser una especie de fork de Firefox ya está diponible en todos los Sistemas Operativos, vale decir, Windows, Mac  y Linux, tanto en versiones de 32 como de 64 bits.

Además, a diferencia de Air y Silverlight, Prism no pretende crear una web alternativa sino que intenta extraerla del navegador para llevarla mediante XUL a nuestro escritorio.

Esto significa que pueden desarrollarse aplicaciones web haciendo uso de tecnología y lenguajes conocidos: HTML, JavaScript, CSS, etc y que, en favor de la convergencia, más vale crear aplicaciones  minimalistas que realicen funciones específicas, puesto que pueden (re)utilizarse tanto en dispositivos móviles como en widgets de manera independiente de la plataforma y del Sistema Operativo, con una reducción de costos en tiempo y dinero que puede ser sustancial.

Más información

¿Cómo configurar DNS con Bind9? Primera parte

Con este post había pensado continuar mi serie de post de “Problemas comunes“, pero ciertamente siendo este un problema común entre administradores de redes, debo confesar tal como sucede con el tema de las particiones de Discos Duros, la configuración de un servidor DNS necesita un poco más de conocimientos, experiencia y  -oops!- cabeza.

¿Qué necesitamos?

  • Un servidor con Linux (para este caso usaremos Ubuntu)
  • Bind 9
  • Un poco de experiencia con el terminal y opcionalmente con Midnight Commander
  • Un editor de texto plano (vim, nano, gedit, kate, o el de MC)
  • Privilegios de root o sudo

Como este tutorial es sobre DNS no me extenderé en detalles anexos, es decir, si usas Fedora o Centos, o prefieres Nano en vez de Vim notarás ciertas diferencias que supongo dominarás bien!

Lo primero es lo primero, instalar Bind9:

serumax@bunbury:~$ sudo apt-get install bind9
[sudo] password for serumax:

Acto seguido editamos el archivo named.conf.local

//o nano o gedit
sudo vim /etc/bind/named.conf.local

y agregamos una nueva zona:

zone “dominio.cl”{
type master;
file “/etc/bind/db.dominio.cl;
};

Continue reading ¿Cómo configurar DNS con Bind9? Primera parte

Claves DSA para conectarse por ssh sin contraseña

Terminal terminator ubuntu linux

[ad#co-1]

Cada vez administro más servidores Linux (ayer se sumaron dos más ubicados en Chicago), por lo que suelo conectarme todo el tiempo por SSH y, obvio, tengo teclear las contraseñas cada vez me conecto a una máquina, algo que realmente se ha vuelto tedioso. Por suerte se puede configurar SSH para que utilice certificados o claves DSA, de tal forma podremos autenticarnos automáticamente en el servidor.

Entonces generaremos las claves DSA usando el protocolo 2, que es el protocolo utilizado y recomendado hoy por hoy. Una de las claves generadas será la “clave privada” que quedará guardada en nuestra máquina y opcionalmente podrá ser protegida con una contraseña.  La otra será la “clave pública” que es la que transferiremos al servidor remoto.

Para generar estas claves utilizamos el comando ssh-keygen:

traveler@talita:~$ ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/home/traveler/.ssh/id_dsa):
Created directory ‘/home/traveler/.ssh’.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/traveler/.ssh/id_dsa.
Your public key has been saved in /home/traveler/.ssh/id_dsa.pub.
The key fingerprint is:
b4:23:82:5a:19:5b:6f:f3:78:31:fb:f8:45:0b:ed:8f traveler@talita

En la pregunta “Enter file in which to save the key…” hagan enter para que tome el valor predeterminado, lo mismo pueden hacer cuando se les pregunte por la contraseña si no quieren proteger la clave privada con una password.
Continue reading Claves DSA para conectarse por ssh sin contraseña

Problemas comunes II: Cambiar permisos de archivos

El sistema de permisos en linux aparentemente es complejo, sobre todo porque hay al menos dos notaciones: simbólica y octal.

Pero lo cierto es que que con un par líneas de comandos es suficiente para comenzar a entender.

//Darle permisos de escritura, lectura y ejecución a un archivo
$sudo chmod 777 archivo.txt

//Darle permisos de escritura, lectura y ejecución a todos los archivos de una carpeta
$sudo chmod -R 777 /home/serumax/public

//hacer un archivo ejecutable
$sudo chmod +x scriptshell.sh

Pero si necesitas más, como con cualquier comando de linux o unix, tienes una ayuda a mano invocando el comando seguido con el parámetro -help:

//También pudes invocar man chmod para algo más completo
$chmod –help

Referencias: