¿Cómo usar rsync desde una PC con Windows a un servidor remoto de Linux?

23

¿Cómo uso el rsynccomando desde una máquina local con Windows 7 a un servidor remoto de Linux?

¿Qué software se necesita en la máquina con Windows 7 para usar rsync?

El servidor remoto de Linux está utilizando AMI Linux de Amazon. El comando rsyncya está habilitado en la máquina y puedo editar cualquier acceso necesario a la máquina.

Esto es con el propósito de configurar un servidor web en la máquina remota y la edición en mi máquina local y mantener los archivos sincronizados.

No quiero acceso bidireccional entre las máquinas, solo voy a editar archivos en mi máquina local y mantenerlos actualizados en la máquina remota.

ACTUALIZAR:

Instalé cygwin en mi máquina con Windows 7 e instalé el paquete rsync . ¿Alguien puede proporcionar los pasos para configurar la conexión desde la máquina Windows 7 al servidor Linux de forma remota?

Digamos que quiero que se llame C:\wwwa una carpeta en mi máquina Windows y mantenerla actualizada \var\wwwen mi máquina remota, ¿cómo hago eso? No es una copia de seguridad per se, actualiza los archivos que edito con mi computadora local.

paradd0x
fuente

Respuestas:

9

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 . '[email protected]:/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 . [email protected]:/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,
--excludeomita 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.

Ben
fuente
Descripción del -cpará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.
Lukasz Stelmach
6

Si desea una aplicación gratuita que incluya cygwin y rsync con una interfaz gráfica agradable, eche un vistazo a Deltacopy :

http://www.aboutmyip.com/AboutMyXApp/DeltaCopy.jsp

  • Copia de seguridad incremental : copia parte del archivo que se modifica realmente
  • Programador de tareas : los perfiles en DeltaCopy pueden ejecutarse según un programa
  • Notificación por correo electrónico : los administradores pueden recibir confirmación por correo electrónico sobre transferencias exitosas o fallidas
  • Restauración con un clic : los archivos respaldados se pueden restaurar fácilmente.
  • Entorno amigable para Windows : no es necesario modificar manualmente los archivos de configuración o jugar con las opciones de línea de comandos.
Linker3000
fuente
6

Una opción podría ser instalar rsync instalando cygwin en windows. Probablemente haya un enfoque mucho más directo para eso.

Otra opción podría ser rsync desde el lado de Linux: puede configurar un medio para que la máquina remota acceda a los archivos locales y luego rsync desde allí (eche un vistazo al montaje de recursos compartidos smb / cifs).

Sospecho que todavía hay mejores opciones, pero tal vez eso ayude un poco.


Actualización para 2017

Con el subsistema Linux disponible en Windows 10, probablemente pueda instalar un servidor ssh & rsync muy fácilmente con eso y usar rsync con Windows a través de eso.

James T Snell
fuente
5

MinGW tiene un rsync incorporado que parece funcionar bastante bien. Incluso tiene un modo demonio, aunque no lo he probado. Recomiendo MinGW sobre cygwin por varias razones: MinGW es una instalación más pequeña y es nativa de Windows.

AC Verbeck
fuente