La Mirada hecha Pedazos Fotografía libre con software libre

Copias de seguridad con rsync

Todo lo que necesitas hacer es añadir la información de usuario y host (la máquina remota). Por ejemplo, si quieres copiar una carpeta a un equipo remoto, has de hacer esto:

rsync -avhe ssh --delete /home/usuario/dir/ usuario@remote.host.com:dir/

Si quieres saber lo rápido que va la transferencia, y cuánto queda por copiar, añade la opción --progress:

rsync --progress -avhe ssh --delete /home/usuario/dir/ usuario@remote.host.com:dir/

Para evitar la pregunta de la contraseña cada vez que rsync haga una conexión asegúrate de configurar rsync para acceder mediante una clave SSH en lugar de una contraseña. Para ello, se crea una clave SSH en la máquina local usando ssh-keygen -t dsa, y pulsa Intro cuando te pregunte por una passphrase. Tras crear la clave, usa ssh-copy-id -i .ssh/id_dsa.pub user@remote.host.com para copiar la clave pública al equipo remoto.

¿Y qué sucede si necesitas traer de vuelta a algunos de los archivos copiados usando rsync? Usa la siguiente sintaxis:

rsync -avze ssh remote.host.com:/home/usuario/dir/ /local/path/

La opción z es para comprimir los datos durante su transferencia. Si el fichero que estás copiando existe en el equipo local, rsync lo dejará sin tocar, y lo mismo pasaría si estuvieras moviendo ficheros a una máquina remota.

Si intentas hacer copias de seguridad entre sistemas de archivos diferentes (por ejemplo linux <-> windows) tendrás problemas con los cambios de permisos, propietarios y grupo, lo mejor sería omitir estos cambios, y si además quieres usar un puerto de ssh diferente al 22, por ejemplo el 2367 se puede hacer de la siguiente manera:

rsync -rltDz ssh --delete /home/usuario/dir/ usuario@remote.host.com:dir/

Guardar una lista de los paquetes que tenemos instalados

Esto puede ser muy útil a la hora de replicar una instalación en varias máquinas, o simplemente volver a dejar como estaba un servidor que por algún problemilla hemos tenido que volver a instalar todo.
Para obtener una lista de los paquetes que tenemos instalados, ejecutamos:

~$ dpkg --get-selections | grep -v deinstall > lista_paquetes

Para reinstalar esta lista de nuevo, en esta u otra máquina tenemos que tener instalada una distribución mínima (como mínimo) de la misma versión de Linux que queremos replicar (si no es la misma, se va a liar!!); nos llevamos nuestro archivo lista_paquetes y ejecutamos:

~$ sudo dpkg --set-selections < ./lista_paquetes && sudo apt-get -u dselect-upgrade

Si en el proceso recibes errores diciendo algo parecido a que los paquetes no están en la base de datos (dpkg: warning: package not in database), ejecuta estos comandos y repite el comando anterior.

~$ sudo dselect install
~$ sudo dselect access
~$ sudo dselect update
~$ sudo dpkg --set-selections < ./lista_paquetes && sudo apt-get -u dselect-upgrade
Pagina de inicio