Bagaimana cara menggunakan rsync dari PC Windows ke server Linux jarak jauh?

23

Bagaimana cara menggunakan rsyncperintah dari mesin Windows 7 lokal ke server Linux jarak jauh?

Perangkat lunak apa yang diperlukan pada mesin Windows 7 untuk digunakan rsync?

Server Linux jarak jauh menggunakan AMI Linux Amazon. Perintah rsyncsudah diaktifkan pada mesin dan saya dapat mengedit akses yang diperlukan ke mesin.

Ini untuk keperluan menyiapkan server web pada mesin jarak jauh dan pengeditan pada mesin lokal saya dan menjaga file dalam sinkronisasi.

Saya tidak ingin akses dua arah antara mesin, saya hanya akan mengedit file pada mesin lokal saya dan menjaganya tetap diperbarui pada mesin jarak jauh.

MEMPERBARUI:

Saya menginstal cygwin pada mesin Windows 7 saya dan menginstal paket rsync . Dapatkah seseorang memberikan langkah-langkah untuk mengatur koneksi dari mesin Windows 7 ke server Linux dari jarak jauh?

Katakanlah saya ingin memiliki folder yang dipanggil C:\wwwpada mesin Windows saya dan tetap memperbaruinya \var\wwwpada mesin remote saya, bagaimana saya melakukannya? Ini bukan cadangan, itu memperbarui file yang saya edit dengan komputer lokal saya.

paradd0x
sumber

Jawaban:

9

Saya memiliki MinGW (juga dikenal sebagai 'Git Bash' ) pada Windows 7, dan file batch yang menjalankan rsync untuk membuat cadangan file pada drive eksternal pada komputer linux jarak jauh. Inilah file batch ( 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'"

Berikut sedikit penjelasan baris demi baris:

REM Changing directory... (assuming we are in G:/My Documents/My Various Things)

Ini hanya memancarkan pesan untuk mengingatkan saya apa yang terjadi.

cd ../

Direktori ini berubah satu tingkat lebih tinggi dari tempat file batch (menjadi 'Dokumen Saya'). File batch ada di drive eksternal di komputer Windows saya. Saya ingin menyinkronkan semua folder 'My Documents' pada drive eksternal ini dengan folder dengan nama yang sama pada drive eksternal di komputer linux jarak jauh saya.

REM starting rsync...

Cukup cetak pesan lain.

bash -c "rsync -avz -P --stats --timeout=60 --exclude Downloads . [email protected]:/media/my_remote_linux_computer/LaCie/My\\ Documents"

bash: memulai MinGW yang memiliki pustaka rsync bawaan
-c: tidak yakin apa yang dilakukan
rsync: pustaka untuk menyinkronkan file, dilengkapi dengan MinGW
-avzh: a-Archive, v-Verbose, z-Compress, h-Human-readable, ini adalah opsi umum (selengkapnya: http://linux.die.net/man/1/rsync )
-P: tampilkan progres untuk file besar jadi saya tahu apakah ini dibekukan atau tidak
--stats: tampilkan ringkasan berapa banyak file dan byte yang ditransfer di akhir
--timeout=60: bunuh setelah 60 detik jika macet
--excludemenghilangkan file / direktori dari sinkronisasi, dalam hal ini saya mengecualikan direktori yang disebut 'Unduhan'
.: menunjukkan untuk menyinkronkan semua konten 'Dokumen Saya' (mengharapkan hal yang ditentukan untuk dikecualikan dalam baris di atas)
my_remote_linux_computer: nama komputer linux jarak jauh saya (bukan nama sebenarnya;)
@128.95.155.200: alamat IP komputer linux jarak jauh saya, dari https://www.whatismyip.com/ (bukan alamat IP saya yang sebenarnya :)
/media/my_remote_linux_computer/LaCie/My\\ Documents: jalur ke direktori di komputer linux jarak jauh yang saya inginkan untuk menerima file. Ini adalah drive eksternal.

Perhatikan bahwa ruang di "Dokumen Saya" lolos dengan dua garis miring terbalik, dan nama lengkap dan direktori tujuan jarak jauh dikelilingi oleh tanda kutip ganda.

Ketika saya mulai mengklik dua kali pada file bat saya diminta kata sandi untuk komputer linux jarak jauh saya. Ketika selesai, saya mendapatkan beberapa output ringkasan dan diminta untuk menekan tombol apa saja untuk menutup.

Ben
sumber
Deskripsi -cparameter dari bash man: Jika opsi -c hadir, maka perintah dibaca dari string. Jika ada argumen setelah string, mereka ditugaskan ke parameter posisi, dimulai dengan $ 0.
Lukasz Stelmach
6

Jika Anda menginginkan aplikasi gratis yang menggabungkan cygwin dan rsync dengan antarmuka grafis yang bagus, silakan lihat di Deltacopy :

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

  • Cadangan tambahan - Menyalin bagian dari file yang sebenarnya dimodifikasi
  • Penjadwal tugas - Profil di DeltaCopy dapat berjalan berdasarkan jadwal
  • Pemberitahuan email - Administrator dapat menerima konfirmasi email tentang transfer yang berhasil maupun yang gagal
  • Pemulihan sekali klik - File yang dicadangkan dapat dengan mudah dipulihkan.
  • Lingkungan ramah Windows - Tidak perlu memodifikasi file konfigurasi secara manual atau bermain-main dengan opsi baris perintah.
Linker3000
sumber
6

Salah satu opsi bisa dengan menginstal rsync dengan menginstal cygwin di windows. Mungkin ada pendekatan yang jauh lebih langsung untuk itu.

Pilihan lain bisa dengan rsync dari sisi linux - Anda bisa mengatur cara untuk mesin jarak jauh untuk mengakses file lokal, dan kemudian rsync dari sana (lihat cara memasang smb / cifs share).

Saya menduga masih ada opsi yang lebih baik, tapi mungkin itu akan membantu sedikit.


Pembaruan untuk 2017

Dengan subsistem Linux yang tersedia di Windows 10, Anda mungkin dapat menginstal server ssh & rsync dengan sangat mudah dengan itu dan menggunakan rsync dengan Windows melalui itu.

James T Snell
sumber
5

MinGW memiliki rsync built-in yang tampaknya bekerja cukup baik. Bahkan memiliki mode daemon - meskipun saya belum mengujinya. Saya merekomendasikan MinGW lebih dari cygwin karena beberapa alasan: MinGW adalah instalasi yang lebih kecil dan asli Windows.

AC Verbeck
sumber