Jawaban:
Satu kata: rsync
.
Perhatikan bahwa jika Anda berada di tautan lambat, atau server berada di bawah beban berat, alat yang digunakan untuk menyalin tidak akan menjadi hambatan, dan bagaimanapun cara menyalin akan lambat.
Ini akan memberi Anda penggunaan dasar untuk menyalin antara komputer lokal Anda dan server jarak jauh: http://oreilly.com/pub/h/38
Untuk menyalin dari komputer lokal ke server jarak jauh (Anda perlu mengganti jalur, nama pengguna dan alamat host, tentu saja):
rsync -avz -e ssh /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
-a
arsip-v
bertele-tele-z
kompres-e ssh
"gunakan terowongan SSH"Untuk menyalin ke arah lain, alihkan jalurnya (pertama adalah dari , kedua adalah ke ):
rsync -avz -e ssh remoteuser@remotehost.somewhere.example.com:/path/on/server /path/on/local/computer
Tetapi rsync berguna bahkan untuk menyalin sesuatu di server yang sama:
rsync -av /path-to/copy/from /path_to/copy/to
-z
untuk menyalin LAN atau menyalin dalam satu mesin; uji dengan dan tanpa -z
untuk menyalin di Internet (satu atau yang lain mungkin lebih cepat, tergantung pada banyak hal).
-e ssh
sekarang default untuk host jarak jauh, jadi tidak perlu untuk melewatkan opsi secara eksplisit.
Kata lain: scp
scp /path/on/local/computer remoteuser@remotehost.somewhere.example.com:/path/on/server
Untuk transaksi sekali pakai, scp berguna. Jika banyak file, maka rsync adalah ide yang bagus. Jika koneksi terputus, rsync dapat mengambil dari tempatnya.
Saya tahu bahwa rsync memiliki kompresi ( -z
), dan baru saja belajar bahwa scp juga ( -C
).
Dalam pengaturan Anda, rsync mungkin sudah cukup ... tetapi sebagai contoh, jika ada banyak file kecil, mungkin lebih cepat untuk menar file terlebih dahulu daripada mentransfer kemudian melalui rsync. Ini karena mentransfer pemilik, cap waktu, izin terkadang lebih berat daripada file itu sendiri jika file tersebut kecil. Tar akan menggabungkan semua info itu dalam satu file dan rsync akan menyalin blok yang lebih besar.
Atau bahkan lebih baik, jika tidak diperlukan keamanan, gunakan tar dan nc:
Di tempat tujuan, siapkan daemon penerima, buka kompres dan untar:
nc -l -p 12345 | pigz -d | tar xvf -
Pada sumbernya, tar semuanya, kompres paralel dan kirimkan ke tujuan:
tar cvf - ./ | pigz | nc host 12345
-z
opsi untuk penyalinan lokal karena ini menambah overhead yang tidak perlu. IMHO, Anda hanya boleh menggunakan-z
ketika menggunakan rsync di tautan jaringan yang lambat. Jika menyalin sejumlah besar data lebih dari 100Base-T, Anda mungkin baik-baik saja tanpa-z
. Dengan koneksi jaringan yang cepat, menggunakan kompresi dapat mematok CPU Anda dan membuat proses lainnya kelaparan.