viernes, 14 de noviembre de 2014

Respaldos Automaticos con Crontab Linux


Antes que nada algo de teoría, para entender mejor!

¿Qué es cron?

El nombre cron viene del griego chronos que significa “tiempo”. En el sistema operativo Unix, cron es un administrador regular de procesos en segundo plano (demonio) que ejecuta procesos o guiones a intervalos regulares (por ejemplo, cada minuto, día, semana o mes). Los procesos que deben ejecutarse y la hora en la que deben hacerlo se especifican en el fichero crontab.
Cómo funciona

El demonio cron inicia de /etc/rc.d/ o /etc/init.d dependiendo de la distribucion. Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab /etc/crontab o en /var/spool/cron en búsqueda de tareas que se deban cumplir. Como usuario podemos agregar comandos o scripts con tareas a cron para automatizar algunos procesos. Esto es util por ejemplo para automatizar la actualizacion de un sistema o un buen sistema de respaldos.

¿Qué es Crontab?

Crontab es un simple archivo de texto que guarda una lista de comandos a ejecutar en un tiempo especificado por el usuario. Crontab verificará la fecha y hora en que se debe ejecutar el script o el comando, los permisos de ejecución y lo realizará en el background. Cada usuario puede tener su propio archivo crontab, de hecho el /etc/crontab se asume que es el archivo crontab del usuario root, cuando los usuarios normales (e incluso root) desean generar su propio archivo de crontab, entonces utilizaremos el comando crontab.

Ahora la practica realizada el día de hoy en clase empleando Debian 7:

LAB parte 1:
1) subir informacion a una carpeta en su home(20 MB aprox).
ejemp: /home/luislao/trabajo


1.1 Para esto realizamos una copia desde la maquina nativa, Windows, empleando WinSCP, para ellos nos conectamos a la maquina virtual con la direccion IP.


Ya dentro de las interfaces de archivos de ambas maquinas, copiaremos en este caso, una carpeta llamada ComoP.A-FL



Subimos el archivo

Damos alguna ubicación especifica que recordemos o donde se nos haga mas comodo.



1.2 El archivo de poco mas de 20 MB sube rapidamente.


Corroboramos que la carpeta subida este ahora en la maquina con Debian.



Ubicamos la capeta, como el accesorio de Archivos en Debian

Encontramos la carpeta y vemos los archivos completamente copiados.


Aquí abrí el archivo para corroborar del todo.


La practica indica que compactemos la carpeta y dejarla en .tar para ello empleados tar, despues de la creacion lo mandamos a /var/respaldos/  En este caso yo cree la carpeta respaldos y ahi metemos el punto tar creado.

Para poder empaquetar ficheros, utilizamos el siguiente comando:

tar -cvf archivo.tar /dir/a/comprimir/

-c : indica a tar que cree un archivo.

-v : indica a tar que muestre lo que va empaquetando.

-f : indica a tar que el siguiente argumento es el nombre del fichero.tar.


2) Generar un tar de la carpeta guardarlo automaticamente en
/var/respaldos/trabajo.tar
Automaticamente: 17:00 hrs.
LAB Parte 2



Editamos el archivo crontab, el cual contiene las acciones que se realizaran por el demonio, Las siguietes intrucciones son para ello:

EDITOR=nano crontab -e 

Cambiamos la ejecución de respaldos o copias, añadiendo minutos, horas, dias, y demás, creando un respaldo automático a la carpeta a respaldar el archivo y de que carpetas se extrae el contenido para tal proposito. Como se ve en la imagen.

Por ultimo guardamos y salimos de el.






Por ultimo corroboramos si se creo el archivo, conforme el respaldo programado, Asi podemos ejecutar tareas en segundo plano, copias de seguridad o respaldos, actualizaciones y demás a determinados dias u horas, la cantidad de tareas requeridas, solo separando las instrucciones con una coma.






Consultas;
http://blog.desdelinux.net/cron-crontab-explicados/
http://linuxzone.es/metodos-de-compresion-y-descompresion-en-linux/
http://ecapy.com/comprimir-y-descomprimir-tgz-tar-gz-y-zip-por-linea-de-comandos-en-linux/



martes, 11 de noviembre de 2014

Respaldo Incremental

Respaldo Incremental con rsync:

Proteger los datos contra la pérdida, el deterioro, las catástrofes (naturales u obra del hombre) y demás problemas es una de las máximas prioridades de las empresas de informática. Conceptualmente, las ideas son sencillas, aunque puede resultar difícil implantar un conjunto de operaciones de backup eficiente y efectivo.

Respaldo o backups Incremental:
Una operación de backup incremental sólo copia los datos que han variado desde la última operación de backup de cualquier tipo. Se suele utilizar la hora y fecha de modificación estampada en los archivos, comparándola con la hora y fecha del último backup. Las aplicaciones de backup identifican y registran la fecha y hora de realización de las operaciones de backup para identificar los archivos modificados desde esas operaciones.


Como un backup incremental sólo copia los datos a partir del último backup de cualquier tipo, se puede ejecutar tantas veces como se desee, pues sólo guarda los cambios más recientes. La ventaja de un backup incremental es que copia una menor cantidad de datos que un backup completo. Por ello, esas operaciones se realizan más deprisa y exigen menos espacio para almacenar el backup.
RSYNC Incremental:
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.

Practica hecha con en Linux con Debian, entre dos maquinas virtuales, simulando cliente y servidor de respaldo incremental:

1. Para la realizacion de la practica subimos algun archivo desde nuestro Windows, a Debian, usando en este caso el programa WinSCP, y llenamos los campos con la direccion IP, usuario, contraseña correcta y demas. Para comenzar damos clic en Conectar

2. Despues preguntara, y damos clic en Si

3. Al abrir la interfaz de conexión, exploramos un poco la interfaz y ubicamos los archivos en las dos maquinas conectadas, por el programa.

4. Ubicamos la carpeta o archivo que queramos subir a nuestro Debian, en este caso yo seleccionare 30ProyectosConArduino, que esta en mi carpeta Descargas

5. Seleccionamos el archivo y con clic Derecho desplegamos el sub-menu, con clic normal izquierdo damos en Subir, y comenzara a compartir el archivo a Debian, es importante saber donde lo guardaremos para no perderle de vista y ubicar-lo lo mas rápido posible

6. Damos  un ls -l para desplegar todos los archivos contenidos ya en el Home y directorio asignado para este archivo.

7. Para poder realizar el respaldo incremental, vamos a hacer uso del comando rsync el cual debemos tener instalado en nuestro Debian, para checarlo unicamente, escribimos las iniciales, y damos en tabulador, de esta manera veremos si esta instalado o no.

En caso de que no este, podemos instalarlo con los siemple comandos:
# apt-get install rsync,
En caso de ser necesario damos;
#apt-get update
8.  Para hacer el respaldo incremental, solamente, ejecutamos el siguiente comando, aqui se esta copiando en la maquina de un compañero para simular un srvidor remoto.
#rsync -av origen/ destino  
Escrito el comando damos enter, y se empezara a realizar la copia incremental, debemos esperar un poco, de acuerdo al tamaño del arvhivo, aparecera un mensaje de enviando.

9. Por ultimo solo hace falta ver que el respaldo se haya hecho realmente en el sevidor de apoyo (maquina de compañero), por lo cual nos debemos conectar con ssh y ver si esta el archivo, en este caso el respaldo se hizo de manera satisfactoria, demostrando lo facil que es hacer los respaldos, con este protocolo.


Notas: Es importante comentar, que si se cuenta con un firewall, como uwf o otro, estos deben estar desactivados, o si estan activos, deben permitirse el uso por donde trabajan estos servicios, para de esta manera no haya errores y problemas a la hora de copiar y trabajar con los respaldos.


Fuentes de Consulta
https://openyourshell.wordpress.com/2010/12/30/el-comando-rsync-para-nuestras-copias-de-seguridad-en-gnulinux/
http://searchdatacenter.techtarget.com/es/cronica/Copia-de-seguridad-completa-incremental-o-diferencial-como-elegir-el-tipo-adecuado
http://codehero.co/como-instalar-y-usar-rsync/

Instalación de Ubuntu 14.04.01 en Virtual Box (Con imágenes, paso a paso)

Ubuntu 14.04 LTS "Tahr"


Con la llegada del fin de Windows XP, esta es la oportunidad perfecta para que equipos que se pueden considerar antiguos, se les de una nueva vida gracias al uso de Ubuntu. Canonical ya ha lanzado la versión final de Ubuntu 14.04 LTS "Tahr".


"LTS" significa Long Term Support (Soporte a largo plazo) y una de estas versiones se lanza cada dos años, en un intento de Canonical por hacer que estas versiones sean las más adoptadas por escritorios y servidores de todo el mundo al tener un soporte de 5 años. En esta versión, que aparte del escritorio llega a servidores, móviles y tablets. Pero aunque la meta de Canonical es hacer que una versión de Ubuntu pueda ser usada por cualquier dispositivo, por ahora están separadas en diferentes versiones que se pueden descargar.


Aqui los enlaces de descarga; 
http://www.ubuntu.com/download/desktop ó
http://www.muylinux.com/2014/07/25/ubuntu-14-04-1-lts ó si prefiere
http://www.taringa.net/post/linux/17740293/Ubuntu-14-04-Torrent-Oficial.html

Ubuntu 14.04 llega también en un momento en el que se abandona el proyecto UbuntuOne, lo que limita algunas de sus opciones de sincronización en la nube, aunque Dropbox está disponible para Ubuntu.


Pero mejor ya seguimos con la instalacion, en imagenes y paso a paso!
-------------------------------------------------------------------------------------------------------------------------

INSTALACION DE UBUNTU 14.04.01 EN VIRTUAL BOX

1.    1.0 Abrimos Virtual Box
1.1. Creamos una nueva máquina virtual, dando clic en nuevo, describiendo un nombre y llenando los campos apropiados.


1.2.  Al crear la nueva maquina virtual debemos asignar un espacio de memoria para la ejecución del sistema operativo, en este caso Ubuntu 14.04.01. Se debe tomar en cuenta, la capacidad de la memoria RAM de la maquina en la cual correrá el sistema, para no asignar de mas, o menos con la cual no sea posible correr de manera adecuada el SO.

             
            1.3 Se debe asignar memoria de disco duro, a la maquina virtual, para con ello, tener espacio y guardar archivos e instalar aplicaciones, a lo largo del tiempo, y conforme se use el SO.




            1.4. Se debe asignar memoria de un disco de memoria virtual, para el uso futuro con la ejecución del sistema.


            1.5. Si no se sabe qué tamaño asignar de momento, se puede configurar la máquina, para que se cree una unidad de almacenamiento dinámica, y con ello disponer de solo la memoria necesaria, sin malgastar recursos de más del Sistema Operativo nativo.


1.6. Asignar un limite de memoria del Disco Duro a usarse.


1.7. Realizados estos pasos ya estará configurada la máquina virtual, en la cual correrá nuestro Ubuntu 14.04.0. Si por alguna razón se equivocó en algún paso y no es posible regresar a corregirlo, puede cancelar la creación, o si ya está creada la máquina, puede eliminarla y repetir el proceso, leyendo detalladamente cada paso.


2.0 Este paso es muy importante, ya que aquí, es cuando se debe seleccionar, la ubicación de la imagen ISO del Ubuntu en este caso, para de ahí tomarlo y ejecutar la instalación, como se ve en la imagen


2.1 Aquí se está ubicando el disco de instalación, usted puede tenerlo en otra carpeta, por ello es importante que lo seleccione y darle abrir para montarlo en la unidad virtual de Virtual Box.


2.2. Ya montada la imagen, solo queda dar clic en Iniciar, y el proceso comenzara automáticamente.


3.0 Aquí entramos a la instalación de Ubuntu 14.04.01 como tal, esta es la ventana principal para tal ejecución. Solo seleccionamos el idioma adecuado o de convenencia y damos clic en Instalar Ubuntu



3.1 Para no demorar tanto la instalación debe desactivar su red inalámbrica o desconectarse de internet, de esta manera impedirá que se instalen nuevas actualizaciones y se bajen muchos paquetes de internet. Tambien es de mucha importancia que el disco de instalación tenga los paquetes y recursos necesarios para la correcta instalación. Damos clic en continuar.


3.2. Seleccionamos la instalación, con el borrado de discos e instalar Ubuntu, si ya se tenia una distribución, o la que se requiera, en este caso no hay nada instalado aun, asi que damos clic en Instalar ahora.


3.3. Seleccionamos una ubicación adecuada, para la zona horaria y el uso correcto del teclado y no tener problemas futuros con el SO.


3.4. Elegimos la configuración del teclado que se adapte a nuestras necesidades y damos clic en Continuar, después de ello.


3.5. Escribimos nuestro nombre de usuario y una contraseña segura y acorde a nuestros datos y Continuamos.



3.6. La instalación comenzara automáticamente ahora, y solo basta esperar a que termine, esto puede tardar algunos minutos, pero usted los puede emplear para tomar algún tecito o leer los titulares de algún periódico, checar el twitter o lo que quiera, para no perder el tiempo ;).


                3.7 Regresa usted a ver el avance de instalación, si aún falta, siga leyendo los titulares en el periódico, o puede escuchar algo de música descansando en su lugar, ya falta menos…

               3.8 Al terminar la instalación, usted debe logearse con el usuario antes impuesto y su contraseña personal, después de esto usted puede entrar al sistema operativo sin problemas.

            3.9. Es importante que saque el disco de la unidad virtual en Virtual Box, clic con botón derecho en los botones inferiores de la máquina virtual, y des-seleccione con clic normal en el disco usado para la instalación.

4.0 Disfrute y aproveche el sistema operativo ahora, en la máquina virtual, no está de más documentarse e investigar sobre nuevas funcionalidades del sistema en la máquina virtual, para ampliar la pantalla, un tutorial que se verá más adelante, hacer más rápido el SO. O compartir carpetas, todo para sacarle el mejor provecho a la Ubuntu 14.04.01, o versiones anteriores.


Nota: Si se equivocó en una paso, puede dar clic atrás y ver mejor el proceso, puede también cancelar la instalación y volverla a hacer, paso por paso, siguiendo estas imágenes. Cualquier duda o comentario, puede consultarme a mi correo personal, gracias y hasta la proxima…



Demonio en Informatica

¿Qué es un Demonio?

En sistemas UNIX se conoce como demonio o daemon (Disk And Execution Monitor) a un proceso que se ejecuta en segundo plano del sistema operativo, se ejecuta en todo momento y no posee interacción directa con el usuario, también se le conoce genericamente como servicio o proceso, del cual no percibimos su ejecución. Un demonio realiza una operación especifica en tiempos predefinidos o en respuesta a ciertos eventos del sistema. Tecnicamente, un proceso en un sistema UNIX es un demonio cuando su proceso padre termina de ejecutarse y se le asigna como padre al proceso INIT, además no debe estar asociado a ninguna tty/terminal, sin embargo tambien se reconoce como demonio a cualquier proceso que corra en segundo plano sea hijo de INIT o no.


Origen del nombre;

El origen del nombre se referiere a su función de "vigilante" y no a una connotación negativa como se podría pensar en un principio.
Ejemplos de demonio, son los servidores de las impresoras, servidores de correo, sistemas de conexión con redes, etc.


¿Como funciona un Demonio?

La mayoría de los demonios son inicializados junto con el arranque del sistema, teniendo como padre al proceso INIT, normalmente estos procesos estan en estado waiting hasta la ocurrencia de un evento en la que ejecutan su tarea, demonios conocidos son por ejemplo: Apache, httpd y Cron.


Pasos para convertir un proceso en un Demonio;


  • Fork y Exit
Lo primero que se debe hacer es un fork() para crear un proceso hijo y luego hacer un exit() al proceso padre. Esto es necesario porque permite disociar el proceso de una tty/terminal, remueve al proceso del process group del proceso que lo creó. Esto asegura que el proceso no es un group leader ya que es algo requerido para la funcion setsid()
  • Llamar a setsid()
setsid() es una función POSIX que convierte el proceso en un session leader y group leader de un nuevo process group del cual solo él pertenece y asegura que no esta asociado a una terminal.
  • Cambiar el directorio de trabajo
El directorio en el que se trabaja debe ser cambiado con chdir a la raiz (idealmente, pero también puede ser otro directorio siempre y cuando no se encuentre montado desde un dispositivo externo). Esto es para evitar que se trabaje en un directorio que esté una partición montada ya que si el proceso se ejecuta mientras reside en una partición montada, ésta no se podrá desmontar hasta que el proceso se detenga.
  • Cambiar permisos
Umask determina los permisos por default que se le dan a los nuevos archivos. Seteando umask en 0 remueve las restricciones default que podrían limitar los permisos para que el demonio cree nuevos archivos si lo necesita.
Redirigir entrada y salida                                                                                                                    Los demonios no se comunican directamente con el usuario por la entrada estandar, es por esto que se necesita cambiar la salida y entrada a /dev/null.


open STDIN,  '/dev/null' or die "Can't read /dev/null: $!";
open STDOUT, '>/dev/null';
open STDERR, '>/dev/null';
Logging Messages
En caso que se quiera guardar un log de errores o fallas, se puede hacer redirigiendo la salida a un archivo log especificado (en vez de redirigir a /dev/null como se explicó arriba).
open STDOUT, ">>$access_log" or die "Can't write to $access_log: $!";
open STDERR, ">>$error_log" or die "Can't write to $error_log: $!";



  • Ejemplo en Perl
use POSIX qw(setsid);
chdir '/'                 or die "Can't chdir to /: $!";
umask 0;
open STDIN, '/dev/null'   or die "Can't read /dev/null: $!";
#open STDOUT, '>/dev/null' or die "Can't write to /dev/null: $!";
open STDERR, '>/dev/null' or die "Can't write to /dev/null: $!";
defined(my $pid = fork)   or die "Can't fork: $!";
exit if $pid;
setsid                    or die "Can't start a new session: $!";
while(1) {
  sleep(5);
  print "Hola...\n";
}
Programa que imprime en pantalla "Hola..." cada 5 segundos, notese que la linea que redirige el output esta comentada, si no lo estuviera se mandaría el mensaje a /dev/null.


Nota:  pasos representan características esenciales de un demonio por lo que para convertir un proceso en uno es necesario seguir todas estas indicaciones.

Fuente de Consulta:
http://wiki.inf.utfsm.cl/index.php?title=Demonios