Cara Memindahkan File ke Server dengan SCP dan rsync
Bedanya SCP dan rsync, contoh perintah upload dan download file ke server lewat SSH, aturan garis miring rsync, dan kapan memilih masing-masing.
Jawaban singkat
SCP cocok untuk menyalin beberapa file sekali jalan dengan perintah singkat. rsync lebih tepat untuk folder besar, sinkron berulang, dan koneksi yang mudah putus karena hanya mengirim bagian yang berubah dan bisa melanjutkan transfer.
Daftar isi
SCP dan rsync sama-sama memindahkan file antara komputermu dan server lewat SSH, jadi keduanya terenkripsi dan memakai login yang sama dengan terminal. Bedanya ada di cara kerja: SCP selalu menyalin ulang seluruh file, sedangkan rsync membandingkan dulu isi di kedua sisi lalu hanya mengirim yang berbeda.
Salah pilih jarang merusak data, tapi bisa membuang waktu. Menyalin folder upload 20 GB dengan SCP setiap kali ada perubahan berarti mengirim ulang seluruh isinya. Sebaliknya, memakai rsync dengan opsi --delete yang keliru bisa menghapus file di tujuan. Memahami keduanya membuat migrasi dan backup jauh lebih tenang.
Apa yang perlu disiapkan?
- Akses SSH ke server (user, alamat IP atau hostname, dan port). Bila belum pernah login, ikuti cara login ke VPS pertama kali.
- SSH key sangat disarankan agar tidak mengetik password berulang kali. Alasannya dibahas di SSH key vs password.
- Untuk rsync: paket
rsyncharus terpasang di kedua sisi. Pasang dengansudo apt install rsyncatausudo dnf install rsync.
Di Windows 10 dan 11, perintah scp sudah tersedia lewat OpenSSH bawaan. rsync tidak tersedia bawaan di Windows, jadi biasanya dipakai lewat WSL.
Cara memakai SCP
Perintah dasar SCP
Format umumnya scp [opsi] sumber tujuan. Sisi server ditulis user@host:path.
# Upload satu file ke server
scp laporan.pdf deploy@203.0.113.10:/home/deploy/
# Download file dari server ke folder saat ini
scp deploy@203.0.113.10:/var/backups/db.sql.gz .
# Upload folder secara rekursif
scp -r ./gambar deploy@203.0.113.10:/var/www/situs/
# Server dengan port SSH selain 22 (huruf P besar)
scp -P 2222 laporan.pdf deploy@203.0.113.10:/home/deploy/
Opsi lain yang berguna: -C untuk kompresi selama transfer, -i ~/.ssh/kunci untuk memilih SSH key tertentu, dan -l untuk membatasi kecepatan dalam Kbit/detik.
Perubahan SCP di OpenSSH modern
Sejak OpenSSH 9.0, perintah scp secara bawaan memakai protokol SFTP di belakang layar, bukan protokol SCP lama. Bagi pengguna, perintahnya tetap sama. Bila tersambung ke server yang sangat lama dan tidak mendukung SFTP, tambahkan opsi -O untuk memaksa protokol lama.
Cara memakai rsync
Perintah dasar rsync
# Upload folder ke server, tampilkan progres
rsync -avz --progress ./situs/ deploy@203.0.113.10:/var/www/situs/
# Download folder dari server
rsync -avz deploy@203.0.113.10:/var/www/situs/ ./cadangan-situs/
# Port SSH selain 22
rsync -avz -e "ssh -p 2222" ./situs/ deploy@203.0.113.10:/var/www/situs/
Arti opsinya:
-a(archive) menyalin rekursif sambil mempertahankan permission, waktu modifikasi, symlink, dan kepemilikan (kepemilikan hanya bisa dipertahankan bila dijalankan sebagai root di tujuan).-vmenampilkan nama file yang dikirim.-zmengompres data selama transfer. Berguna untuk file teks, tidak banyak membantu untuk file yang sudah terkompresi seperti.zipatau.jpg.-Pgabungan--partial --progress, menyimpan file yang terkirim setengah agar bisa dilanjutkan.
Aturan garis miring di akhir sumber
Ini sumber kebingungan paling umum:
rsync -a situs/ tujuan/menyalin isi folder situs ke dalam tujuan.rsync -a situs tujuan/menyalin folder situs, sehingga hasilnyatujuan/situs/.
Garis miring di akhir path tujuan tidak mengubah hasil. Yang menentukan adalah garis miring di sumber.
Opsi yang perlu hati-hati
# Uji dulu tanpa benar-benar mengirim
rsync -avzn --delete ./situs/ deploy@203.0.113.10:/var/www/situs/
# Kecualikan folder tertentu
rsync -avz --exclude 'node_modules' --exclude '.git' ./app/ deploy@203.0.113.10:/srv/app/
# Batasi kecepatan, satuan KiB per detik
rsync -avz --bwlimit=5000 ./arsip/ deploy@203.0.113.10:/srv/arsip/
SCP atau rsync, apa bedanya?
| Aspek | SCP | rsync |
|---|---|---|
| Cara kirim | Selalu menyalin seluruh file | Hanya mengirim file atau bagian yang berubah |
| Melanjutkan transfer putus | Tidak, mulai dari awal | Bisa, dengan --partial atau -P |
| Perlu dipasang di server | Cukup server SSH | Paket rsync di kedua sisi |
| Sinkron dan hapus file lama | Tidak ada | Ada, lewat --delete |
| Kecualikan file atau folder | Tidak ada | Ada, lewat --exclude |
| Uji coba tanpa mengirim | Tidak ada | Ada, lewat -n |
| Tersedia di Windows bawaan | Ya (OpenSSH) | Tidak, perlu WSL atau alat lain |
| Paling cocok untuk | File tunggal, salin cepat sekali jalan | Folder besar, migrasi, backup berkala |
Kapan memilih SCP, kapan rsync?
Pilih SCP saat kamu hanya perlu mengirim satu atau beberapa file, misalnya file konfigurasi, dump database, atau installer. Perintahnya pendek, tersedia hampir di mana saja, dan tidak perlu memikirkan aturan garis miring.
Pilih rsync saat isinya banyak atau akan diulang. Migrasi website dengan ribuan file gambar, sinkron folder upload ke server cadangan, atau backup harian ke server lain adalah pekerjaan rsync. Pada pengiriman kedua dan seterusnya, rsync hanya mengirim selisihnya, sehingga jauh lebih cepat. Untuk koneksi yang sering putus, kemampuan melanjutkan transfer juga sangat menolong.
Untuk migrasi website utuh, rsync biasanya dipakai dua kali: sekali untuk salinan awal saat situs masih berjalan, lalu sekali lagi sesaat sebelum pindah DNS untuk mengejar file yang berubah. Langkah lengkapnya ada di panduan migrasi website ke VPS.
Untuk transfer yang lama, jalankan perintah di dalam sesi tmux atau screen agar tidak terhenti saat koneksi terminal putus.
Pertanyaan yang sering diajukan
Kenapa rsync bilang command not found di sisi server?
rsync harus terpasang di kedua sisi. Pasang paket rsync di server, lalu ulangi perintahnya.
Apakah rsync bisa dijadwalkan otomatis?
Bisa. Masukkan perintah rsync ke cron dengan SSH key tanpa interaksi, dan simpan log keluarannya agar mudah dicek bila ada kegagalan.
Mana yang lebih cepat untuk satu file besar?
Untuk pengiriman pertama, kecepatannya mirip karena keduanya dibatasi koneksi. rsync unggul bila transfer putus di tengah jalan atau file yang sama dikirim ulang setelah sedikit berubah.
Apakah ada cara grafis selain terminal?
Ada. Aplikasi klien SFTP seperti FileZilla atau WinSCP memakai login SSH yang sama dan cocok untuk pemindahan file sesekali.


