Rsync es una herramienta de software libre extremadamente útil que le permite a los usuarios y administradores de sistemas copiar y sincronizar archivos de forma segura entre computadoras y sistemas operativos. Pero la limitación con “rsync” es que se ejecuta en primer plano y bloquea la línea de comandos hasta que se completa. Afortunadamente, hay una forma de ejecutar rsync en segundo plano.
Para realizar una tarea en segundo plano en Linux, simplemente necesitas agregar un ‘&’ al final de tu comando. Entonces, arrancar rsync en segundo plano requeriría el siguiente comando:
```
rsync -a —progress origen destino &
```
Ahora, esto hace que rsync se ejecute en segundo plano, pero existe el problema de que si cierras tu terminal o tu sesión SSH se interrumpe, el proceso en segundo plano se detendrá. Para evitar este problema, se puede utilizar la herramienta “nohup”, que permite que los comandos sigan ejecutándose incluso después de que se cierre la sesión de terminal. El comando sería:
```
nohup rsync -a —progress origen destino &
```
El comando “nohup” guardará la salida de su comando (incluidos los errores) en un archivo llamado “nohup.out” en su directorio actual. Si quieres que esta salida se descarte, puedes redirigirla a “/dev/null”:
```
nohup rsync -a —progress origen destino > /dev/null 2>&1 &
```
Además de “nohup”, también está el comando “screen”, que es más un gestor de terminales completos que simplemente ejecuta cosas en segundo plano. Permite volver a una sesión después de desconectarse y otras cosas bonitas.
Por último, tenga en cuenta que ejecutar rsync de esta manera puede dar lugar a un proceso descontrolado si se olvida de él. Comprueba el progreso de tu tarea en segundo plano utilizando “top” o “ps” seguido de “aux | grep rsync” para que puedas matar el proceso si se descontrola.
Recursos utilizados:
1. “Rsync (Remote Sync): 10 Practical Examples of Rsync Command in Linux” (https://www.tecmint.com/rsync-local-remote-file-synchronization-commands/)
2. “Using nohup command to keep processes running after ending ssh session” (https://www.tecmint.com/nohup-command-keep-running-scripts-in-background/)
3. “Screen Command: Set Up Multiple Linux / Unix Shell Windows” (https://www.cyberciti.biz/tips/linux-screen-command-howto.html)
4. “Linux / Unix ps Command Examples” (https://www.cyberciti.biz/faq/ps-command-examples/)