Hay muchas formas de organizar la copia de seguridad en servidores CentOS / Debian / Ubuntu: utilidades gratuitas, scripts autoescritos utilizando tar, sistema de copia de seguridad bacula y mucho más. Todo esto de una forma u otra lo he usado o estoy usando en mi trabajo.

Hoy quiero compartir con ustedes mi método para organizar una forma simple, conveniente y rápida de configurar la copia de seguridad incremental usando la popular utilidad rsync en servidores que CentOS / Debian / Ubuntu. El método funciona igualmente en estos sistemas, con pequeñas diferencias solo en la instalación de rsync en sí, que mencionaré por separado para cada sistema.

Instalación de rsync en CentOS 6

Instalar en pc xinetd para ejecutar automáticamente rsync:

# yum install -y xinetd

Instalamos rsync directamente:

# yum install -y rsync

Editando la configuración de rsync para xinetd:

# mcedit /etc/xinetd.d/rsync

En la configuración encontramos la línea deshabilitar = sí y cámbialo a No :

disable = no

Ejecutando xinetd:

# /etc/init.d/xinetd start

Y agréguelo a la ejecución automática:

# chkconfig xinetd on

Compruebe si xinetd 873 escucha en el puerto rsync:

# netstat -lnpt | grep 873

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1431 / xinetd

De acuerdo, puede comenzar a configurar rsync.

Ponemos rsync:

# yum install -y rsync

Agregar a la copia de seguridad automática:

# systemctl enable rsyncd

ln -s '/usr/lib/systemd/system/rsyncd.service' '/etc/systemd/system/multi-user.target.wants/rsyncd.service'

Comprobación de la copia de seguridad automática:

# systemctl list-unit-files --type service | grep rsyncd

rsyncd.service enabled

Ejecute rsync:

# systemctl start rsyncd

Comprobamos cómo empezó:

# netstat -tulpn | grep rsync

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2782 / rsync

De acuerdo, puede comenzar a configurar rsync.

Instalación de rsync en Debian / Ubuntu

Instale rsync:

# apt-get install -y rsync

Regla de configuración:

# mcedit / etc / default / rsync

Encuentra la cuerda RSYNC_ENABLE = falso y cámbialo a cierto :

RSYNC_ENABLE = true

Ejecute rsync:

# /etc/init.d/rsync start

[ok] Starting rsync daemon: rsync.

Compruebe lo que funciona:

# netstat -tulpn | grep rsync

tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1767 / rsync

De acuerdo, puede comenzar a configurar rsync.

RELACIONADO:  La era de los hologramas podría ya estar con nosotros

Configurando rsync

Ahora proceda a la configuración. La lógica de nuestras copias de seguridad será la siguiente. Al principio, hacemos una copia de seguridad completa de la información que nos interesa en el Actual carpeta. Luego, una vez al día, verificamos el archivo existente con la fuente y lo volvemos a actualizar, sobrescribiendo todos los archivos modificados, pero no los eliminamos, sino que los agregamos al incremento carpeta, donde todos los días se crea una carpeta con un nombre en forma de fecha, archivos para el día actual.

Por lo tanto, siempre tendremos un archivo completo, actual en el momento de la última sincronización, más un conjunto de carpetas para cada día con los archivos cambiados ese día. ¿Cuántos días se pueden almacenar si es necesario?

Resulta que tenemos una imagen así:

Comencemos a implementar. En primer lugar, configure rsync en los servidores de fuentes de información, de los cuales recopilaremos datos para realizar copias de seguridad.

Cree el archivo de configuración de rsync:

# mcedit /etc/rsyncd.conf
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
transfer logging = true
munge symlinks = yes

# folder source for backup
[data]
path = / data
uid = root
read only = yes
list = yes
comment = Data backup Dir
auth users = backup
secrets file = /etc/rsyncd.scrt

Cree un archivo con las credenciales para la conexión:

# mcedit /etc/rsyncd.scrt
backup: 12345

donde el respaldo es el nombre de usuario, 12345 es la contraseña.
Hacemos acceso de lectura solo a raíz, de lo contrario, rsync no se iniciará:

# chmod 0600 /etc/rsyncd.scrt

Después de la configuración, reinicie rsync.
En Centos 6:

# /etc/init.d/xinetd restart

En Centos 7:

systemctl restart rsyncd

En Debian / Ubuntu:

# /etc/init.d/rsync restart

Ahora vaya al receptor del servidor, que almacenará copias de seguridad de los servidores de origen. Allí creamos un script de respaldo incremental usando rsync:

# mcedit /root/bin/backup-server1.sh
#! / bin / bash
date
# Folder, where we will put the archives
syst_dir = / backup /
# Name of the server that is archived
srv_name = server1
# The address of the server that is archived
srv_ip = 10.10.1.55
# The rsync user on the server that is archived
srv_user = backup
# Resource on the server for backup
srv_dir = data
echo "Start backup $ {srv_name}"
# Create a folder for incremental backups
mkdir -p $ {syst_dir} $ {srv_name} / increment /
# Run directly backup with parameters
/ usr / bin / rsync -a -delete -password-file = / etc / rsyncd.scrt $ {srv_user} @ $ {srv_ip} :: $ {srv_dir} $ {syst_dir} $ {srv_name} / current / - -backup --backup-dir = $ {syst_dir} $ {srv_name} / increment / `date +% Y-% m-% d` /
# Clean folders with incremental archives older than 30 days
/ usr / bin / find $ {syst_dir} $ {srv_name} / increment / -maxdepth 1 -type d -mtime +30 -exec rm -rf {} ;
date
echo "Finish backup $ {srv_name}"

Hacemos que el script sea ejecutable:

# chmod 0744 /root/bin/backup-server1.sh

Cree un archivo con una contraseña para la autorización en el servidor de origen:

# mcedit /etc/rsyncd.scrt
12345

Hacemos acceso de lectura solo a root, de lo contrario, rsync devolverá un error:
ERROR: el archivo de contraseña no debe ser accesible para otras personas
Corrija esto:

# chmod 0600 /etc/rsyncd.scrt

Eso es todo, ahora puede ejecutar el script y esperar a que se ejecute. Queda por agregarlo al maíz:

# mcedit / etc / crontab
30 23 * * * root /root/bin/backup-server1.sh

Normalmente creo varios scripts para cada servidor por separado. Luego combino su lanzamiento en un script común y lo agrego al cron. Y luego, según sea necesario, lo edito, agrego o elimino el servidor.

RELACIONADO:  Cómo administrar su tarjeta de crédito con Alexa

Especificamos en la configuración de registro en el archivo. /var/log/rsyncd.log. Es necesario configurar la rotación de este registro para que no crezca hasta el infinito. En servidores de archivos grandes, crecerá muy rápidamente a cientos de megabytes o más.

Para ello, cree un archivo con la configuración de rotación en el /etc/logrotate.d carpeta:

# mcedit /etc/logrotate.d/rsyncd

/var/log/rsyncd.log {
size = 500k
compress
rotate 4
missingok
notifempty
}

Con esta configuración, la rotación se producirá cada vez que el archivo de registro supere el tamaño de 500 KB. Se almacenarán 4 versiones del archivo de registro. Puede cambiar esta configuración a su propia discreción.

Ejemplo de ventanas de servidor de respaldo usando rsync

Otro ejemplo de mi práctica. Digamos que tenemos un servidor Windows con cierta información, de la que también queremos hacer una copia de seguridad. No hay problema, se hace de forma bastante sencilla.

Cree una bola de red en el servidor de Windows con la información. Cree un usuario y agréguelo para acceder a esta carpeta. Este usuario lo usaremos para conectar Windows al servidor Linux.

Monte la bola con la información de la que haremos una copia de seguridad:

# mount -t cifs //192.168.0.16/docs / mnt / docs -o user = backup, password = 12345, iocharset = utf8, codepage = cp866

192.168.0.16: la dirección del
backup y 12345: el usuario y la contraseña de la máquina con acceso a la bola de documentos.

Todos, ahora la carpeta / mnt / docs se puede usar como receptor en nuestro script de respaldo con rsync. Si la carpeta está montada directamente en el servidor con copias de seguridad, debe configurarla en el servidor rsyncd usando el ejemplo de los servidores de origen, ejecutar rsyncd en ella y especificar 127.0.0.1 en el script como la dirección IP del servidor. .

RELACIONADO:  Cómo utilizar las funciones multitarea en iPad

En tales casos, creo varios scripts: para montar bolas, hacer copias de seguridad y desmontarlos, combinarlos en uno y ejecutarlos secuencialmente. Como resultado, resulta que conectamos el disco, hacemos una copia de seguridad y lo apagamos.