Diferencia entre revisiones de «Respaldo»
Ir a la navegación
Ir a la búsqueda
Línea 1: | Línea 1: | ||
− | Se creó un script con el fin de respaldar la información de que contienen los servidores (paloma y polonio). | + | Se creó un script con el fin de respaldar la información de que contienen los servidores (paloma y polonio). Cada servidor guardará un respaldo de si mismo. |
− | Cada servidor guardará un respaldo de si mismo | ||
'''Procedimiento''' | '''Procedimiento''' | ||
Línea 8: | Línea 7: | ||
#Generar una clave pública para el usuario respaldo y copiarla en el otro servidor para que el usuario respaldo pueda hacer scp de un servidor al otro para copiar sus archivos de respaldo.<br>En la primer línea generamos la clave y en la segunda la copiamos en el otro servidor<br><br>respaldo@paloma$ ssh-keygen -t rsa -C "respaldo"<br><br>ssh-copy-id respaldo@10.5.2.2<br><br> | #Generar una clave pública para el usuario respaldo y copiarla en el otro servidor para que el usuario respaldo pueda hacer scp de un servidor al otro para copiar sus archivos de respaldo.<br>En la primer línea generamos la clave y en la segunda la copiamos en el otro servidor<br><br>respaldo@paloma$ ssh-keygen -t rsa -C "respaldo"<br><br>ssh-copy-id respaldo@10.5.2.2<br><br> | ||
#Crear el script, este está ubicado en /home/respaldo, y fue nombrado respaldo.sh, tanto el de paloma como el de polonio son esencialmente lo mismo, varían dependiendo de las necesidades de cada servidor que cosas respaldar, a continuación se muestra el script creado para el servidor paloma, es igual al de polonio pero agregando respaldo a las base de datos: | #Crear el script, este está ubicado en /home/respaldo, y fue nombrado respaldo.sh, tanto el de paloma como el de polonio son esencialmente lo mismo, varían dependiendo de las necesidades de cada servidor que cosas respaldar, a continuación se muestra el script creado para el servidor paloma, es igual al de polonio pero agregando respaldo a las base de datos: | ||
+ | |||
#!/bin/sh | #!/bin/sh | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | #Realizar backup de mysql como usuario root, a todas la bases de datos existentes, y guardar la salida en el archivo /respaldos/respaldo_db.sql. | |
+ | mysqldump -uroot -pRuvdansh7jun --all-databases > /respaldos/respaldo_db.sql | ||
+ | |||
+ | #Generar un archovo tar del archivo respaldo_db.sql. | ||
+ | tar -zcvf /respaldos/respaldo_db_$(date +%d%m%y).tgz /respaldos/*.sql | ||
+ | |||
+ | |||
+ | # What to backup. | ||
+ | backup_files="/home /var/www /etc/apache2 /etc/bind" | ||
+ | |||
+ | # Where to backup to. | ||
+ | dest="/respaldos" | ||
+ | |||
+ | # Create archive filename. | ||
+ | day=$(date +%d%m%y) | ||
+ | hostname=$(hostname -s) | ||
+ | archive_file="$hostname-$day.tgz" | ||
+ | |||
+ | # Print start status message. | ||
+ | echo "Backing up $backup_files to $dest/$archive_file" | ||
+ | date | ||
+ | echo | ||
+ | |||
+ | # Backup the files using tar. | ||
+ | tar czf $dest/$archive_file $backup_files /respaldos/respaldo_db_* | ||
+ | |||
+ | # Print end status message. | ||
+ | echo | ||
+ | echo "Backup finished" | ||
+ | date | ||
+ | |||
+ | # Long listing of files in $dest to check file sizes. | ||
+ | ls -lh $dest | ||
+ | |||
+ | |||
5.Agregar una entrada en el fichero crontab para que el script se ejecute automáticamente en un horario en el que estimamos que la red no está siendo utilizada. El usuario encargado de ejecutar el script es 'respaldo': | 5.Agregar una entrada en el fichero crontab para que el script se ejecute automáticamente en un horario en el que estimamos que la red no está siendo utilizada. El usuario encargado de ejecutar el script es 'respaldo': | ||
Revisión del 23:45 19 jun 2011
Se creó un script con el fin de respaldar la información de que contienen los servidores (paloma y polonio). Cada servidor guardará un respaldo de si mismo.
Procedimiento
- Creación de usuario 'respaldo' para realizar los backups y agregado del mismo al grupo admin:
adduser respaldo admin - Agregar la siguiente línea al archivo /etc/sudoers para permitir al usuario 'respaldo' que utilize sudo sin ingresar contraseña, ya que el script se va a ejecutar automáticamente y varios de los comandos que lo componen necesitan que le usuario tenga privilegios de administrador:
respaldo ALL=NOPASSWD: ALL - Generar una clave pública para el usuario respaldo y copiarla en el otro servidor para que el usuario respaldo pueda hacer scp de un servidor al otro para copiar sus archivos de respaldo.
En la primer línea generamos la clave y en la segunda la copiamos en el otro servidor
respaldo@paloma$ ssh-keygen -t rsa -C "respaldo"
ssh-copy-id respaldo@10.5.2.2 - Crear el script, este está ubicado en /home/respaldo, y fue nombrado respaldo.sh, tanto el de paloma como el de polonio son esencialmente lo mismo, varían dependiendo de las necesidades de cada servidor que cosas respaldar, a continuación se muestra el script creado para el servidor paloma, es igual al de polonio pero agregando respaldo a las base de datos:
#!/bin/sh
#Realizar backup de mysql como usuario root, a todas la bases de datos existentes, y guardar la salida en el archivo /respaldos/respaldo_db.sql.
mysqldump -uroot -pRuvdansh7jun --all-databases > /respaldos/respaldo_db.sql
#Generar un archovo tar del archivo respaldo_db.sql. tar -zcvf /respaldos/respaldo_db_$(date +%d%m%y).tgz /respaldos/*.sql
# What to backup. backup_files="/home /var/www /etc/apache2 /etc/bind"
# Where to backup to. dest="/respaldos"
# Create archive filename. day=$(date +%d%m%y) hostname=$(hostname -s) archive_file="$hostname-$day.tgz"
# Print start status message. echo "Backing up $backup_files to $dest/$archive_file" date echo
# Backup the files using tar. tar czf $dest/$archive_file $backup_files /respaldos/respaldo_db_*
# Print end status message. echo echo "Backup finished" date
# Long listing of files in $dest to check file sizes. ls -lh $dest
5.Agregar una entrada en el fichero crontab para que el script se ejecute automáticamente en un horario en el que estimamos que la red no está siendo utilizada. El usuario encargado de ejecutar el script es 'respaldo':
#sudo crontab -e # m h dom mon dow command 15 2 * * * /home/aline/respaldo.sh respaldo