‘ Linux ’ category archive

Problemas comunes III: respaldos a distancia con rsync

November 30, 08 by serumax

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?

November 26, 08 by serumax

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!

November 19, 08 by serumax

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

November 17, 08 by serumax

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;
};

Read the rest of this entry »

Claves DSA para conectarse por ssh sin contraseña

November 11, 08 by serumax

Terminal terminator ubuntu linux

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.
Read the rest of this entry »

Gnome-do y Twitter

November 06, 08 by serumax

gnome-do

Una de las primeras cosas que me gustó de Linux Ubuntu Gnome fuel el atajo de teclado alt+F2. Sencillamente me olvidé de los menues y del mouse para lanzar programas y comandos sencillos…

Hace un buen rato también comencé a usar Gnome-do, pero la verdad es que sentía que le faltaba un poco de madurez al lanzador, pero ahora con la versión 0.6.1.0 creo que ya la tiene de sobra…

Esta nueva versión viene con una alta dosis de plugins ready to go que permiten controlar casi todo el Escritorio sin apenas usar el mouse.Por ejemplo, hay plugins para controlar Rhythmbox, la lista de contactos en Pidgin, alertas de email nuevos en Gmail o twittear…

Viendo twits

Read the rest of this entry »

Problemas comunes II: Cambiar permisos de archivos

October 10, 08 by serumax

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:

¿Qué es linux y por qué lo uso?

October 07, 08 by serumax
Linux vs Windows

Acabo de leer una entrada que intenta explicar qué es Linux en 10 frases a personas que no lo conocen; aunque es certero en lo que señala, creo que es una mala pésima forma de presentar Linux a un novato. Si en la primera frase habla del Kernel, en la segunda, el principiante salió corriendo. Eso es seguro.

Sin duda, creo que las distros modernas de Linux,  como Ubuntu o CentOS, son sistemas robustos, seguros y amigables con el usuario que no quiere ni debe ser un experto. De hecho, no hay nada más fácil y confiable que instalar programas con Synaptic o Yum. Pero la verdad es que intentar explicar qué es Linux en 10 frases me parece estéril, sobre todo si esperamos con ello convencer sobre las bondades del pingüino.

Lo digo porque llevo 11 años usando Linux y aunque he visto infinidad de veces la cara de envidia que ponen los usuarios Windows el ver mi escritorio con Compiz y Cairo-Dock, ninguno se ha atrevido a instalar Linux por su cuenta (a uno le gusta Quanta para trabajar, pero igual tiene su notebook con Windows y añora tener un Mac).  Yo mismo comencé alternando entre Windows 95 y Redhat 5.0 en 1997, y luego entre Win XP y SuSe; vicio que dejé sólo hace 3 años cuando me hice fan de Ubuntu.

Es cierto que desde los ‘90 hasta ahora Linux ha evolucionado muchísimo como Sistema Operativo orientado al uso de Escirtorio Personal, primero emulando a Mac con Compiz-Fusion (Beryl) y ahora entrando con fuerza en el mercado de los NetBooks con versiones ligeras y adaptadas al uso de la Red como Ubuntu Netbook Remix o la versión Xandros para el EeePC de Asus.

A pesar de esto, creo que los usuarios se resiste a cambiar sus hábitos frente al computador. Sin ir más lejos, esta semana  Microsoft nuevamente ha aunciado que extenderá “la vida” de Windows XP y tanto MSI como Canonical han tenido que salir a dar explicaciones frente a la noticia sobre alto número de Netbook’s con linux que devueltos por usuarios que no quieren complicarse la vida aprendiendo un nuevo Sistema Operativo.

Por eso creo que ni 100 razones son suficientes para cambiarse de Sistema Operativo (Linux no es más que eso) si antes no se está dispuesto a cambiar de vicios hábitos y eso requiere tiempo. Aunque hay dos hábitos que se olvidan rápido: correr el antivirus como paranoico y reiniciar el equipo como necio.

PD. Sabía usted que Windows también tiene un Kernel. plop!

Problemas comunes I: Max File Uploads en PHP

October 02, 08 by serumax

Como programador y administrador de servidores muchas veces me encuentro con problemas simples que, por diversas razones, se repiten cada cierto tiempo. Algunas veces son tareas que fueron realizadas en  proyectos antiguos que nadie recuerda o conoce; otras, en cambio, se pierden en la trivialidad de lo cotidiano y, por lo tanto, no están debidamente documentadas para que el resto de las personas con las que trabajo puedan resolverlas por su cuenta.

La idea entonces es crear y compartir algo así como un repositorio de soluciones rápidas a estos problemas comunes. Por tanto, si se animan, espero que en los comentarios pregunten lo que sea pertinente al tema expuesto o propongan nuevos problemas.

Problema: aumentar tamaño máximo para subir archivos con PHP

Estamos trabajando con un gestor de contenidos como Wordpres o Drupal y necesitamos subir mediante un formulario archivos PDF, PNG o DOC que pesan sobre 2 MB, pero resulta que no se puede y nos sale un mensaje de error.

El problema no es del gestor de contenidos. La configuración por defecto de PHP en un servidor Linux permite copiar o subir archivos desde la máquina local al servidor que tengan un tamaño máximo de 2MB. Aunque no es recomendable aumentar esta cuota en entornos poco protegidos o públicos es posible hacerlo de la siguiente forma:

serumax@bunbury:~$  sudo nano /etc/php5/apache2/php.ini
[sudo] password for serumax:

Ingresamos la clave sudo de nuestra máquina y con CTRL+W procedemos a buscar “upload_max_filesize“:

;;;;;;;;;;;;;;;;
; File Uploads ;
;;;;;;;;;;;;;;;;

; Whether to allow HTTP file uploads.
file_uploads = On

; Temporary directory for HTTP uploaded files (will use system default if not
; specified).
;upload_tmp_dir =

; Maximum allowed size for uploaded files.
upload_max_filesize = 2M

Nos fijamos que el parámetro file_uploads esté en On y donde dice upload_max_filesize = 2M reemplazamos por el tamaño que necesitamos, pero ojo con el tiempo de ejecución de los script en PHP, que por defecto es de 30 segundos (se archiva un nuevo draft) y si subimos un archivo muy grande esto puede verse afectado.

Por ejemplo, podemos aumentarlo a 5 Megas:

; Maximum allowed size for uploaded files.
upload_max_filesize = 5M

Guardamos con CTRL+O y salimos con CTRL+X.  Con esto ya hemos hecho lo más díficil. Ahora sólo nos resta volver a iniciar Apache, sí Apache, para  que los cambios tengan efecto. Esto porque PHP generalmente corre como módulo de Apache

serumax@bunbury:~$sudo /etc/init.d/apache2 restart
[sudo] password for serumax:

o mejor solo recargamos la nueva configuración

serumax@bunbury:~$sudo /etc/init.d/apache2 reload
[sudo] password for serumax:

Como comentario final, este ejemplo lo hice pensando en un servidor Linux  Ubuntu 8.04, con Apache2 y PHP5. Espero que sea de utilidad :)

Producir plantillas HTML con wget

September 16, 08 by serumax

Seguramente muchas veces un cliente les ha pedido un sitio completo y enorme sólo en HTML. O sea, nada de utilizar PHP, Ruby o Python, ni menos hablar de un CMS como Drupal o Wordpress. Si es así, entonces sabrán lo tedioso que se vuelve modificar una pequeña parte del sitio en una centena de plantillas cuando éste ya está prácticamente listo.

Por suerte en linux existe una pequeña pero poderosa herramienta llamada wget, que sirve para descargar sitios completos.

Con wget y un poco de ingenio podremos producir las plantillas HTML que necesitamos, pero usando nuestro gestor de contenidos favoritos. Para conseguirlo, por ejemplo, podemos usar reglas de reescritura en el .htaccess para que los archivos .html sean tratados tal como uno .php; también sería posible usar un pequeño y muy básico modelo MVC para que según la variable $_SERVER["REQUEST_URI"] (quitando los slashes y  la extension .html con ereg_replace o split) se pueda obtener el nombre de la plantilla HTML/PHP que deseamos utilizar.

En index.php:
if (file_exists(”/ruta_template/”.$mvc->uri.’.php’)){
include(”/ruta_template/”.$mvc->uri.’.php’);
}

Y en .htaccess:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

Y finalmente descargamos con wget usando sus opciones:

  • recursive: descarga el sitio web completo.
  • domains misitio.org: no descarga enlaces fuera de website.org.
  • no-parent: no sigue los enlaces fuera del directorio micarpeta/html/.
  • page-requisites: obtiene todos los elementos que componen la página (imágenes, css, javascript)
  • html-extension: guarda los archivos con extensión .html (ojo con esto que no lo he probado y seguro nos ahorra harto trabajo)
  • convert-links: convierte los enlaces para que puedan trabajarse fuera de línea.
  • restrict-file-names=windows: modifica el nombre de archivos para que también funcionen en Windows.
  • –no-clobber: no sobrescribe ningún archivo existente (en caso de reanudar una  descarga interrumpida)
Tag cloud widget powered by nktagcloud