Tutorial ini menjelaskan cara menyinkronkan direktori lokal dan jarak jauh di Linux menggunakan Lsyncd (Daemon Sinkronisasi Langsung). Menggunakan Lsyncd, kita dapat mencerminkan direktori lokal ke lokal atau direktori lokal ke remote. Ini sangat berguna ketika Anda ingin menyinkronkan data antar direktori yang sering diperbarui dengan konten baru. Lsyncd dirancang untuk menyinkronkan pohon direktori lokal dengan profil rendah dari perubahan yang diharapkan ke cermin jarak jauh. Sangat berguna untuk menyinkronkan data dari area yang aman ke area yang tidak terlalu aman.
Instal Lsyncd di Linux
Di Debian dan turunannya seperti Ubuntu, Linux Mint menjalankan perintah berikut untuk menginstal Lsyncd:
$ sudo apt-get install lsyncd
Di RHEL, CentOS, Anda harus mengaktifkan repositori EPEL terlebih dahulu.
$ sudo yum install epel-release
Kemudian, instal Lsyncd menggunakan perintah:
$ sudo yum install lsyncd
Konfigurasi Lsyncd pada Debian dan Ubuntu dan turunannya
Lsyncd tidak menyediakan file konfigurasi default dalam sistem berbasis DEB. Kita perlu membuatnya secara manual. Namun, Lsyncd menyertakan beberapa contoh file konfigurasi yang berguna untuk mendapatkan ide dasar tentang apa/bagaimana sinkronisasi dilakukan. Contoh file konfigurasi akan ditemukan di "/usr/share/doc/lsyncd-*/examples" direktori.
$ ls /usr/share/doc/lsyncd/examples/
Contoh keluaran:
lbash.lua lgforce.lua lpostcmd.lua lrsyncssh.lua lecho.lua limagemagic.lua lrsync.lua
Seperti yang Anda lihat pada output di atas, setiap file konfigurasi diakhiri dengan .lua perpanjangan. Itu karena file konfigurasi lsync ditulis menggunakan bahasa pemrograman Lua . Mari kita lihat contoh file konfigurasi.
$ cat /usr/share/doc/lsyncd/examples/lrsync.lua
Seperti inilah tampilan file konfigurasi Lrsync:
---- -- User configuration file for lsyncd. -- -- Simple example for default rsync. -- settings = { statusFile = "/tmp/lsyncd.stat", statusInterval = 1, } sync{ default.rsync, source="src", target="trg", }
Konfigurasi Lsyncd pada RHEL dan CentOS
Pada sistem RHEL dan CentOS, file konfigurasi Lsyncd akan dibuat secara otomatis. Anda dapat melihat isi file ini menggunakan perintah:
$ cat /etc/lsyncd.conf
Dan, contoh file konfigurasi tersedia di lokasi berikut.
$ ls /usr/share/doc/lsyncd-2.1.5/examples/
Sinkronisasi Direktori Lokal Dan Jarak Jauh Di Linux Menggunakan Lsyncd
Seperti yang sudah dinyatakan, Lyncd dapat menyinkronkan konten dua direktori lokal dan direktori lokal ke direktori jarak jauh. Pertama, kita akan melihat cara menyinkronkan direktori lokal.
1. Sinkronisasi direktori lokal di Debian, Ubuntu
Sekarang, kita akan menyinkronkan dua direktori lokal.
Mari kita buat dua direktori dengan beberapa contoh konten.
$ sudo mkdir source_dir
$ sudo mkdir dest_dir
Buat beberapa file acak di direktori source_dir:
$ sudo touch source_dir/file{1..10}
Secara opsional, Anda dapat membuat beberapa file log untuk Lysyncd. Ini hanya opsional. Jika Anda tidak ingin file log, lewati langkah ini.
$ sudo mkdir /var/log/lsyncd
$ sudo touch /var/log/lsyncd/lsyncd.{log,status}
Selanjutnya, buat file konfigurasi untuk Lsyncd:
$ sudo mkdir /etc/lsyncd
$ sudo nano /etc/lsyncd/lsyncd.conf.lua
Edit/modifikasi baris berikut:
settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsync, source = "/home/sk/source_dir", target = "/home/sk/dest_dir", }
Ganti jalur direktori sumber dan target dengan nilai Anda sendiri. Simpan dan tutup file.
Aktifkan dan mulai atau mulai ulang layanan Lsyncd menggunakan perintah:
$ sudo systemctl enable lsyncd
$ sudo systemctl restart lsyncd
Sekarang, periksa isi direktori source_dir dan dest_dir.
$ ls source_dir/
Contoh keluaran:
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
Periksa konten dest_dir:
$ ls dest_dir/
Contoh keluaran:
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
Lihat? Kami telah membuat file di direktori source_dir saja dan isi direktori ini telah secara otomatis disinkronkan ke direktori dest_dir.
Anda juga dapat meninjau file log untuk memverifikasi apakah replikasi selesai atau tidak.
$ tail -10 /var/log/lsyncd/lsyncd.log
Contoh keluaran:
Sat Apr 15 17:07:34 2017 Normal: recursive startup rsync: /home/sk/source_dir/ -> /home/sk/dest_dir/ Sat Apr 15 17:07:34 2017 Normal: Startup of "/home/sk/source_dir/" finished.
Periksa file status Lsyncd:
$ more /var/log/lsyncd/lsyncd.status
Contoh keluaran:
Lsyncd status report at Sat Apr 15 17:07:44 2017 Sync1 source=/home/sk/source_dir/ There are 0 delays Excluding: nothing. Inotify watching 1 directories 1: /home/sk/source_dir/Unduh - eBuku gratis:"Administrasi Lanjutan GNU/Linux"
2. Sinkronisasi direktori lokal di RHEL, CentOS
Edit file konfigurasi Lsyncd:
$ sudo nano /etc/lsyncd.conf
Edit dan ubah baris berikut:
---- -- User configuration file for lsyncd. -- -- Simple example for default rsync, but executing moves through on the target. -- -- For more examples, see /usr/share/doc/lsyncd*/examples/ -- settings { logfile = "/var/log/lsyncd.log", statusFile = "/var/log/lsyncd.status" } sync { default.rsync, source = "/root/source_dir", target = "/root/dest_dir",
Ganti jalur direktori sumber dan target dengan nilai Anda sendiri. Simpan dan tutup file.
Aktifkan dan mulai layanan Lsyncd menggunakan perintah:
$ sudo systemctl enable lsyncd
$ sudo systemctl start lsyncd
Sekarang, periksa isi direktori source_dir dan dest_dir.
$ ls source_dir/
Contoh keluaran:
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
Periksa konten dest_dir:
$ ls dest_dir/
Contoh keluaran:
file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
Selamat! Isi source_dir telah berhasil disinkronkan ke direktori dest_dir.
Anda juga dapat meninjau file log untuk memverifikasi apakah replikasi selesai atau tidak.
$ tail -10 /var/log/lsyncd.log
Periksa file status Lsyncd:
$ more /var/log/lsyncd.status
3. Sinkronisasi direktori jarak jauh di Debian, sistem Ubuntu
Kita perlu mengatur SSH tanpa kata sandi Gabung. Ini karena Lsyncd akan secara otomatis mereplikasi konten direktori lokal ke direktori jarak jauh tanpa campur tangan pengguna.
$ sudo su
# ssh-keygen -t rsa
Jangan masukkan frasa sandi apa pun. Cukup tekan ENTER untuk menerima nilai default.
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Created directory '/home/sk/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is: SHA256:dHc2aKk5F2wBq7CIc5sVHJwYNjoPdwgxDKb1KuBBkgs [email protected] The key's randomart image is: +---[RSA 2048]----+ |o*=.++.. ... | |E..*.+o. o + | |+o+ + = . o O + | |+ .B o = o * + . | |..+ + o S + . | | . o + o | | o | | | | | +----[SHA256]-----+
Sekarang, salin kunci publik SSH ke sistem jarak jauh Anda:
# ssh-copy-id [email protected]
Contoh keluaran:
/usr/bin/ssh-copy-id: INFO: Source of key(s) to be installed: "/root/.ssh/id_rsa.pub" The authenticity of host '192.168.43.150 (192.168.43.150)' can't be established. ECDSA key fingerprint is SHA256:U7I0O1OOzzbHFlhIG0HoGDr1usHzLBju6Jmr6bUB9Es. Are you sure you want to continue connecting (yes/no)? yes /usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed /usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys [email protected]'s password: Number of key(s) added: 1 Now try logging into the machine, with: "ssh '[email protected]'" and check to make sure that only the key(s) you wanted were added.
Di sini, 192.168.43.150 adalah alamat IP sistem jarak jauh.
Sekarang, Anda dapat melakukan SSH ke sistem jarak jauh Anda tanpa harus memasukkan kata sandi:
# ssh [email protected]
Buat direktori target di sistem jarak jauh dengan perintah:
# mkdir remotesync
Keluar dari sistem jarak jauh:
# exit
Selanjutnya, edit file konfigurasi Lsyncd di mesin sumber:
$ sudo nano /etc/lsyncd/lsyncd.conf.lua
Edit/modifikasi baris berikut:
settings { logfile = "/var/log/lsyncd/lsyncd.log", statusFile = "/var/log/lsyncd/lsyncd.status" } sync { default.rsync, source = "/home/sk/source_dir", host = "192.168.43.150", targetdir = "/root/remotesync", }
Di sini, 192.168.43.150 adalah alamat IP host jarak jauh saya. Dan, /root/remotesync/ adalah direktori tujuan di sistem jarak jauh saya. Ganti nilainya dengan milik Anda. Simpan dan tutup file.
Mulai ulang layanan Lsyncd untuk mereplikasi konten direktori sumber ke tujuan.
$ sudo systemctl restart lsyncd
Sekarang, SSH ke sistem jarak jauh Anda:
$ ssh [email protected]
Dan, periksa konten direktori target (yaitu /root/remotesync/ dalam kasus kami). Anda akan melihat semua file dari direktori sumber dari sistem lokal telah direplikasi ke direktori target di sistem tujuan.
[email protected] ~]# ls remotesync/ file1 file10 file2 file3 file4 file5 file6 file7 file8 file9
Prosedur ini sama untuk sistem RHEL dan CentOS. Siapkan login SSH tanpa kata sandi dan pastikan Anda telah memodifikasi jalur sumber dan target yang benar di file konfigurasi utama Lsyncd (/etc/lsyncd.conf) di sistem RHEL atau CentOS Anda, dan langkah-langkah lainnya sama.
Unduh - Panduan Gratis:"10 Cara Mudah Memulihkan Sistem Linux Anda"Anda tahu cara menyinkronkan direktori lokal dan jarak jauh di Linux menggunakan Lsyncd. Seperti yang Anda lihat, ini adalah metode yang sangat mudah dan langsung.
Semoga membantu.