Linux/Unix Shell Scripting - Script para hacer una copia de seguridad

   
Vista:

Script para hacer una copia de seguridad

Publicado por kendo (7 intervenciones) el 16/10/2013 21:35:26
Hola alguien que me ayude por favor , tengo que utilizar el CRON en ubuntu-server.:

Tengo que crear un script que consiga realizar una copia de todo lo contenido en el directorio del usuario /home/pepe , en el directorio /home/backups (directorio que he creado). De manera que además de realizar la copia guarde en un fichero llamado log_copia dentro del mismo directorio backups la hora y día en que se ha realizado. La copia de los datos en este caso estará empaquetada y además el script anunciará mediante un mensaje si ha sido correcta o no (ya que puede haberse dado un error en la ejecución).

gracias !
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

Script ! ayuda

Publicado por xve (254 intervenciones) el 16/10/2013 22:09:19
Para crear la copia empaquetada, lo suyo seria utilizar tar
1
tar cvf /backup/pepe.tar /home/pepe

Para crear el archivo con la hora, podría ser con un simple date
1
date > /backup/log_copia

Si esto lo juntas en un archivo .sh te podría servir?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script ! ayuda

Publicado por kendo (7 intervenciones) el 16/10/2013 22:28:00
Gracias por responder xve , había hecho eso antes de que tú lo comentes , lo que no se es cómo meterlo en un .sh ya que me leído varios manuales de como usar el Cron pero nada! No tengo ni idea de como juntarlo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Script ! ayuda

Publicado por xve (254 intervenciones) el 16/10/2013 22:35:31
Hola Kendo, es relativamente sencillo... intento explicarte.

Una manera muy basica, es crear un archivo por ejemplo /root/copia.sh y en su interior poner:
1
2
3
4
#!/bin/bash
 
tar cvf /backup/pepe.tar /home/pepe
date > /backup/log_copia

Luego en el archivo /etc/contrab añadir una linea al final algo así:
1
30 4 * * * root sh /root/copia.sh
De esta manera, todos los días a las 4:30 ejecutara tu script que realizara la copia.

Esta es la manera mas sencilla... luego lo puedes mejorar creando tu propio archivo en /etc/cron.d/ por ejemplo.

Aquí tienes documentación:
http://es.wikipedia.org/wiki/Cron_(Unix)

Espero que te sirva... cualquier cosa...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script ! ayuda

Publicado por kendo (7 intervenciones) el 16/10/2013 23:10:26
Gracias de nuevo xve , estoy intentado modificar el archivo para cumplir con los requisitos del script pero no consigo nada, la verdad que me resulta un poco frustrante pero bueno poco a poco espero conseguirlo aunque aún acabo de empezar con esto....

#!/bin/bash

tar cvf /backup/pepe.tar /home/pepe
date > /backup/log_copia
if [ $? -eq 0 ]
then
echo "Backup realizado con éxito consulta /home/backup/log_copia para mas informacion"
else
echo " Se ha producido un error "
;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script ! ayuda

Publicado por kendo (7 intervenciones) el 16/10/2013 23:31:12
Gracias de nuevo xve , estoy intentado modificar el archivo para cumplir con los requisitos del script pero no consigo nada, la verdad que me resulta un poco frustrante pero bueno poco a poco espero conseguirlo aunque aún acabo de empezar con esto....

#!/bin/bash

tar cvf /backup/pepe.tar /home/pepe
date > /backup/log_copia
if [ $? -eq 0 ]
then
echo "Backup realizado con éxito consulta /home/backup/log_copia para mas informacion"
else
echo " Se ha producido un error "
;
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Script ! ayuda

Publicado por xve (254 intervenciones) el 17/10/2013 15:57:49
Hola Kendo, para finalizar un if en bash es con fi
1
2
3
4
if [ condicion ]
then
    ....
fi

No te funciona correctamente??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script ! ayuda

Publicado por kendo (7 intervenciones) el 17/10/2013 18:57:47
Hola xve , no se que demonios pasa pero lo he finalizado tal y cómo me lo has indicado y no se como
tendría que quedar :/
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Script ! ayuda

Publicado por xve (254 intervenciones) el 18/10/2013 08:11:55
Hola Kendo, aquí te adjunto como podría ser...

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/bin/bash
 
date > /backup/log_copia
 
tar cvf /backup/pepe.tar /home/pepe
 
if [ $? -eq 0 ];then
    # comprimimos el archivo
    gzip /home/pepe.tar
    if [ $? -eq 0 ];then
        echo "Backup realizado con éxito consulta /home/backup/log_copia para mas informacion"
    else
        echo "Ha habido un problema al comprimir el archivo"
    fi
else
    echo "Se ha producido un error"
fi

Cabe decir, que hay maneras mas optimas de hacer copias de seguridad como son las copias incrementales.

Coméntanos si te funciono, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script ! ayuda

Publicado por kendo (7 intervenciones) el 20/10/2013 17:20:08
Hola xve , me funcionó pero siempre me daba el error de que hubo un problema al comprimir el fichero ...cuando cuando hacía un listado en el lugar donde se guardaba la copia , efectivamente me aparecía pero lo que me extraña es que siempre me salga el mensaje que te comento .

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de xve

Script ! ayuda

Publicado por xve (254 intervenciones) el 20/10/2013 20:34:41
Hola Kendo, exactamente que dice el mensaje?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Script ! ayuda

Publicado por Tom (253 intervenciones) el 20/10/2013 21:58:17
Nah, que se ha copiado a fuego los paths que le has puesto, y no coinciden al hacer la compresión.

Por cierto, queda más chulo (y te ahorras el siempre molesto fichero sin comprimir):
1
tar czf fichero.tgz ...
o
1
tar cf - ... | gzip >fichero.tgz

Además, generalmente nunca es necesario otro fichero con la fecha del backup, ya que esa fecha es la misma con la que te creará el fichero comprimido (me refiero a la que ves con un 'ls -l' ).
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar