viernes, 29 de noviembre de 2013

Rsync

rsync es sinónimo de sincronización remota.
rsync se utiliza para sincronizar los archivos y directorios de un lugar a otro de una manera eficaz. La ubicación de nuestra copia de seguridad puede  ser en el servidor local o en un servidor remoto.
Las carcateristicas más importantes son:
  • Velocidad :  réplicas de todo el contenido entre la fuente y directorios de destino ejecutando las transferencias  sólo de los bloques o bytes modificados a la ubicación de destino, lo que hace la transferencia muy rápida.
  • Seguridad : rsync permite el cifrado de datos mediante el protocolo SSH durante la transferencia.
  • Bajo ancho de banda : rsync utiliza la compresión y descompresión del bloque de datos por el bloque en el envío y la recepción final, respectivamente. Por lo tanto el ancho de banda utilizado por rsync será siempre inferior en comparación con otros protocolos de transferencia de archivos.
  • Privilegios : No hay privilegios especiales que sean necesarios para instalar y ejecutar rsync.
rsync opciones origen destino
Veamos 10 casos practicos:
Caso 1. Sincronizar 2 directorios en nuestro servidor local o disco duro.
rsync -zvr /home/usuario/Documentosimportantes/  /home/usuario/Copia2010/
donde,
- z : activa compresión.
- v : modo verbose.
- r : indica recursividad. Lo hara con todos los archivos y directorios que cuelgan de Documentosimportantes.
Caso 2. Conservar permisos, usuarios, fechas, etc, de nuestra copia seguridad.
Para ello manejaremos la opción -a  y estas son sus caracteristicas:
  1. Modo recursivo.
  2. Conserva los enlances simbolicos.
  3. Conserva los permisos.
  4. Conserva fecha y hora.
  5. Conserva propietario y grupo.
rsync -azv /home/usuario/Documentosimportantes/  /home/usuario/Copia2010/
Caso 3. Sincronizar unicamente un archivo.
rsync -av /home/usuario/Documentosimportantes/listado.odt  /home/usuario/Copia2010/listado.odt
Caso 4. Sincronizar archivos desde servidor local o nuestro disco duro a servidor remoto.
Se debe especificar el usuario y la dirección ip del servidor remoto, asi como el directorio de destino.
rsync  -avz /home/usuario/Doc_importantes/  openyourshell@192.168.1.100:/home/openyourshell/
Caso 5. Sincronizar archivos en un servidor remoto en modo seguro mediante ssh.
Añadiremos la opción -e y ssh.
rsync -avz -e ssh  openyourshell@192.168.1.100:/home/openyourshell/  /root/Copia2010rem/
Caso 6. Sincronizar archivos desde un servidor remoto a nuestro servidor local o disco duro.
rsync -avz  openyourshell@192.168.1.100:/root/Copia2010rem/  /home/usuario/Copia2010/
Caso 7. Sincronizar sin sobrescribir los archivos modificados o actualizados.
A veces puede interesar hacer una copia de nuestros archivos sin sobrescribirlos para no perderlos y mantener las copias intactas independientemente. Para ello usaremos la opción -u.
rsync -avzu /home/usuario/Doc_importantes/  /home/usuario/Copia2010/
Caso 8. Visualizar el progreso de la transferencia en la sincronización.
La opción que añadiremos para hacer esto posible será –progress. Visualizaremos % de progreso.
rsync -avzu –progress /home/usuario/Doc_importantes/  /home/usuario/Copia2010/
Caso 9. Sincronizar archivos a un dispositivo externo de nuestro servidor local o disco duro.
Es de uso común hacer respaldos de nuestros archivos a un disco duro externo o pendrive usb. Nos aseguramos de tener nuestro disco externo o pendrive conectado y dev/sdb1/ es el lugar que ocupa, pudiendo ser sdb2,sdc1, etc.
rsync -avz /home/usuario/Documentosimportantes/  dev/sdb1/
Caso 10. Sincronizar archivos y borrar los archivos en el directorio destino que ya no se encuentran en nuestro directorio fuente.
La opción a utilizar es  –delete.
rsync -avz –delete /home/usuario/Doc_importantes/  /home/usuario/Copia2010/
http://openyourshell.wordpress.com/2010/12/30/el-comando-rsync-para-nuestras-copias-de-seguridad-en-gnulinux/


Otra forma de probar el rsync es luego de configurado en ambos servidores ejecutar la copia de la siguiente forma

rsync -avzh servidor::/rutaAcopiar/ ./

donde a son los archivos y z compresion

Si no puedes realizar la copia revisa el log que estaria en una ruta parecida a esta rsyslog

RPM TIPS

Instalando/desinstalando Para instalar un paquete rpm, prueba rpm -i ruta/al/rpm/ainstalar.rpm o si simplemente quieres actualizarlo, rpm -U ruta/al/rpm/aactualizar.rpm. Para desinstalar rpm -e programaAdesinstalar o añade la opción --nodeps si deseas forzar la desinstalación ignorando las dependencias (no recomendado, bajo tu responsabilidad) Si bien la opción básica para instalar es rpm -i, normalmente se usa en su lugar rpm -ivh (v de verbose y h de hashes para mostrar barra de progreso de la instalación), o quizas incluso mejor, rpm -Uvh, que es como la anterior, pero desinstalando si hubiera una versión ya instalada. rpm da error si tratas de instalar un paquete ya instalado. Para forzar la reinstalación puedes usar rpm -ivh --replacepkgs Consulta de RPMs Para mostrar todos los .RPM instalados, usa rpm -qa. Para ordenar y paginar la salida, puedes redirigir a sort y less: rpm -qa|sort|less, o grep: rpm -qa | grep aplicacion. Recuerda sin embargo que esta consulta es contra la base de datos de rpm, y por tanto no tendrás información de aplicaciones instaladas por otra via que no use dicha base de datos, por ejemplo paquetes instalados desde la fuente. Si lo que quieres es consultar la instalación de un programa concreto, prueba * rpm -qi nombreprograma * rpm -qil nombreprograma para consultar donde está instalado * rpm -qpi nombre.programa.rpm para consultar un programa aun no instalado * rpm -qpil nombre.programa.rpm para consultar donde se instalará * rpm -qf /ruta/a/archivo para conocer de que paquete depende un archivo determinado. Mas aun ? rpm -Va verifica todos los paquetes instalados. rpm -qdf /ruta/a/archivo/ muestra archivos de documentación del paquete. rpm -qcf /ruta/a/paquete/ muestra archivos de configuración del paquete. Si hemos actualizado un paquete que disponía de archivos de configuración, rpm creará una copia del archivo antiguo, por si deseas pasar los cambios al archivo de configuración del nuevo paquete. Y desinstalar paquetes rpm -u nombrepaquete. Para instalar o actualizar paquetes tenemos que especificar su nombre completo, es decir, foo-1.0-1.i386.rpm Para el resto de opciones de rpm, basta que uses el nombre de la aplicación, por ejemplo, rpm -u foo Source rpm Normalmente las rpm son archivos binarios ejecutables, pero en ocasiones se distribuye en formato rpm el propio código fuente, con la extensión .srpm (s de source). El rpm contendrá un archivo spec con información para procesal el código: rpm --rebuild archivo creará para nsotros un rpm ejecutable. 3. Actualizar un paquete RPM - se debe usar este comando: # rpm -Uvh algunpaquete.arc.rpm Nota: Cuando este comando es utilizado, RPM no desinstala la versión anterior del paquete e instala la nueva versión. 4. Consulta de un paquete RPM - usando el siguiente comando: # rpm -q nombredelpaquete E.g.: [root@ns]# rpm -q glib glib-1.2.10-15 Note: El comando rpm -q mostrará el nombre del paquete, la versión y el número de la realización del paquete instalado. Usted puede usar este comando para verificar si el paquete está instalado o no en el sistema. 5. Información del Paquete RPM - al usar este comando: # rpm -qi paquete Ej.: [root@ns]# rpm -qi php Name : php Relocations: (not relocatable) Version : 5.2.6 Vendor: http://www.atomicrocketturtle.com/ Release : 1.el5.art Build Date: Fri 02 May 2008 05:17:44 PM BRT Install Date: Mon 16 Jun 2008 02:03:10 PM BRT Build Host: build.atomicorp.com Group : Development/Languages Source RPM: php-5.2.6-1.el5.art.src.rpm Size : 10040864 License: PHP Signature : DSA/SHA1, Mon 05 May 2008 05:03:11 PM BRT, Key ID 32a951145ebd2744 Packager : Scott Shinn URL : http://www.php.net/ Summary : The PHP HTML-embedded scripting language. (PHP: Hypertext Preprocessor) Description : PHP is an HTML-embedded scripting language. PHP attempts to make it easy for developers to write dynamically generated webpages. PHP also offers built-in database integration for several commercial and non-commercial database management systems, so writing a database-enabled webpage with PHP is fairly simple. The most common use of PHP coding is probably as a replacement for CGI scripts. The php package contains the module which adds support for the PHP language to Apache HTTP Server. Como usted puede observar este comando muestra la información del paquete, incluyendo el nombre, versión, y descripción del programa instalado. 6. Lista de archivos del paquete rpm - usando este comando: # rpm -ql package Ej.: [root@ns]# rpm -ql php /etc/httpd/conf.d/php.conf /usr/lib/httpd/modules/libphp5.so /var/lib/php/session /var/www/icons/php.gif Nota: Este comando mostrará la lista de todos los archives instalados por el paquete RPM. Por lo tanto esto funcionará solamente cuando el paquete se encuentre instalado en su sistema 7. Verificar la firma de un paquete RPM - usted puede usar este comando: # rpm –checksig paquete Nota: Este comando verifica la firma PGP del paquete para asegurarse de la integridad y origen del mismo, siempre es recomendable realizar la verificación.