Menggunakan Rsync Untuk Transfer File dan Direktori

Minggu, 11 Juni 2017

Bagaimana cara mensinkronkan file dan direktori pada satu lokasi atau server ke lokasi lain? Untuk GUI mungkin kita bisa menggunakan FileZilla. Namun ada yang bilang sebagai sysadmin jangan terlalu bergantung pada GUI, karena "seni" sebagai seorang system administrator adalah saat bermain dengan cli atau terminal. Oleh karena itu pada kesempatan kali ini saya akan membahas bagaimana cara mentransfer file menggunakan rsync.

Apa itu rsync?
Rsync adalah program komputer perangkat lunak bebas untuk Unix dan Linux seperti sistem yang menyinkronkan file dan direktori dari satu lokasi ke lokasi lain sambil meminimalkan transfer data menggunakan pengkodean delta bila sesuai. Fitur penting rsync yang tidak ditemukan dalam program / protokol lain adalah bahwa mirroring berlangsung hanya dengan satu transmisi di setiap arah.

Lalu apa sih keunggulan rsync dibanding scp? Rsync mampu mensinkronkan download dan upload file antar jaringan, dan bisa digunakan untuk mentransfer file yang berbeda atau telah diupdate saja (sinkronisasi).

Bagaimana cara menginstall rsync?
Di ubuntu, debian dan turunannya tinggal masukkan perintah :
sudo apt-get install rsync
Di RHEL atau CentOS masukkan perintah :
sudo yum install rsync
Banyak sekali perintah rsync yang dapat digunakan. Kalian bisa mengecek nya dengan perintah
man rsync
rsync --help
Disini saya cantumpak beberapa opsi perintah yang umum atau paling sering digunakan (untuk catatan pribadi saya).
  • --verbose, -v: increase verbosity
  • -e "ssh options" : specify the remote shell to use
  • --archive, -a: archive mode; equals -rlptgoD (no -H,-A,-X)
  • --recursive, -r: recurse into directories
  • --delete: delete extraneous files from dest dirs
  • --compress, -z: compress file data during the transfer
  • --progress: show progress during transfer
  • --human-readable, -h: output numbers in a human-readable format
Langsung ke contoh saja biar tidak bingung.

Mentransfer File dari Server ke Lokal
rsync --progress --verbose -e "ssh -p 22" root@zeus.linuxsec.org:/root/backup/database.sql ~/local-backup
Perintah diatas akan mendownload file database.sql pada direktori /root/backup/ di server dan disimpan pada direktori ~/backup di komputer kita.

Mentransfer File dari Lokal ke Server

rsync --progress --verbose -e "ssh -p 22" ~/local-backup/database.sql root@zeus.linuxsec.org:/root/
Perintah diatas akan mengupload file database.sql dari komputer kita dan diupload ke direktori root di server. Pada dasarnya perbedaan transfer file dari lokal ke server maupun sebaliknya hanya terletak di posisi lokasi file saat command dijalankan.

Mentransfer Direktori dari Server ke Lokal
rsync -avzh --stats --progress -e "ssh -p 22" root@zeus.linuxsec.org:/root/backups ~/local-backup
Mentransfer Direktori dari Lokal ke Server
rsync -avzh --stats --progress -e "ssh -p 22" ~/local-backup root@zeus.linuxsec.org:/root/backup
Mensinkronkan direktori lokal dengan direktori server
rsync -r -a -v -e "ssh -p 22 -l root" --delete /home/backup zeus.linuxsec.org:/root/backup
Perintah diatas akan mensinkronkan file yang ada di lokal dengan di server dan akan menghapus file yang ada di lokal bila file tersebut tidak ada di server.

Mensinkronkan direktori server dengan direktori lokal
rsync -r -a -v -e "ssh -p 22 -l root" --delete zeus.linuxsec.org:/root/backup /home/backup
Hampir sama dengan perintah sebelumnya hanya saja yang akan dihapus file yang berada di server bila file tersebut tidak ada di lokal.

Baiklah sekian tutorial kali ini. Semoga bermanfaat. Dan jangan lupa subscribe untuk mendapatkan artikel mengenai tutorial linux lebih cepat.

Jika ada yang kurang jelas silahkan komentar atau kirim ke email saya nanti saya bantu.

Artikel Terkait CentOS ,Debian ,Linux ,Server ,Ubuntu