miércoles, 24 de abril de 2019
Kosten Aike - Faro Cabo Vírgenes (edición 2019)
Etiquetas:
Cabo Vírgenes,
Cicloturismo,
Faro Cabo Vírgenes 2019,
Kosten Aike,
Monte Dinero,
Piedra Buena,
Río Gallegos,
Rio Grande,
Rio Turbio,
Ruta 40,
San Julián,
TDF
viernes, 12 de abril de 2019
Respaldo de bases de datos MySQL de un servidor Debian, con otro puesto de Debian, mediante Samba.
En el puesto debian (192.168.0.2), donde se destinará los respaldo del servidor MySQL/MariaDB (192.168.0.1), procedemos a configurar un servidor Samba que contendrá los siguientes recursos compartidos:
#/etc/samba/smb.conf
[global]
workgroup = INFORMATICA
server string = Julio Alberto Lascano - (Samba Server %h)
netbios name = DEBIAN-JULIO
map to guest = bad user
#
Depurar la información de registro
# log file
log file = /var/log/samba/log.%m
#
nivel de registro general
log level = 3
[backup-mysql]
comment = solo para grupo administracion backup server mysql
path = /home/julio/backup/mysql
browseable = yes
read only = yes
guest ok = no
write list = @administracion
valid users = @administracion
Hacemos un testparm para validar el contenido del fichero de configuración smb.conf
root@sistem:/home/julio# testparm /etc/samba/smb.conf
A continuación creamos el grupo y el usuario que manejará el acceso a samba. Creamos el grupo administracion.
root@sistem:/home/julio# groupadd administracion
Añadimos un usuario al grupo para hacer luego las pruebas (creamos el usuario en la máquina y después su password):
root@sistem:/home/julio# useradd administracionuser
root@sistem:/home/julio# passwd administracionuser
Añadimos el usuario administracionuser al grupo administracion. Como ya existen, no usaremos
root@sistem:/home/julio# useradd -g administracion administracionuser
Sino:
root@sistem:/home/julio# usermod -g administracion administracionuser
Crear usuarios locales como usuarios de SAMBA
root@sistem:/home/julio# smbpasswd -a administracionuser
Permisos locales adecuados para los recursos compartidos SAMBA
root@sistem:/home/julio# chmod 775 /home/julio/backup/mysql
Y cambiamos el usuario y grupo propietarios al grupo que puede escribir :
root@sistem:/home/julio# chown -hR root:administracion /home/julio/backup/mysql
Reiniciamos el servidor SAMBA.
root@sistem:/home/julio# /etc/init.d/samba-ad-dc restart
Ahora desde el servidor debian mysql/mariadb (192.168.0.1) verficamos los recursos que está compartiendo el servidor SAMBA (192.168.0.2)
root@sistem:/home/julio# smbclient --list 192.168.0.2
Que nos mostrará una salida similar a esta:
root@spse:/home/julio# smbclient --list 192.168.0.2
Enter root's password:
Domain=[INFORMATICA] OS=[Windows 6.1] Server=[Samba 4.2.14-Debian]
Sharename Type Comment
--------- ---- -------
backup-mysql Disk solo para grupo administracion backup server mysql
IPC$ IPC IPC Service (Julio Alberto Lascano - (Samba Server sistem))
Domain=[INFORMATICA] OS=[Windows 6.1] Server=[Samba 4.2.14-Debian]
Finalizada la configuración del servidor Samba del puesto 192.168.0.2, procederemos a la creación de 2 (dos) scripts. en lenguaje bash.
Luego, serán agregados como tareas diarias automáticas, mediante crontab, en el Servidor MySQL/MariaDB 192.168.0.1
Los scripts :
root@spse:/home/julio/fuentes/bash# ls -l
total 8
-rwxrwx--- 1 root root 589 abr 9 14:47 backupToJulio.sh
-rwxrwxr-x 1 root root 477 abr 4 12:05 mysqldump.sh
root@spse:/home/julio/fuentes/bash#
- mysqldump.sh (Será utilizado para generar los scripts de creación de las bases de datos (estructuras de tablas y datos de las mismas) del servidor MySQL 192.168.0.1)
- backupToJulio.sh (backup bases de datos a otro disco de la red, en este caso el servidor SAMBA 192.168.0.2)
#!/bin/sh
# Esto volcará todas tus bases de datos.
# **************************************
# mysqldump.sh
# **************************************
DATE=$(date +%Y%m%d%H%M)
for DB in $(echo "show databases" | mysql --defaults-file=/etc/mysql/debian.cnf -N)
do
mysqldump --defaults-file=/etc/mysql/debian.cnf --single-transaction $DB > /root/mysql/backup/${DB}_${DATE}.sql
gzip /root/mysql/backup/${DB}_${DATE}.sql
done
# Borrar los respaldos que tengan mas de 5 dias (economiza espacio del server)
find /root/mysql/backup/ -name "*.sql*" -mtime +5 -exec rm -vf {} \;
#!/bin/sh
# **********************************************************
# backup bases de datos a otro disco de la red (192.168.0.2)
# **********************************************************
# backupToJulio.sh
# **********************************************************
# montar con cifs-utils
mount -t cifs //192.168.0.2/backup-mysql /home/julio/papelera -o username=administracionuser,password=
administracionuser,domain=INFORMATICA
if [ $? = 0 ]; then
# copiar al puesto 192.168.0.2 (que está montado en /home/julio/papelera)
find /root/mysql/backup/ -name "*.sql*" -mtime -1 -exec cp -v {} /home/julio/papelera/ \;
umount /home/julio/papelera/
fi
Solo resta automatizar la ejecución diaria de esto scripts. Para ello, los agragaremos como una tarea cron de root. Acerca de como agragar tareas cron remítase a este tutorial
root@spse:~# crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h dom mon dow command
25 6 * * 1-5 /home/julio/fuentes/bash/mysqldump.sh
59 11 * * 1-5 /home/julio/fuentes/bash/backupToJulio.sh
root@spse:~#
En este caso hemos configurado a cron para que ejecute mysqldump.sh (192.168.0.1) todos los días habiles (LUN-VIE) a las 06:25 AM
Y para respaldar en el otro disco (192.168.0.2) mediante backupToJulio.sh todos los días habiles (LUN-VIE) a las 11:59 AM
Ubicación:
Río Gallegos, Santa Cruz, Argentina
Suscribirse a:
Entradas (Atom)