scp dan rsync: menyalin file
Dua perintah untuk mentransfer file antara komputer Anda dan server: kapan scp cukup, apa kegunaan rsync, dan cara agar tidak menimpa direktori orang lain karena garis miring di akhir.
Diperbarui 23 Agustus 2026
Klien grafis memang praktis untuk pengeditan sekali pakai, tetapi deployment dan backup lebih mudah dilakukan dengan satu perintah.
scp: penyalinan sekali pakai
Sintaksnya sama seperti cp, hanya saja dengan alamat mesin:
scp dump.sql root@203.0.113.10:/root/
scp root@203.0.113.10:/var/log/nginx/error.log ./
scp -r ./site root@203.0.113.10:/var/www/
Perintah pertama mengirim file, perintah kedua menariknya kembali, perintah ketiga menyalin seluruh direktori (-r).
Jika SSH berjalan di port yang berbeda, tentukan dengan -P huruf kapital:
scp -P 2222 dump.sql root@203.0.113.10:/root/
Dengan file ~/.ssh/config, perintahnya jadi lebih singkat: scp dump.sql vds:/root/.
rsync: sinkronisasi
rsync hanya mentransfer perbedaannya, dapat melanjutkan transfer yang terputus, dan menampilkan progres. Untuk deployment berulang, ini jauh lebih cepat.
rsync -avz --progress ./site/ root@203.0.113.10:/var/www/example.com/
| Flag | Fungsinya |
|---|---|
-a | Mempertahankan permission, timestamp, link |
-v | Menampilkan daftar file |
-z | Mengompresi aliran data |
--progress | Menampilkan progres transfer |
--delete | Menghapus di mesin apa pun yang tidak Anda miliki |
--exclude | Melewati apa pun yang tidak diperlukan |
Contoh deployment yang bersih:
rsync -avz --delete \
--exclude '.git' --exclude 'node_modules' --exclude '.env' \
./site/ vds:/var/www/example.com/
Tarik salinannya dari mesin ke sisi Anda:
rsync -avz vds:/root/backup-2026-08-23.tar.gz ./backups/
Garis miring di akhir sumber berarti "isi direktorinya".
./site/menaruh file di dalam target,./sitemembuat subdirektorisitedi dalam target. Separuh dari semua deployment yang "hilang" disebabkan oleh hal ini.
Berhati-hatilah dengan --delete
Flag --delete membuat direktori di mesin menjadi salinan persis milik Anda: apa pun yang berlebih akan dihapus tanpa bertanya. Lakukan uji coba (dry run) terlebih dahulu:
rsync -avzn --delete ./site/ vds:/var/www/example.com/
Flag -n hanya menunjukkan apa yang akan terjadi. Setelah Anda yakin, hapus n-nya.
Kecepatan
Kecepatan disk dibatasi per tier: penulisan 60 MB/s per core (tidak kurang dari 60 dan tidak lebih dari 400), pembacaan dua kali lipatnya, dan burst tiga kali batas tersebut bertahan selama 30 detik. Bandwidth jaringan hingga 500 Mbit/s. Di VDS-1, mengunggah arsip besar akan menyentuh batas penulisan, dan itu wajar, bukan kegagalan. Untuk memeriksa apa yang terjadi:
df -h
iostat -x 2
Kesalahan umum
| Gejala | Penyebab |
|---|---|
Permission denied | Anda menulis ke direktori yang bukan milik pengguna Anda — masuk sebagai root atau ubah owner-nya |
No such file or directory | Direktori tidak ada di mesin dan scp tidak akan membuatnya: jalankan mkdir -p terlebih dahulu |
| File mendarat satu level lebih tinggi | Garis miring di akhir path yang hilang atau berlebih |
rsync: command not found | Pasang paketnya di kedua sisi: apt install -y rsync |
| Situs mengembalikan 403 setelah deployment | Owner belum diatur: chown -R www-data:www-data /var/www/example.com |
Jika Anda lebih suka klien grafis, lihat mentransfer file melalui SFTP.