Lo primero que vamos ha hacer es crear una realacion de confianza por SSH entre los dos servidores lo cual quiere decir que entre servidores y usuarios no se va a solicitar contraseña a traves de ssh en este caso entre los que se va ha realizar la copia de carpetas, para ello se debe ejecutar:
Para este ejemplo se utilizan las maquinas caronte (192.168.0.1) y hades (192.168.0.2) y la copia se realizara desde caronte hacia hades
Caronte -> Hades
[root@caronte ~]# ssh-keygen -d
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Enter passphrase (empty for no passphrase): ENTER
Enter same passphrase again: ENTER
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
Una vez generada la llave continuamos con:
[root@caronte ~]# cp ~/.ssh/id_dsa.pub ~/.ssh/authorized_keys2
Recuerde que el carácter ~ en sistemas Linux representa el HOME del usuario, es importante tener en cuenta que este procedimiento genera relaciones de confianza entre maquinas y usuarios, si el procedimiento se genera como root en ambas maquinas, esta relación quedara únicamente entre estos usuarios.
[root@caronte ~]# chmod 400 ~/.ssh/authorized_keys2
Por ultimo se procede a comprimir la carpeta .ssh y pasarla al otro servidor para ser descomprimida en la carpeta /root y el el HOME de usuario con el que se quiera tener esta relación
[root@caronte ~]# tar cvfzp ssh.tgz /root/.ssh
[root@caronte ~]# scp ssh.tgz 192.168.0.2:/root
[root@caronte ~]# ssh 192.168.0.2
[root@hades ~]# tar xvfzp ssh.tgz
Una vez realizados los pasos anteriores, podemos utilizar el siguiente script, en mi caso lo dejo ubicado en la carpeta /usr/local/src
[root@caronte ~]# vi /usr/local/src/rsync.sh
#!/bin/bash
# my_rsync.sh
# timm.schenker@urz.uni-heidelberg.de
#
# IP Destino
master="192.168.1.2"
# Archivos y carpetas a syncronizar
rsync_dirs="/home/ /var/lib/vmware /opt/WorldOfGoo /chroot/"
rsync_files="/etc/issue"
# Lockfile para el control de escritura
lockfile_slave="/var/lock/subsys/mirror.lock"
lockfile_master="/var/lock/subsys/my_rsync.lock"
# Syslog
slog="logger -t my_rsync "
if [ -e $lockfile_slave ]; then
$slog "my_rsync nicht gestartet: $lockfile_slave existiert!"
exit 1
fi
if [ -e $lockfile_master ]; then
$slog "my_rsync nicht gestartet: $lockfile_master existiert!"
exit 1
fi
touch $lockfile_master
if [ "$(/sbin/ifconfig eth0 | grep $master)" != "" ]; then
othernode=$slave
else
othernode=$master
fi
for i in $rsync_dirs; do
(rsync --rsh=$(which ssh) -aurlq --delete $i/ $othernode:$i) || {
$slog "rsync Fehler bei Verzeichnis $i"
}
done
for i in $rsync_files; do
(rsync --rsh=$(which ssh) -aurlq $i $othernode:$i) || {
$slog "rsync Fehler bei Datei $i"
}
done
rm -f $lockfile_master
exit 0
Basta con cambiar únicamente los parámetros que se encuentran en rojo al inicio del script que son:
master="192.168.1.2" Dirección IP de Hades en este caso o destino donde se va a realizar la copia
rsync_dirs="/home/ /var/lib/vmware /opt/WorldOfGoo /chroot/" Carpetas que se vana sincronizar
rsync_files="/etc/issue" archivos que se van a sincronizar
No hay comentarios:
Publicar un comentario