Crear Script de autobackup

Tengo un directorio con facturas del trabajo k me gustaria k, mediante un script automatizado, se comprimiera en .tar.gz y se subiera a un servidor ftp.

es esto posible? si es posible, me podriais guiar un poco?
Para comprimir, podria sutilizar esto:

cd carpeta
tar -cvf subcarpeta >fichero.tar
gzip fichero.tar


Eso sería para comprimir el fichero que quieras.

Para subirlo la ftp:

ftp
open direcciondelftp
usuario
password
cd /ruta a  donde mandaras los archivos
send fichero
close


Basicamente es esto, alomejor me equivoco en algo, pero la idea general es esa.

Luego lo pones en el cron y listo
No es dificil, con curl puedes subir ficheros con -T o --upload-file (man curl). Y para crear el tarball yo usaría:

tar jcvf backup-facturas-$(date +%F).tar.bz2 directorio-con-facturas/


Por otro lado yo no usaría ftp si no que utilizaría scp para copiar el fichero a otra máquina.
Yo uso algo parecido a esto para algo similar:

VERSION FTP

#!/bin/bash

# generamos el nombre del fichero segun la fecha y la hora
FICHERO=$(date +%d-%B-%Y-%Hh%Mm).tar.gz

# nos movemos al directorio a comprimir
cd [b]directorio[/b]

# generamos el tar.gz

echo
echo ---------------------------------
echo comprimiendo ...

tar zcf $FICHERO [b]directorio1/ directorio2/ directorio3/[/b]

echo enviando al FTP ...

lftp -u [b]usuario:clave maquina[/b] <<EOF
cd [b]directorio del ftp donde dejar el tar.gz[/b]
put $FICHERO
exit
EOF

echo limpiando ...
echo ---------------------------------
echo

rm $FICHERO
cd


VERSION SCP

#!/bin/bash

# generamos el nombre del fichero segun la fecha y la hora
FICHERO=$(date +%d-%B-%Y-%Hh%Mm).tar.gz

# nos movemos al directorio a comprimir
cd  [b]directorio[/b]

# generamos el tar.gz

echo
echo ---------------------------------
echo comprimiendo ...

tar zcf $FICHERO [b]directorio1/ directorio2/ directorio3/[/b]

echo enviando a la maquina ssh ...

scp $FICHERO [b]usuario@maquina:~/directorio remoto donde dejar el fichero[/b]

echo limpiando ...
echo ---------------------------------
echo

rm $FICHERO
cd


Para que el script de scp funcione tienes que hacer que el servidor remoto no te pida clave. Para ello la otra maquina te tiene que conocer y no pedirtela. Te lo dejo como deberes ;)

El nombre del fichero lo genera según la fecha y la hora. Si quieres pon otro nombre, o si no te gusta mi fecha y mi hora pasate por 'man date'.

No te olvides de dar permisos de ejecución al script.
muxas gracias a todos, tengo el script ya listo, pero me falta añadirle alguna proteccion al archivo, ya k no es plan de subirlo a un ftp sin ningun tipo de clave en el archivo o algo parecido.

alguna idea?
Perdonad que pregunte esto aquí, pero estoy experimentando un poco para crear un script que me autoinstale los programas que necesito tras las reinstalaciones, y me preguntaba si puedo añadirle alguna opción para que conteste automáticamente que sí a las típicas preguntas sí/no.

¿Se puede?
me falta añadirle alguna proteccion al archivo, ya k no es plan de subirlo a un ftp sin ningun tipo de clave en el archivo o algo parecido.

Ni tar ni gzip permiten meter claves, o al menos en el man no pone cómo hacerlo. Prueba a mirar el man de bzip2, o sino, al subirlo al ftp, mételo en un directorio al cual sólo tú tengas acceso.

EDITO: he mirado el man de bzip2 y tampoco pone cómo poner clave.

me preguntaba si puedo añadirle alguna opción para que conteste automáticamente que sí a las típicas preguntas sí/no.

Imagen
Subo el hilo porque me estaba preguntando si alguno de vosotros sabría cómo hacer un script de autobackup, sólo que en vez de mandarlo por FTP lo mandase por correo con un adjunto.

El día que hice el del FTP lo intenté y no lo conseguí y ahora, aunque no es imprescindible, me sería práctico.
7 respuestas