Saya harus memindahkan banyak file dari satu PC ke PC lainnya (keduanya Linux). Saya ingin menggunakan scp
untuk itu, tetapi scp
hanya memungkinkan untuk mentransfer satu file sekaligus.
Bagaimana saya bisa melakukan ini?
saya sudah
- Tidak ada kemungkinan untuk menggunakan rsync atau protokol lainnya
- Tidak ada kemungkinan untuk menggunakan sertifikat bebas frasa sandi (tetapi memiliki sertifikat dengan frasa sandi)
- Daftar file yang akan ditransfer dan daftar dengan jalur tujuan file di server lain
- File-file tersebar di banyak direktori, dan tidak semua file dalam direktori yang ingin saya salin
Jika memungkinkan, saya ingin gzip dan ungzip secara transparan untuk menghemat bandwidth!
Apakah ini mungkin?
-C'' on a line by itself will cause the current directory to be changed to the directory specified on the following line. Names are terminated by newlines unless --null is specified. Note that --null also disables the special handling of lines containing
-C ''."Saya cukup yakin itu tidak benar, paling tidak untuk
scp
perintah yang diberikan oleh OpenSSH yang disertakan dengan sebagian besar distribusi Linux.Saya
scp file1 file2 ... fileN user@host:/destination/directory/
cukup sering menggunakan .Untuk kompresi transparan, protokol SSH memiliki bawaan dan
scp
dapat menggunakannya jika Anda memberikan-C
opsi pada baris perintah. Untuk banyak file kecil yang serupa, Anda akan menemukan opsi tar + gz yang disarankan oleh akira mendapatkan kompresi yang lebih baik karena dapat menggunakan kesamaan antara file-file tersebut di manascp
kompres setiap file sebagai entitas yang terpisah. Saya biasanya lebih suka menggunakan scp karena lebih mudah untuk melanjutkan transfer parsial (atau, meskipun saya tahu dalam situasi ini si penanya tidak memiliki opsi)rsync
karena keduanya lebih mudah untuk melanjutkan dan membagikan seluruh opsi tar + gz option Keuntungan kompresi -stream.sumber
Tidak
scp -r yourdir otherhost:/otherdir
bekerjaCoba ini:
yang
z
-flag untuk tar tidak kompresi. Atau Anda dapat menggunakan -C untuk ssh:sumber
-C
harus dilakukanDi RHEL5, berikut adalah satu-satunya cara yang mungkin saya tahu untuk mengamankan menyalin daftar file yang berisi karakter khusus (seperti spasi). Buat skrip shell dan sertakan yang berikut:
sumber
Itu bisa dilakukan tanpa banyak masalah.
Saya cukup membuat daftar file dengan nama host di sebelah setiap file dan scp tampaknya menguraikannya dengan baik. yaitu.
Scp tampaknya berfungsi dengan baik dengan sintaks ini. Ketika saya mencobanya tanpa nama host di sebelah setiap file gagal setelah file pertama. Saya sepertinya mengingat sintaks lain yang saya gunakan untuk ini sebelumnya dan akan mempostingnya setelah saya menemukannya.
sumber
~/
kebanyakan dapat ditinggalkan - SCP beroperasi relatif ke direktori home. .. Jika Anda memiliki daftar dari tempat lain di$list
:scp $(echo "$list"|sed "s/^/$srchost:/") local_destination
(Ini akan merusak nama file dengan spasi)Saya akan merekomendasikan ke bagian menggunakan perintah seperti ini untuk membuat arsip dari daftar file Anda
tar -cvf allfiles.tar -L mylist.txt
Kemudian gunakan scp untuk mengunduh arsip.
pengguna scp @ remotehost: ~ / allfiles.tar
/programming/8033857/tar-archiving-that-takes-input-from-a-list-of-files
sumber