
Al administrar un servidor web, es fundamental mantener sus datos seguros y recuperarlos rápidamente en caso de falla. Una de las formas más confiables de realizar copias de seguridad y reflejar los datos del servidor web es utilizar rsync.
sincrónico Esta herramienta ayuda a sincronizar archivos y directorios entre dos servidores, lo que la hace ideal para crear copias de seguridad y espejos de los datos del servidor web.
En este artículo, lo guiaremos a través del proceso de uso de rsync para sincronizar su servidor web con un servidor de respaldo. También configuraremos un inicio de sesión sin contraseña para usar cron para automatizar el proceso de sincronización de las copias de seguridad programadas.
Requisitos previos
Antes de comenzar, asegúrese de tener lo siguiente:
dos servidores
- Servidor web principal: dirección IP
192.168.0.100
nombre de hostwebserver.example.com
. - Servidor de respaldo: dirección IP
192.168.0.101
nombre de hostbackup.example.com
.
Software instalado
Ambos servidores deberían tener rsync instalado, si no, puedes instalarlo ejecutando el siguiente comando:
sudo apt install rsync [On Debian, Ubuntu and Mint] sudo yum install rsync [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] sudo emerge -a sys-apps/rsync [On Gentoo Linux] sudo apk add rsync [On Alpine Linux] sudo pacman -S rsync [On Arch Linux] sudo zypper install rsync [On OpenSUSE] sudo pkg install rsync [On FreeBSD]
Acceso SSH
Se debe habilitar el acceso SSH entre los dos servidores, que se utilizará para configurar el inicio de sesión sin contraseña utilizando claves SSH para una automatización fluida.
Paso 1: configurar el inicio de sesión SSH sin contraseña
Proceso de sincronización automatizado Tareas programadasnecesitamos configurar un inicio de sesión SSH sin contraseña desde el servidor web (servidor principal) al servidor de respaldo, esto permitirá que rsync se ejecute sin tener que ingresar una contraseña cada vez.
Acceso servidor web principal (webserver.example.com
) y genere una clave SSH, asegurándose de aceptar la ubicación predeterminada del archivo y dejar la contraseña en blanco.
ssh-keygen -t rsa -b 2048
A continuación, utilice ssh-copy-id
comando para copiar la clave pública a Servidor de respaldo:
ssh-copy-id [email protected]
reemplazar user
con nombre de usuario Servidor de respaldo. Se le solicitará su contraseña una vez, pero luego se configurará un inicio de sesión sin contraseña.
Finalmente, pruebe la conexión iniciando sesión servidor web principal llegar Servidor de respaldo:
ssh [email protected]
Si puede iniciar sesión sin ingresar una contraseña, la configuración se realizó correctamente.
Paso 2: use Rsync para sincronizar los datos del servidor web
Ahora que tenemos SSH sin contraseña configurado, podemos usar sincrónico Sincronice los datos del servidor web con el servidor de respaldo. Los datos del servidor web generalmente se almacenan en /var/www/html/
Directorio que usaremos para realizar copias de seguridad y mirroring.
Comandos básicos de Rsync
Para realizar una copia de seguridad única, ejecute el siguiente comando en su computadora servidor web principal (webserver.example.com
):
rsync -avz /var/www/html/ [email protected]:/path/to/backup/directory
Explicación del comando anterior:
-a
representar»Modo de archivo”Conserva permisos, marcas de tiempo y otros atributos de archivos. do-v
Habilite la salida detallada para que pueda ver el archivo que se transfiere.-z
Habilite la compresión para reducir el tamaño de la transferencia de datos.
Sincronizar archivos con el directorio de respaldo
reemplazar /path/to/backup/directory
con camino real Servidor de respaldo La ubicación donde desea almacenar la copia de seguridad.
Por ejemplo:
rsync -avz /var/www/html/ [email protected]:/backup/webserver
Directorio del servidor web espejo
Si desea duplicar el directorio (incluso si la copia de seguridad es exactamente la misma que la fuente), puede usar --delete
Opciones:
rsync -avz --delete /var/www/html/ [email protected]:/backup/webserver
Esto eliminará cualquier archivo en el directorio de respaldo que ya no exista en el servidor web, asegurando que ambos directorios sean idénticos.
Paso 3: use Cron para automatizar las copias de seguridad
Para garantizar copias de seguridad periódicas, podemos programar sincrónico Utilice el comando cron para ejecutarlo automáticamente de modo que el proceso de copia de seguridad se ejecute a una hora específica, como la medianoche todos los días.
Abrir archivo crontab servidor web principal (webserver.example.com
) ejecutando:
crontab -e
Para programar la copia de seguridad para que se ejecute todos los días a medianoche, agregue la siguiente línea al crontab:
0 0 * * * rsync -avz --delete /var/www/html/ [email protected]:/backup/webserver
Guarde el archivo crontab y salga. El trabajo cron ahora se ejecutará automáticamente en 12:00 del mediodía cada día. Puede ajustar el tiempo según sea necesario.
Paso 4: verificar la copia de seguridad
Después de configurar una tarea cron, es importante verificar que la copia de seguridad esté funcionando correctamente realizando estas comprobaciones.
Puede consultar los registros del sistema para verificar que el trabajo cron esté funcionando como se esperaba:
grep CRON /var/log/syslog
Acceso Servidor de respaldo (backup.example.com
) y verifique si el archivo está en /backup/webserver
El directorio coincide con el archivo en el servidor web principal (/var/www/html/
).
También puede realizar pruebas eliminando archivos en servidor web principal Y verifique que se elimine del directorio de respaldo después de la siguiente ejecución de rsync.
en conclusión
Sincronizar con el servidor web sincrónico Las copias de seguridad y los mirrors son formas poderosas y efectivas de mantener sus datos seguros y fácilmente recuperables.
Configure el inicio de sesión SSH sin contraseña y automatice el proceso Tareas programadaspuede realizar copias de seguridad periódicas sin ninguna intervención manual.
Esta configuración ayuda a mantener una copia de seguridad actualizada de los datos de su servidor web y garantiza que su sitio permanezca disponible incluso en caso de una falla del servidor.