Mengapa tidak selalu menggunakan rsync?

17

Saya ingin bertanya apakah ada alasan untuk tidak menggunakan rsyncsemuanya dan meninggalkannya cp?
Saya tidak menyadarinya rsyncdan sekarang saya tidak tahu mengapa hal cpitu diperlukan.

Jim
sumber
9
rsynctidak tersedia di mana-mana, cpadalah.
Mat
3
Instalasi yang mana? Linux? Yang mana? Unix? dito. BSD? Anda tidak pernah tahu apa yang muncul secara default.
terdon
5
Benar-benar tidak ada "instalasi default" untuk Linux. Setiap distro memiliki paket inti dan sejumlah variasi di dalamnya. Juga ketika Anda perlu bekerja pada banyak sistem, menggunakan alat yang tersedia di mana-mana membuat segalanya lebih sederhana.
Mat
4
@Mat: Ada instalasi default (atau inti) sejauh distro linux mematuhi, melalui basis GNU userland, dengan POSIX, yang membutuhkan (dan mendefinisikan fungsi) cptetapi tidak rsync: pubs.opengroup.org/onlinepubs/007904875 /utilities/contents.htm
goldilocks
1
Saya cukup yakin Debian GNU / Linux menginstal rsync secara default. Namun, itu tidak tersedia di lingkungan instalasi dan penyelamatan. (Saya menggunakannya pagi ini untuk mentransfer isi partisi root saya dari satu disk ke disk lain. Menggunakan DVD instalasi 7.1.0 amd64.)
a CVn

Jawaban:

24

Tegasnya ya, Anda selalu bisa menggunakan rsync. Dari man rsync(beri penekanan pada saya):

Rsync adalah alat penyalinan file yang cepat dan luar biasa fleksibel. Ia dapat menyalin secara lokal, ke / dari host lain melalui shell remote, atau ke / dari daemon rsync jarak jauh. Ia menawarkan sejumlah besar opsi yang mengontrol setiap aspek dari perilakunya dan mengizinkan spesifikasi yang sangat fleksibel dari set file yang akan
disalin. Ia terkenal dengan algoritma delta-transfer-nya, yang mengurangi jumlah data yang dikirim melalui jaringan dengan hanya mengirim perbedaan antara file sumber dan file yang ada dalam destinasi. Rsync banyak digunakan untuk backup dan mirroring dan sebagai perintah penyalinan yang ditingkatkan untuk penggunaan sehari-hari.

Sekarang, terkadang tidak ada gunanya mengetik beberapa karakter tambahan itu hanya dengan menggunakan tank untuk membunuh seekor lalat. Juga, rsyncsering tidak diinstal secara default sehingga cpmenyenangkan untuk dimiliki.

terdon
sumber
Maksud Anda tidak tersedia sebagai bagian dari instalasi default tetapi unduhan terpisah?
Jim
1
@ Jim ya, kadang-kadang Anda perlu menginstal rsyncsendiri tergantung pada sistem yang Anda temukan. Jika Anda tidak memiliki rootakses, itu bisa sulit. cpadalah POSIX dan akan selalu ada di sana.
terdon
9
cpadalah bagian dari GNU coreutils sehingga selalu diinstal pada setiap sistem Linux sementara rsynctidak.
Martin von Wittich
1
sometimes it is just not worth typing those few extra characters- Saya telah alias pcp(untuk "copy kemajuan") untuk itu;)
Izkata
19

Rsync bisa lebih lambat dari cp dalam beberapa situasi. Misalnya ketika tujuan ada dan rsync akhirnya melakukan beberapa perbandingan mahal untuk setiap blok, tidak menemukan blok yang sama dan menyalin file sumber lengkap.

Juga ketika file tujuan tidak ada, rsync tidak memberikan keuntungan apa pun di atas cp.

maxschlepzig
sumber
1
Di bawahnya, metodologi salinan rsync secara signifikan lebih lambat. Lihat unix.stackexchange.com/questions/374071/… . Strace cp menunjukkan (pada tulisan ini), urutan operasi baca / 32 KB sederhana 32KB. Rsync, sementara itu, melakukan read / 4092-byte + 4-byte write to socket / read dari socket / 250KB write to file. Saya melakukan rsync dari 36T file ukuran campuran pada 130MB / s throughput. Saya bisa melipatgandakannya dengan cp -a. rsync menang, seperti yang Anda katakan ketika Anda ingin "membuat 'itu terlihat seperti' ini '" di direktori yang sudah serupa.
Mike S
7

Saya pikir rsynctidak menangani menyalin file jarang secara langsung. cpsecara default menangani itu dengan sangat baik.

wcang
sumber
6
Itu dengan -Sbendera.
terdon
2
@terdon, Oh well, silakan merujuk ke artikel ini: barricane.com/rsync-vm-sparse-inplace-kvm-vmware .
wcang
Ah, terima kasih, Anda harus menambahkan itu ke jawaban Anda. Saya hanya cepat mencari halaman manual sparse.
terdon
4

Karena cpflag ini kurang dalam rsync:

-i, --interactive
       prompt before overwrite (overrides a previous -n option)
Dalker
sumber
Tidak, meskipun ada -n(run kering) di rsync, yang bisa menjadi pengganti fitur itu.
Niloct