Proyecto Bakup
Existe la posibilidad de tener una ayuda extra escribiendo en consola:
$ man bakup
una vez instalado el paquete.
Este proyecto se creo para completar la practica del segundo cuatrimestre de Administración de Sistemas .
Seguramente tendrá muchos errores y muchos agujeros de seguridad y de configuración pero se esta intentando mejorar lo mas posible, si detecta algún error o mejora por favor comuníquenlo o modifíquenlo puesto que también se incluirá el código de los scripts para quien los necesite, queda completamente abierto a modificar subir y lo que se precise para que el proyecto pueda ser mejorado y para quien le resulte útil.
A continuación están los enlaces de la documentación de cada uno de los scripts:
Principal Bakup.sh
Secundario demonio.sh
Secundario bakupin.sh
Secundario bakuptot.sh
Secundario borrarBiejo.sh
ayudas instalación y utilización
Bakup.sh
Realizado por: Santiago Moreno Morales
Licencia: LGPL
Fecha de creación:25/03/2012
Llamada:bakup.sh directorio_para_realizar_backup
Interacción:
No requiere ninguna excepto pasarle por parámetro el directorio
Devuelve:
Es un plan de bakup 1-3-1 los archivos se crean
con el nombre de la fecha en el directorio que se le a indicado
Comentarios:
1º El programa tiene un sistema de seguridad para que no se quede con un directorio erróneo y que de no existir este directorio te permite crearlo automáticamente. En caso de haberlo escrito mal te permite corregirlo.
2º Una vez aceptado el directorio se dispondrá a crear los demonios mediante cron, para esta opción se vale del script demonio.sh
Last edit: Santiago moreno 2012-09-07
demonio.sh
Realizado por: Santiago Moreno Morales
Licencia: LGPL
Fecha de creación: 25/03/2012
Llamada: demonio.sh minutos horas día_mes mes día_semana "comando
Detalle llamada:
Las casillas que se desean dejar vacías se tienen que rellenar con asteriscos(*)separados
por espacio, ejemplo [12 4 1,2 * * /usr/scripts.sh]
Mas información sobre cron:
man cron
Interacción:
No se requiere ninguna excepto pasarle por parámetro los intervalos o fechas cuando ejecutar los comandos o scripts y la ruta del script o en su defecto el comando
Devuelve: programa un demonio cron en la fecha indicada, para el script indicado
Last edit: Santiago moreno 2012-09-06
bakupin.sh
Realizado por: Santiago Moreno
Licencia: LGPL
Fecha de creación:3/06/2012
Llamada:bakupin.sh directorio_destino
Interacción:
No requiere ninguna excepto pasarle por parámetro el directorio
Devuelve:
Una copia incremental con el nombre de la fecha, en el directorio que se le a indicado
Comentarios:
1º La copia incremental se crea mediante Rsync
2º Ejecuta el script que borra la copia incremental del anterior mes con borrarBiejo.sh
Last edit: Santiago moreno 2012-09-06
bakuptot.sh
Realizado por: Santiago Moreno
Licencia: LGPL
Fecha de creación:3/06/2012
Llamada:bakuptot.sh directorio_destino
Interacción:
No requiere ninguna excepto pasarle por parámetro el directorio
Devuelve:
Una copia total con el nombre de la fecha, en el directorio que se le a indicado
Comentarios:
1º La copia total se crea mediante Rsync
2º Ejecuta el script que borra la copia total del anterior mes con borrarBiejo.sh
Last edit: Santiago moreno 2012-09-06
borrarBoejo.sh
Realizado por: Santiago Moreno
Licencia: LGPL
Fecha de creación:3/06/2012
Llamada:borrarViejo.sh directorio días <--días_a_borrar
Interacción:
No requiere ninguna excepto pasarle por parámetro el directorio y los días
Devuelve:
Borra de la carpeta indicada todas las carpetas/archivos con mas antigüedad
de los días indicados en el segundo parámetro
Modificación:
Para hacer menos copias es mejor no hacer esta modificación puesto que desaparecera el bakup total
Para dejar mas ficheros solamente añadirle 7 días por copia
que se desee añadir, 7 días son 1 bakup incremental mas 14 días son 2 incrementales 21 días son 3 incrementales, pero 28 días sera un backup total.
Last edit: Santiago moreno 2012-09-06
Problemas detectados.
Al intentar ejecutar el script puede que de este aviso:
You (user) are not allowed to use this program (crontab) See crontab(1) for more information
Se soluciona:
1º Entrando en la consola
2º Logueandose como súper usuario ($ sudo su)
3º Escribiendo el usuario al que queremos autorizar en el archivo cron.allow.
Yo utilizo gedit, pero se pueden usar mas ($ gedit /etc/cron.allow)
....3.1º Una vez en el programa se puede añadir el usuario a la lista
....3.2º Guardar (Ctrl + s) o (botón guardar)
....3.3º Salir de gedit (pulsando el botón de cerrar)
4º Salir del modo súper usuario en la consola ($ exit)
5º Volver a intentar ejecutar el comando.
Si no se introduce correctamente el nombre del directorio te puede pedir si quieres crear el que se puso, la otra opción es escribirlo correctamente o elegir otro directorio, existe la posibilidad de abortar la creación del backup.
Tiempo de espera, e tenido que ponerle un tiempo de espera para el reinicio después de la instalación al ejecutar el fichero postin porque no tenia tiempo para que se procesaran los disparadores para man-db y eso creaba un error en las dependencias.
La solución es fácil puesto que lo único que hay que hacer es teclear en la consola:
$ sudo dpkg --configure -a
y el solo soluciona el problema pero dejándole tiempo para que los configure el solo mejor.
Last edit: Santiago moreno 2012-09-07
Ayudas para la instalación y utilización.
1ºLa mejor manera de instalar el paquete es con el siguiente comando en la consola,
$ sudo dpkg -i directorio_donde_este/Bakup.deb
2º Una vez instalado se puede crear el plan de backup sobre el directorio que se desee, para ello lo unico que se tiene que hacer es llamar al script y decirle el directorio.
$ bakup.sh Directorio/
3º Se creara un plan de backup de seguridad automáticamente, para comprobarlo se puede teclear,
$ crontab -l
Last edit: Santiago moreno 2012-09-07