Como hacer mirroring de local a remoto con rsync

Puesto que ya hace tiempo que recomendé a alguien usar rsync, y que últimamente ha vuelto a salir el tema.

Os posteo una forma simple de usar rsync para realizar backups incrementales de local a remoto.

Hacer mirroring de local a remoto:

rsync -avz --rsh=/usr/bin/ssh --recursive /ruta/carpetaorigen/ 
usuario@servidor_backups:/ruta/carpetadestino

Lo mismo pero sin incluir ciertos archivos:

rsync -avz --rsh=/usr/bin/ssh --recursive /ruta/carpetaorigen/ 
--exclude "*lalala*" usuario@servidor_backups:/ruta/carpetadestino

Hay que tener en cuenta que esta solución no es muy elegante, puesto que no se conservan ni propietarios, ni grupos ni nada, pero almenos tenemos los datos guardados en otra máquina.

Para mejorarlo es fácil, si se usa rsync –help está muy bien explicado, incluso para conversar propietarios, grupos, permisos…

Os animo a leerse el help e ir posteando comentarios acerca de lo que vayáis descubriendo de rsync, es más útil que no tenerlo todo hecho icon_smile.gif

Actualizar y corregir permisos (UIDs) en Plesk

permisos-de-archivos

permisos-de-archivos

Tal vez os haya pasado, que tras copiar contenidos desde otro servidor Plesk, sobretodo cuando se hace con el comando rsync, se desajustan los nombres de usuario y grupo que tenian originalmente. Aqui dejamos un script en bash totalmente operativo que corrige todos estos permisos. Recordar esto es solo script en bash  para Plesk, funciona en cualquiera de sus versiones de Plesk en cualquier distribucion Linux, no tiene ninguna funcionalidad en otros entornos

#!/bin/bash
# Corrige los permisos de los archivos y directorios de los dominios
cat /etc/passwd |egrep vhos > /tmp/$$
wc=`wc -l /tmp/$$ |awk ‘{ print $1 }’ `
for i in `seq 1 $wc`
do
linea=`head -$i /tmp/$$ |tail -1`
user=`echo $linea |awk -F: ‘{ print $1}’`
home=`echo $linea |awk -F: ‘{ print $6}’`
echo “$user – $home”
#corrigiendo el home
chown root.root $home
chmod 755 $home
#corrigiendo el httpdocs y demas principales
for dir in httpdocs httpsdocs cgi-bin anon_ftp
do
if [ -d $home/$dir ];then
#el directorio
chown $user.psaserv $home/$dir
chmod 750 $home/$dir
#el contenido
chown $user.psacln $home/$dir/* -R
chmod 777 $home/$dir/* -R
fi
done
for dir in statistics subdomains web_users
do
if [ -d $home/$dir ];then
chown root.psaserv $home/$dir
chmod 755 $home/$dir
if [ -d $home/$dir/httpsdocs ];then
chown $user.psaserv $home/$dir/httpsdocs
chmod 750 $home/$dir/httpsdocs
chown $user.psacln $home/$dir/httpsdocs -R
chmod 777 $home/$dir/httpsdocs -R
fi
fi
done
done