Tengo MinGW (también conocido como 'Git Bash' ) en Windows 7 y un archivo por lotes que ejecuta rsync para hacer copias de seguridad de archivos en una unidad externa en una computadora Linux remota. Aquí está el archivo por lotes ( my_rsync_file.bat
)
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
cd ../
REM starting rsync...
bash -c "rsync -avzh -P --stats --timeout=60 --exclude Downloads . 'my_remote_linux_computer@128.95.170.200:/media/my_remote_linux_computer/LaCie/My\ Documents'"
Aquí hay un poco de explicación línea por línea:
REM Changing directory... (assuming we are in G:/My Documents/My Various Things)
Esto solo emite un mensaje para recordarme lo que está sucediendo.
cd ../
Esto cambia el directorio un nivel hacia arriba desde donde está el archivo por lotes (a 'Mis documentos'). El archivo por lotes está en una unidad externa en mi computadora con Windows. Quiero sincronizar toda la carpeta 'Mis documentos' en esta unidad externa con una carpeta del mismo nombre en una unidad externa en mi computadora Linux remota.
REM starting rsync...
Solo imprime otro mensaje.
bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . my_remote_linux_computer@128.95.155.200:/media/my_remote_linux_computer/LaCie/My\\ Documents"
bash
: inicia MinGW que tiene una biblioteca rsync incorporada
-c
: no estoy seguro de lo que hace
rsync
: biblioteca para sincronizar archivos, viene con MinGW
-avzh
: a-Archive, v-Verbose, z-Compress, h-Human-legible, estas son las opciones comunes (más: http://linux.die.net/man/1/rsync )
-P
: muestra el progreso de los archivos grandes, así sé si está congelado o no
--stats
: muestra el resumen de cuántos archivos y bytes se transfieren al final
--timeout=60
: mátalo después 60 segundos si se atasca,
--exclude
omita la sincronización de archivos / directorios, en este caso excluyo un directorio llamado 'Descargas'
.
: indica que se sincronizarán todos los contenidos de 'Mis documentos' (espere que lo especificado se excluya en la línea anterior)
my_remote_linux_computer
: nombre de mi computadora Linux remota (no es su nombre real;)
@128.95.155.200
: las direcciones IP de mi computadora Linux remota, desde https://www.whatismyip.com/ (no es mi dirección IP real :)
/media/my_remote_linux_computer/LaCie/My\\ Documents
: la ruta al directorio en mi computadora Linux remota que quiero recibir los archivos. Es un disco externo.
Tenga en cuenta que el espacio en "Mis documentos" se escapa con dos barras invertidas, y el nombre completo y el directorio del destino remoto están rodeados por comillas dobles.
Cuando comienzo a hacer doble clic en el archivo bat, se me solicita la contraseña de mi computadora Linux remota. Cuando se completa, obtengo un resumen del resultado y se me solicita que presione cualquier tecla para cerrar.
-c
parámetro de bash man: si la opción -c está presente, los comandos se leen de la cadena. Si hay argumentos después de la cadena, se asignan a los parámetros posicionales, comenzando con $ 0.