Lanjutkan transfer scp rekursif (dengan rsync?)


14

Saya mentransfer beberapa ribu file masing-masing ~ 1MB melalui scp dan koneksi saya terputus setelah 2k file pertama atau lebih. Saya ingin tahu apakah ada cara untuk melanjutkan transfer rekursif tanpa memulai dari awal. Sesuatu seperti

$ scp -r me@host.com:/datafiles/ ./
... Happy Transfer ...
...     BREAK!     ...
$ rsync -P me@host.com:/datafiles/ ./
... Continue transf...

Masalahnya adalah saya sepertinya tidak bisa mendapatkan sintaks yang benar jika memungkinkan. Adakah yang bisa menjelaskan jika / bagaimana hal itu bisa dilakukan?

PS. Jika Anda menentukan slash setelah "datafiles" di baris rsync, apakah itu mentransfer direktori atau kontennya? Saya melihat komentar yang bertentangan ketika saya mencari di Google.

Jawaban:


10

jika Anda rsyncing dari mesin lokal ke host jarak jauh, ini akan berhasil:

rsync -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

Terima kasih. Saya tidak berpikir ini berfungsi karena akan mulai mendaftar semua file saya, tetapi saya tidak menyadari bahwa itu menunjukkan "transfer file" yang hanya berarti memperhatikan file itu up to date. Benar adalah transfer saya tinggalkan itu diambil dengan transfer nyata (lebih lambat).
physicsmichael

Hmm, bagi saya ssh -i akey.pemdiperlukan dan saya tidak bisa mendapatkan -ibagian untuk bekerja dengan perintah-perintah ini.
isomorfisma

2
Jika Anda mencoba untuk melanjutkan file besar, pilihan ini mungkin berguna: --partial --inplace --no-whole-file.
Rafael Xavier

@kibitzer - setelah menunjukkan Anda file (di server jauh), bagaimana Anda memulai transfer lagi? Milik saya hanya membangun file daftar dan menunjukkan kepada saya file dan berapa banyak yang diunggah. Tapi itu hanya hang tanpa opsi untuk melanjutkan atau meningkatkan output. Sudahkah transfer dimulai lagi atau apakah saya perlu melakukan sesuatu untuk memulainya?
masterninja01

3
-ltidak perlu. Ini tersirat oleh-a
Guido

11

Baris berikut harus melakukan trik untuk itu:

rsync --partial --progress --rsh = ssh -r me@host.com: / datafiles / ./

Saya tidak pernah menggunakan ini untuk direktori rekursif sebelumnya, tetapi ketika saya mengirim sms itu sepertinya berfungsi seperti yang diharapkan.


1
Ini juga berfungsi, selama Anda menyertakan -r =)
physicsmichael

Sebagian besar transfer rsync saya adalah tipe "rsync -ahP something / user @ host: / somewhere /". --Rsh = ssh sama sekali tidak perlu. Kemudian, juga -P menyeret dalam --partial dan --progress.
killermist

1

Perintah rsync yang Anda daftarkan akan berfungsi, jika Anda hanya menambahkan "-r". tetapi Anda juga kemungkinan besar menginginkan "-a" dan "-v".

Dan tentang trailing slash, me@site.com: / data / setara dengan / data / *, dengan kata lain, jika Anda menambahkan garis miring, ia menyalin semua konten. tapi me@site.com: / data akan menjadi direktori itu sendiri [dan tentu saja, subfoldernya]


1

Menggabungkan jawaban kibitzer dan Tyler bekerja paling baik untuk saya:

rsync --partial --progress -avzl -e ssh /directory/with/files/ you@host.com:/new/directory/

(rsyncing secara rekursif dan menunjukkan kemajuan setiap file)

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.