en este pequeño tutorial es una guía de como yo lo hice funcionar
TRANSCRIPT
![Page 1: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/1.jpg)
En este pequeño tutorial es una guía de como yo lo hice funcionar, y conste que no soy programador,
solo utilice el internet y un amigo me ayudo a hacer el primer script (gracias Oscar)
Les voy a comentar lo que haremos, y luego iré detallando como hacerlo.
1- Vamos a crear una carpeta en la computadora local, donde se irán creando y comprimiendo los
backups mediante un script (sin borrar de la computadora local)
2- Luego vamos a crear dos scripts, uno servirá para hacer el backup y comprimir con la fecha del día
(backup.sh), el otro servirá para conectarse y enviar el backup a un servidor de FTP. (enviar.sh)
3- Donde copiar el primer script para que se ejecute automáticamente cada día, y así tener un respaldo
diario.
PREPARANDO LA COMPUTADORA
Como estamos hablando de una base de datos postgres, por una cuestión de permisos, todo será
realizado por el usuario "postgres".
1- Lo primero que vamos a hacer, es crear la carpeta local donde estarán los backups, para eso;
sudo mkdir/home/backups
le damos la carpeta al usuario postgres
sudo chown postgres -R /home/backups
2- Ahora vamos a crear los scripts, el primero lo llamaremos backup.sh (o como quieran llamarlo), este
archivo lo pondremos dentro de la siguiente carpeta, que se ejecutara automáticamente todos los días,
/etc/cron.daily/
Para conocer más sobre el uso del Cron, Ingresar aquí
podemos crear el script de la siguiente manera
sudo nano /etc/cron.daily/backup.sh
dentro del archivo escribiremos los datos para que funcione el script que lo pongo a continuación:
#!/bin/sh
USER=postgres
FECHA=`date +%Y-%m-%d`
echo "Haciendo el Backup de la BD"
/usr/bin/pg_dump BD > /home/backups/backup-$FECHA.sql
![Page 2: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/2.jpg)
echo "Comprimiendo el backup"
/bin/tar cvfz /home/backups/backup-$FECHA.tar.gz /home/backups/backup-$FECHA.sql
echo "Enviando el backup al servidor de FTP"
sh /home/backups/enviar.sh
guardamos con ctrl+x
por supuesto, colocamos la información que corresponde dentro del script, si no entienden, más abajo
iré detallando el significado de cada parte para que puedan entender y modificarlo según su necesidad.
y ahora le damos los permisos
sudo chown postgres /etc/cron.daily/backup.sh
y le damos los permisos de ejecución
sudo chmod 777 /etc/cron.daily/backup.sh
Listo, ya tenemoshagamos una prueba para ver si ejecuta
sh /etc/cron.daily/backup.sh
una vez comprobado que este haciendo el backup y creando el archivo comprimido ambos con la fecha
del día.
¡LISTO EL PRIMER SCRIPT!
---------------------------------------------------------------------------------
Ahora pasaremos a crear el segundo script, que sirve para enviar al servidor de FTP, lo llamaremos
enviar.sh
nos cambiamos al usuario postgres para no que todo lo que creemos pertenezca al usuario postgres,
para eso tecleamos en la terminal
su - postgres
y con el usuario postgres creamos el archivo enviar.sh de la siguiente manera (o como crean mejor)
nano /home/backups/enviar.sh
ahora copiamos este script
![Page 3: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/3.jpg)
#!/bin/bash
echo "Conectando y autenticando con el servidor de FTP"
FECHA=`date +%Y-%m-%d`
HOST='ftp.servidor.net'
USER='nombre de usuario'
PASSWD='contraseña'
cd /home/backups/
echo "Enviando back-up de la BD"
ftp -n $HOST << END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
put backup-$FECHA.tar.gz
quit
END_SCRIPT
echo "Archivo enviado correctamente"
echo "¡Grande GNU/Linux y Taringa.net.....by lezich!"
guardamos con ctrl+x
como en el script anterior se debe colocar la información que corresponde dentro del script, más abajo
detallaré por parte para que entiendan el funcionamiento del script y asi puedan modificarlo según su
necesidad.
IMPORTANTE: para crear este script, usted ya debe contar con un usuario cliente de ftp y un servidor
para poder configurar el script correctamente
y ahora le damos los permisos de ejecución
chmod +x /home/backups/enviar.sh
podemos ejecutar manualmente para ver si se conecta y envía el archivo.
si comprobamos que envía correctamente, ahora comprobaremos que todo funciona correctamente,
para eso vamos a ejecutar
sh /etc/cron.daily/backup.sh
con esto debería hacer todo seguido,
[ol]
![Page 4: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/4.jpg)
[li] Crear un back-up[/li]
[li] Comprimir el back-up[/li]
[li] Conectarse al servidor FTP[/li]
[li] Enviar el archivo comprimido al servidor de FTP[/li]
[/ol]
si todo esto ocurre como debe ser
¡FELICIDADES, HAS AUTOMATIZADO EL BACK-UP Y ENVIANDO A UN SERVIDOR DE FTP!
---------------------------------------------------------------------------------
PASO A DETALLAR EL FUNCIONAMIENTO DE LOS DOS SCRIPTS
1- BACKUP.SH
Este código al inicio es necesario para que GNU/Linux reconozca que es un script
#!/bin/sh
Lo que hacemos aca es, indicar que el usuario "postgres" es el que ejecutará este script, para que no
tengamos problemas de permisos.
USER=postgres
Acá le decimos que a partir de ese momento todo lo que tenga $FECHA, será para colocar el año-
mes+día
FECHA=`date +%Y-%m-%d`
Todo lo que tiene "echo" es lo que informa al usuario lo que el script esta haciendo.
echo "Haciendo el Backup de la BD"
Este es el comando de que queremos hacer back-up y a donde, en este caso es una BD postgres e indica
![Page 5: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/5.jpg)
el nombre y lugar en la computadora local donde se creará el archivo de back-up.
/usr/bin/pg_dump BD > /home/backups/backup-$FECHA.sql
Todo lo que tiene "echo" es lo que informa al usuario lo que el script esta haciendo.
echo "Comprimiendo el backup"
Con este comando comprimimos el back-up creado, primero se indica donde estará el archivo
comprimdo y luego donde esta el archivo a comprimir
/bin/tar cvfz /home/backups/backup-$FECHA.tar.gz /home/backups/backup-$FECHA.sql
Todo lo que tiene "echo" es lo que informa al usuario lo que el script esta haciendo.
echo "Enviando el backup a al servidor de FTP"
este es la orden para comenzar a ejecutar el segundo script, (enviar.sh), en el que se detalle el lugar
exacto donde está ese script
sh /home/backups/enviar.sh
esas fueron las explicaciones de todas las parte del script, usted debe cambiar los datos según su
propia necesidad.
---------------------------------------------------------------------------------
2- ENVIAR.SH
Este código al inicio es necesario para que GNU/Linux reconozca que es un script
#!/bin/bash
Todo lo que tiene "echo" es lo que informa al usuario lo que el script esta haciendo.
![Page 6: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/6.jpg)
echo "Conectando y autenticando con el servidor de FTP"
Acá le decimos que a partir de ese momento todo lo que tenga $FECHA, será para colocar el año-
mes+día
FECHA=`date +%Y-%m-%d`
Acá es donde colocamos los datos que corresponden para poder conectarse, la dirección del servidor
(HOST), el usuario (USER) y su contraseña (PASS)
HOST='ftp.servidor.net'
USER='nombre de usuario'
PASSWD='contraseña'
Con este comando le indicamos al programa cual es la carpeta local donde esta el archivo que vamos a
enviar al servidor de FTP
cd /home/backups/
Todo lo que tiene "echo" es lo que informa al usuario lo que el script esta haciendo.
echo "Enviando back-up de la BD"
Aca van todos los comandos a ejecutarse cuando ya estamos dentro del programa de FTP
ftp -n $HOST << END_SCRIPT
quote USER $USER
quote PASS $PASSWD
binary
Siguiendo dentro de los comandos del programa de FTP, se ejecuta el comando para enviar el archivo,
que es el "put", y para luego desconectarse y serra "quit"
put backup-$FECHA.tar.gz
quit
END_SCRIPT
![Page 7: En este pequeño tutorial es una guía de como yo lo hice funcionar](https://reader036.vdocuments.pub/reader036/viewer/2022081807/5571f9d74979599169908e72/html5/thumbnails/7.jpg)
Todo lo que tiene "echo" es lo que informa al usuario lo que el script esta haciendo.
echo "Archivo enviado correctamente"
echo "¡Grande GNU/Linux y Taringa.net.....by lezich!"