Sebuah artikel tentang pengaturan blog Ghost mengatakan digunakan scp
untuk menyalin dari mesin lokal saya ke server jarak jauh:
scp -r ghost-0.3 root@*your-server-ip*:~/
Namun, Railscast 339: Dasar-Dasar Chef Solo digunakan scp
untuk menyalin ke arah yang berlawanan (dari server jarak jauh ke mesin lokal):
scp -r [email protected]:/var/chef .
Dalam Railscast yang sama, ketika penulis ingin menyalin file ke server jauh (arah yang sama seperti contoh pertama), ia menggunakan rsync
:
rsync -r . [email protected]:/var/chef
Mengapa menggunakan rsync
perintah jika scp
akan menyalin di kedua arah? Bagaimana scp
berbeda dari rsync
?
Jawaban:
Perbedaan utama antara alat-alat ini adalah bagaimana mereka menyalin file.
scp
pada dasarnya membaca file sumber dan menulisnya ke tujuan. Ia melakukan salinan linear biasa, secara lokal, atau melalui jaringan.rsync
juga menyalin file secara lokal atau melalui jaringan. Tetapi menggunakan algoritma transfer delta khusus dan beberapa optimasi untuk membuat operasi jauh lebih cepat. Pertimbangkan panggilannya.rsync
akan memeriksa ukuran file dan stempel waktu modifikasi A dan B , dan melewati pemrosesan lebih lanjut jika cocok.Jika file tujuan B sudah ada, algoritma transfer delta akan memastikan hanya perbedaan antara A dan B yang dikirim melalui kabel.
rsync
akan menulis data ke file sementara T , dan kemudian mengganti file tujuan B dengan T untuk membuat update tampilan "atom" untuk proses yang mungkin menggunakan B .Perbedaan lain di antara mereka menyangkut doa.
rsync
memiliki sejumlah opsi baris perintah, yang memungkinkan pengguna menyesuaikan perilakunya. Ini mendukung aturan filter yang kompleks, berjalan dalam mode batch, mode daemon, dll. Hanyascp
memiliki beberapa switch.Singkatnya, gunakan
scp
untuk tugas sehari-hari Anda. Perintah yang Anda ketik sesekali pada shell interaktif Anda. Ini lebih mudah digunakan, dan dalam kasus itursync
optimasi tidak akan banyak membantu.Untuk tugas berulang, seperti
cron
pekerjaan, gunakanrsync
. Seperti yang disebutkan, pada banyak pemanggilan akan mengambil keuntungan dari data yang sudah ditransfer, berkinerja sangat cepat dan menghemat sumber daya. Ini adalah alat yang sangat baik untuk menjaga dua direktori disinkronkan melalui jaringan.Juga, ketika berhadapan dengan file besar, gunakan
rsync
dengan-P
opsi. Jika transfer terputus, Anda dapat melanjutkannya di tempat terhenti dengan menerbitkan kembali perintah. Lihat jawaban Sid Kshatriya .sumber
scp
kemungkinan besar akan tersedia pada sistem seperti Unix, sehingga Anda mencegah "perintah tidak ditemukan" yang mengganggu sekarang dan kemudian.scp
danrsync
:rsync -a
dibandingkanscp -rp
untuk mempertahankan waktu modifikasi dan izin.rysnc dapat berguna untuk berjalan pada koneksi yang lambat dan tidak dapat diandalkan. Jadi, jika unduhan Anda batal di tengah file besar rysnc akan dapat melanjutkan dari tempat sebelumnya ketika dipanggil lagi.
Menggunakan
rsync -vP username@host:/path/to/file .
Opsi -P menyimpan file yang diunduh sebagian dan juga menunjukkan kemajuan.
Seperti biasa cek
man rsync
sumber
Perbedaan b / w scp dan rsync pada parameter yang berbeda
1. Kinerja melebihi latensi
scp
: scp relatif kurang mengoptimalkan dan kecepatanrsync
: rsync relatif lebih mengoptimalkan dan kecepatanhttps://www.disk91.com/2014/technology/networks/compare-performance-of-different-file-transfer-protocol-over-latency/
2. Penanganan gangguan
scp
: alat baris perintah scp tidak dapat melanjutkan unduhan yang dibatalkan dari koneksi jaringan yang hilangrsync
: Jika sesi rsync di atas itu sendiri terputus, Anda dapat melanjutkannya sebanyak yang Anda inginkan dengan mengetikkan perintah yang sama. rsync akan secara otomatis memulai kembali transfer di tempat yang ditinggalkannya.http://ask.xmodulo.com/resume-large-scp-file-transfer-linux.html
3. Contoh Perintah
scp
rsync
The
-P
pilihan adalah sama dengan--partial --progress
, memungkinkan rsync untuk bekerja dengan file sebagian download. The--rsh=ssh
pilihan memberitahu rsync untuk penggunaan ssh sebagai remote shell.4. Keamanan:
scp lebih aman. Anda harus menggunakannya
rsync --rsh=ssh
untuk membuatnya seaman scp.dokumen manual untuk mengetahui lebih lanjut:
sumber
The scp protocol is outdated, inflexible and not readily fixed. We recommend the use of more modern protocols like sftp and rsync for file transfer instead.
Salah satu fitur utama
rsync
overscp
(di samping algoritma delta dan enkripsi jika digunakan w / ssh) adalah secara otomatis memverifikasi apakah file yang ditransfer telah ditransfer dengan benar. Scp tidak akan melakukan itu, yang kadang-kadang dapat menyebabkan korupsi ketika mentransfer file yang lebih besar. Jadi secara umum rsync adalah salinan dengan jaminan .Centos manpages menyebutkan ini sebagai akhir dari
--checksum
deskripsi opsi:sumber
Ada perbedaan bagi saya yang
scp
selalu dienkripsi dengan ssh (secure shell), sementararsync
tidak harus dienkripsi. Lebih khusus lagi,rsync
tidak melakukan enkripsi apa pun dengan sendirinya; masih mampu menggunakan mekanisme lain (ssh misalnya) untuk melakukan enkripsi.Selain keamanan, enkripsi juga memiliki dampak besar pada kecepatan transfer Anda, serta overhead CPU. (Pengalaman saya adalah bahwa
rsync
secara signifikan bisa lebih cepat daripadascp
.)Lihat pos ini untuk mengetahui kapan
rsync
enkripsi diaktifkan.sumber
scp terbaik untuk satu file.
ATAU kombinasi
tar
& kompresi untuk set data yang lebih kecil seperti pohon kode sumber dengan sumber daya kecil ( yaitu : gambar, sqlite dll ).Namun , ketika Anda mulai berurusan dengan volume yang lebih besar katakan:
Menjadi tidak praktis untuk membangun file zip / tar.gz untuk ditransfer dengan scp pada saat ini lakukan pada batas fisik server yang di-host.
Sebagai latihan, Anda dapat melakukan beberapa senam seperti pipa
tar
ke dalamssh
dan mengarahkan hasil menjadi jauh berkas. (menyimpan kebutuhan untuk membangun swap atau klon sementara alias zip atau tar.gz)Namun ,
rsync menyederhanakan proses ini dan memungkinkan Anda untuk mentransfer data tanpa menggunakan ruang disk tambahan.
Juga ,
Pembaruan berkelanjutan (cron?) Menggunakan perubahan minimal vs salinan kloning penuh mempercepat migrasi data besar dari waktu ke waktu.
tl; dr
scp
== skala kecil (dengan ruang untuk membuat file terkompresi pada drive yang sama)rsync
== skala besar (dengan kebutuhan untuk membuat cadangan data besar dan tidak ada ruang tersisa)sumber
lebih baik berpikir dalam konteks praktis. Di tim kami, kami gunakan
rsync -aP
untuk mengganti host cassandra yang buruk di cluster kami. Kami tidak dapat melakukan ini dengan scp (lambat dan tidak ada kemajuan pelestarian).sumber