Jumat, 23 Oktober 2020

RSYNC-copy dua server biar sama

 

Cara Mudah Sinkronisasi File di Linux dengan Command Rsync

  3 min read

Featured image Rsync

Meng-copy file satu per satu dari satu disk penyimpanan ke yang lain tentunya melelahkan. Selain memakan waktu, Anda pasti kewalahan jika file-file yang ingin disalin tidak terkumpul dalam satu folder.

Kalau Anda memakai sistem operasi berbasis Linux, untungnya ada fitur Rsync (Remote Sync). Fitur ini memudahkan Anda untuk menyinkronkan file dan folder suatu perangkat ke satu atau lebih perangkat lain. Ikuti panduan di artikel ini untuk tahu cara penggunaannya.

Apa Itu Rsync?

Seperti yang telah disebutkan di atas, Rsync adalah fitur pada sistem operasi berbasis Linux (seperti Ubuntu, Fedora, dan Debian) yang berfungsi untuk menyinkronkan file serta folder.

Rsync memungkinkan Anda untuk menyalin file dari satu komputer lokal ke remote server dan sebaliknya melalui koneksi SSH (Secure Shell).

Selain itu, Anda juga dapat memanfaatkannya untuk meng-copy file ke flashdisk atau external hard drive.

Namun, Anda perlu mengingat bahwa Rsync memakan bandwidth. Karena, setiap file yang disalin akan melalui proses kompresi dan dekompresi.

Syntax dasar Rsync seperti berikut:

rsync [optional modifiers]  [destination]

Syntax tersebut memiliki tiga komponen yang dapat Anda tentukan:

  • Optional modifiers — aksi yang ingin Anda lakukan terhadap file atau folder. Ini dilakukan menggunakan beberapa opsi yang tersedia di Rsync. Kami akan membahasnya satu per satu nanti.
  • Source — direktori sumber file atau folder.
  • Destination — direktori yang ingin dituju.

Sebelum menggunakannya, sebaiknya Anda memeriksa versi Rsync yang ada pada perangkat Anda terlebih dahulu. Ini dilakukan untuk memastikan bahwa Anda menggunakan versi terbarunya. Caranya akan dijelaskan di bagian berikut ini.

Cara Memeriksa Versi Rsync

Untuk memeriksa versi Rsync pada perangkat Anda, silakan log in ke server VPS yang Anda gunakan. Kemudian, gunakan command berikut:

rsync -version

Contoh output yang muncul:

rsync  version 3.1.2  protocol version 31

Output tersebut memberitahukan bahwa versi Rsync yang digunakan adalah 3.1.2.

Cara Install Rsync

Rsync umumnya telah terpasang sebagai fitur bawaan. Akan tetapi, bisa saja perangkat Anda belum memilikinya.

Jika memang tidak ada di komputer Anda, install Rsync dengan menjalankan perintah di bawah ini:

apt-get install rsync

Perintah tersebut diperuntukkan perangkat Debian dan Ubuntu. Apabila komputer Anda menggunakan Fedora atau CentOS gunakan perintah berikut:

yum install rsync

Setelah instalasi, Anda juga dapat menjalankan perintah cek versi sebelumnya. Hal ini dilakukan untuk memastikan bahwa Rsync benar-benar sudah terpasang.

Cara Menggunakan Rsync

Operasi Rsync terdiri dari beberapa perintah. Masing-masing dilakukan dengan sebuah opsi, seperti:

  • -r — mensinkronkan file dan folder.
  • -a — mensinkronkan file dan folder dan menyimpan informasi-informasinya.
  • -delete — menghapus file dan folder di perangkat tujuan yang sudah tidak ada di perangkat asal.
  • -z — mengkompres file dan folder.

Agar tidak rumit, kami akan mencontohkannya dengan dua perangkat yang dinamai Original dan Duplicate.

Perangkat Original memiliki beberapa file di dalamnya, sedangkan Duplicate masih kosong.

Menyalin File

Jika ingin menyalin semua file ke perangkat Duplicate, Anda tinggal menjalankan perintah berikut:

rsync original/* duplicate/

Tanda asterisk (*) pada perintah itu digunakan untuk mengisyaratkan bahwa semua file dalam direktori di perangkat Original akan di-copy.

Namun, perlu diingat bahwa perintah di atas tidak akan menyinkronkan subdirektori atau folder yang ada dalam perangkat Original ke perangkat Duplicate.

Di samping itu, perintah tadi hanya berlaku sekali. Jika ada file baru di perangkat Original, Anda perlu menjalankannya lagi dan hanya file tersebut yang akan disalin di perangkat Duplicate.

Oleh karena itu, Rsync command ini sangat bermanfaat jika perangkat atau server Linux Anda memiliki bandwidth yang sangat terbatas.

Menyalin Subdirektori (Folder)

Berhubung perintah tadi hanya akan meng-copy semua file di direktori perangkat Original, Anda tidak dapat sekaligus menyinkronkan subdirektori atau folder. Untuk mengatasi kelemahan tersebut, Anda dapat menggunakan perintah ini:

rsync -r original/ duplicate/

Bedanya, di perintah tersebut tidak ada tanda asterisk, tetapi ada opsi -r. Opsi tersebut memerintahkan perangkat untuk meng-copy subdirektori atau folder dari satu perangkat ke yang lain.

File dan Folder dari Perangkat Tujuan

Kedua perintah di atas berguna untuk meng-copy file atau folder dari perangkat asal ke perangkat tujuan.

Namun, Anda juga dapat melakukan sebaliknya dengan perintah berikut:

rsync -r original duplicate/

Intinya, Anda tinggal menghilangkan tanda / setelah nama perangkat asalnya.

Baca Juga : Pengertian & Cara Menggunakan Curl Command

Menggunakan Rsync dalam Mode Archive

Perlu diketahui bahwa file dan folder yang disinkronisasi dengan ketiga perintah di atas tidak disertai dengan permission dan informasi lainnya, seperti waktu dan tanggal pembuatan file.

Jika Anda ingin agar file dan folder yang disalin memiliki informasi yang sama dengan aslinya, Anda perlu menggunakan mode archive. Mode ini diwakili oleh opsi -a. Contohnya seperti demikian:

rsync -av original/ duplicate/

Pada perintah di atas, opsi -a juga dapat disertai opsi -v atau verbose yang berfungsi untuk menunjukkan proses sinkronisasi. Tentunya ini sangat membantu jika file yang disalin berjumlah banyak dan Anda ingin mengetahui kemajuannya.

Menghapus File

Ketika Anda ingin mensinkronkan dua perangkat atau lebih, mungkin ada file atau folder dalam perangkat asal yang sudah dihapus karena tidak dibutuhkan lagi. Namun, salinan file atau folder tersebut masih terdapat di perangkat lainnya.

Tentunya Anda ingin bisa menghapusnya, bukan? Untungnya, Rsync memiliki opsi -delete yang memudahkan Anda untuk melakukannya.

Penggunaan opsi tersebut seperti pada perintah di bawah ini:

rsync -av --delete  original/ duplicate/

Dengan tambahan opsi -delete, perintah itu memungkinkan Anda untuk mensinkronkan file sembari menghapus file atau folder yang sudah tidak ada di perangkat asal.

Mengkompres File

Rsync juga memiliki kemampuan untuk mengkompres file atau folder dalam proses sinkronisasi. Fitur ini diwakili dengan opsi -z. Dengan menggunakannya, proses sinkronisasi dapat dipercepat dengan ukuran file yang lebih kecil.

Contoh perintahnya seperti berikut:

rsync -za original/ duplicate/

Pada perintah tersebut, file atau folder yang disalin ke perangkat tujuan akan di-archive dan dikompres.

Sinkronisasi File dan Folder Anda dengan Rsync

Fitur Rsync yang tersedia di sistem berbasis Linux memungkinkan Anda untuk menyalin file dari satu perangkat ke perangkat lain tanpa perlu menggunakan kabel atau perangkat lunak lain.

Di samping itu, fungsi Rsync juga dapat diperluas dengan opsi-opsi yang didukungnya, seperti:

  • Mensinkronkan file dan folder.
  • Mensinkronkan file dan folder dan menyimpan informasi-informasinya.
  • Menghapus file dan folder di perangkat tujuan yang sudah tidak ada di perangkat asal.
  • Mengkompres file dan folder.

Jika ada pertanyaan seputar panduan ini, jangan sungkan untuk meninggalkan komentar Anda pada kolom yang tersedia di bawah.


-------------------------------------------------------------------------------------

rsync dua server dari server 172.16.7.156 ke 172.16.10.129


root@7.156:/data/appl/web# ls
dimers  harsync
root@ubuntu:/data/appl/web# rsync -av harsync root@172.16.10.129:/data/appl/web

root@10.129:/data/appl/web# ls -l
total 12
drwxrwxr-x 5 deployer deployer 4096 Oct 23 14:55 autotrans
drwxr-xr-x 2 root     root     4096 Oct 23 16:30 harsync
drwxr-xr-x 2 deployer deployer 4096 Oct 23 14:26 tmp
root@ubuntu:/data/appl/web# 

-----------------------------------------------------------

dbsa@dbsa-X406UA:~$ ssh root@172.16.7.156
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

 System information as of Fri Oct 23 16:47:22 WIB 2020

 System load:  0.0                Processes:              200
 Usage of /:   92.1% of 19.56GB   Users logged in:        1
 Memory usage: 10%                IP address for ens160:  172.16.7.156
 Swap usage:   0%                 IP address for docker0: 172.17.9.1

 => / is using 92.1% of 19.56GB


* Canonical Livepatch is available for installation.
  - Reduce system reboots and improve kernel security. Activate at:
    https://ubuntu.com/livepatch

112 packages can be updated.
15 updates are security updates.

Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings


Last login: Fri Oct 23 16:34:24 2020 from 172.17.10.237
root@ubuntu:~# cd /data/appl/web/
root@ubuntu:/data/appl/web# ls
dimers
root@ubuntu:/data/appl/web# mkdir harsync
root@ubuntu:/data/appl/web# ls
dimers  harsync
root@ubuntu:/data/appl/web# rsync -av harsync root@172.16.10.129:/data/appl/web
root@172.16.10.129's password:  
sending incremental file list
harsync/

sent 57 bytes  received 20 bytes  10.27 bytes/sec
total size is 0  speedup is 0.00
root@ubuntu:/data/appl/web#

dbsa@dbsa-X406UA:~$ ssh root@172.16.10.129
Welcome to Ubuntu 18.04 LTS (GNU/Linux 4.15.0-20-generic x86_64)

* Documentation:  https://help.ubuntu.com
* Management:     https://landscape.canonical.com
* Support:        https://ubuntu.com/advantage

 System information as of Fri Oct 23 16:47:04 WIB 2020

 System load:                    0.0
 Usage of /:                     57.8% of 49.09GB
 Memory usage:                   3%
 Swap usage:                     0%
 Processes:                      204
 Users logged in:                0
 IP address for ens160:          172.16.10.129
 IP address for docker0:         172.17.9.1
 IP address for br-d1202e7c8ec6: 172.18.0.1


* Canonical Livepatch is available for installation.
  - Reduce system reboots and improve kernel security. Activate at:
    https://ubuntu.com/livepatch

176 packages can be updated.
37 updates are security updates.

Failed to connect to https://changelogs.ubuntu.com/meta-release-lts. Check your Internet connection or proxy settings


Last login: Fri Oct 23 15:02:22 2020 from 172.17.10.182
root@ubuntu:~# cd /data/appl/web/
root@ubuntu:/data/appl/web# ls
autotrans  creditcard  dimers  tmp
root@ubuntu:/data/appl/web# ls
autotrans  creditcard  dimers  harsync  tmp
root@ubuntu:/data/appl/web#




Tidak ada komentar:

Posting Komentar