📂 File Transfer di Linux (scp, rsync, sftp)

Transfer file antar server di Linux sering dilakukan untuk kebutuhan backup, deployment, maupun sinkronisasi data.
Tiga tools populer untuk file transfer adalah:

  • scp (secure copy)
  • rsync
  • sftp (SSH File Transfer Protocol)

Semua tools ini menggunakan protokol SSH, sehingga aman karena terenkripsi.


🔹 scp (Secure Copy)

Penjelasan

scp digunakan untuk menyalin file antar host melalui SSH.

Contoh Operasional

# Copy file ke remote server
scp file.txt user@server:/home/user/

# Copy file dari remote ke lokal
scp user@server:/home/user/file.txt /local/path/

# Copy folder secara rekursif
scp -r myfolder user@server:/home/user/

Kelebihan

  • Simpel dan cepat untuk copy sekali jalan.

Kekurangan

  • Tidak efisien untuk file besar/berulang karena tidak mendukung delta transfer.

🔹 rsync

Penjelasan

rsync digunakan untuk sinkronisasi file/direktori, lebih efisien karena hanya menyalin perubahan (delta).

Contoh Operasional

# Sinkronisasi folder ke remote
rsync -avz myfolder/ user@server:/home/user/myfolder/

# Sinkronisasi dari remote ke lokal
rsync -avz user@server:/home/user/myfolder/ /local/myfolder/

# Hanya update perubahan baru
rsync -avzu myfolder/ user@server:/home/user/myfolder/

# Gunakan port custom
rsync -avz -e "ssh -p 2222" myfolder/ user@server:/home/user/

Kelebihan

  • Efisien untuk backup dan sinkronisasi.
  • Mendukung resume transfer.

Kekurangan

  • Lebih kompleks dibanding scp.

🔹 sftp (SSH File Transfer Protocol)

Penjelasan

sftp adalah mode interaktif untuk transfer file via SSH, mirip FTP tapi lebih aman.

Contoh Operasional

# Login ke remote server
sftp user@server

# Perintah di dalam sftp:
ls              # lihat isi folder remote
cd /path        # pindah folder remote
lcd /path       # pindah folder lokal
get file.txt    # download file
put file.txt    # upload file
mget *.log      # download banyak file
mput *.log      # upload banyak file
bye             # keluar

Kelebihan

  • Interaktif, mirip FTP.
  • Mendukung banyak file sekaligus.

Kekurangan

  • Tidak seefisien rsync untuk sinkronisasi.

✅ Best Practices

  1. Gunakan key-based authentication
    Hindari password, lebih aman pakai SSH key.

  2. Gunakan rsync untuk backup rutin
    Karena mendukung delta transfer & resume.

  3. Gunakan scp untuk transfer cepat satu kali
    Misalnya copy konfigurasi atau file kecil.

  4. Gunakan sftp untuk mode interaktif
    Cocok untuk manajemen file manual di remote.

  5. Kompresi sebelum transfer

    tar czf data.tar.gz myfolder/
    scp data.tar.gz user@server:/backup/
  6. Batasi bandwidth rsync

    rsync --bwlimit=5000 -avz myfolder/ user@server:/home/user/
  7. Gunakan port non-standar jika SSH dipindahkan

    scp -P 2222 file.txt user@server:/home/user/

⚙️ Kesimpulan

  • scp: untuk copy file cepat sekali jalan.
  • rsync: untuk backup/sinkronisasi efisien.
  • sftp: untuk transfer interaktif mirip FTP.

Pilih tool sesuai kebutuhan, dan pastikan keamanan dengan SSH key, enkripsi, serta pembatasan akses yang tepat.