Mengapa rsync melewatkan direktori utama?

47

Saya mencoba menggunakan rync secara lokal (pada mesin windows) ke server jauh (kotak osx saya) untuk menguji skrip build deploy deploy jarak jauh. Saya sudah melakukan rsync sebelumnya antara 2 server linux, tapi saya mengalami masalah sekarang. Berikut ini hasilnya:

$ rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

skipping directory /Library/WebServer/sites/staging/app1/.

sent 8 bytes  received 13 bytes  3.82 bytes/sec
total size is 0  speedup is 0.00

$ 

atau

$ rsync -avz -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

receiving file list ... done
./

sent 26 bytes  received 68 bytes  17.09 bytes/sec
total size is 0  speedup is 0.00


$ 

direktori app1 jauh kosong sedangkan direktori ekspor lokal memiliki 4 sub direktori dan kemudian banyak file di masing-masing

chrisan
sumber

Jawaban:

64
rsync -v -e ssh [email protected]:/Library/WebServer/sites/staging/app1/ ./export

Anda tidak memberikan opsi apa pun untuk memasukkannya ke mode rekursif seperti -ratau -a.

direktori app1 jauh kosong sedangkan direktori ekspor lokal memiliki 4 sub direktori dan kemudian banyak file di masing-masing

Apakah Anda memiliki opsi mundur di sini? Perintahnya seharusnya rsync [source] [DESTINATION]. Jika direktori app1 kosong dan Anda mencoba menyalin direktori kosong maka Anda tidak akan melakukan sesuatu yang bermanfaat.

Mungkin Anda membutuhkan sesuatu seperti ini?

rsync -avz ./export/  [email protected]:/Library/WebServer/sites/staging/app1/ 

Juga:

  • Anda harus hampir selalu menyertakan garis miring pada direktori dengan rsync.
  • Hampir setiap versi rsync yang dirilis dalam 5-10 tahun terakhir default untuk menggunakan ssh memiliki transportasi jarak jauh. Anda mungkin tidak harus menentukan -e ssh.
Sakit kepala
sumber
2
Wow .. itu cukup memalukan. Ya, saya mencampuradukkan sumber dan tujuan ...
chrisan
1
+1 untuk "Anda harus hampir selalu menyertakan garis miring pada direktori dengan rsync."
Walrus the Cat
Di Mac sepertinya menggunakan flag -r, tetapi di linux saya selalu menggunakan -R ("capital R")
Adam F
@Zoredache Mengapa hampir?
Nikhil
3

Mencoba mengaktifkan kemampuan built-in rsync untuk menghasilkan file log, dengan menambahkan opsi berikut ke perintah Anda.

--log-file=/path/to/log.file

Anda juga dapat meningkatkan verbositas dengan menambahkan -vopsi tambahan , misalnya -avvz, menurut halaman manual, 'Dua opsi akan memberi Anda informasi tentang file apa yang dilewati dan sedikit lebih banyak informasi di akhir.'

Jika informasi ini yang mengembalikan tidak membantu mengidentifikasi masalah, harap edit pertanyaan Anda dan tambahkan output tambahan.

Bryan
sumber