Serentak: mengatur dan mengotomatisasi sinkronisasi dua arah direktori pada dua server


Getty Images / iStockphoto

Masalah menyinkronkan direktori pada dua server dengan keluarga Linux sistem operasi on board dapat diselesaikan lebih mudah jika Anda menggunakan alat khusus. Mari kita lihat bagaimana hal ini dapat dilakukan dengan Unison .

Mungkin Anda memiliki beberapa server, dan Anda dihadapkan dengan tugas menyinkronkan direktori tertentu di server ini. Misalnya, Anda perlu menyinkronkan direktori / data pada masing-masing server ini sehingga beberapa aplikasi memiliki akses ke informasi yang relevan. Atau mungkin Anda hanya perlu mencadangkan data dari satu server ke server lainnya secara tersinkronisasi.

Serentak mirip dengan utilitas sinkronisasi rsync , tetapi tidak seperti itu, ia mendukung sinkronisasi dua arah. Artinya, ini memungkinkan Anda untuk menyinkronkan dua salinan file, memperbarui setiap salinan tergantung pada perubahan yang dilakukan.

Saat menggunakan Unison di server, diinginkan untuk menginstal paket seperti openssh-server dan ssh karena untuk alasan keamanan, sinkronisasi paling baik dilakukan menggunakan protokol SSH. Namun, jika Anda yakin dengan keamanan jaringan Anda (misalnya, server dapat menggunakan otentikasi SSH tanpa kata sandi), Anda tidak dapat repot-repot.

Apa lagi yang dibutuhkan untuk menggunakan Unison


Saya akan menunjukkan seluruh proses menggunakan dua server Ubuntu sebagai contoh (keduanya 18,04). Anda dapat menginstal dan menggunakan Unison dengan distribusi lain, tetapi kemudian Anda harus mengubah perintah instalasi, jika tidak Unison dapat diinstal dari repositori standar (tentu saja, pengguna Anda harus memiliki hak sudo).

Saya akan menggunakan server ini:

  • server1 - 192.168.1.6
  • server2 - 192.168.1.19

Cara menginstal Unison


Hal pertama yang harus diperhatikan adalah menginstal Unison. Ini harus dilakukan di kedua server. Buka kedua server dan masukkan perintah:

sudo apt-get install unison unison-all -y

Tunggu instalasi Unison untuk menyelesaikan dan melanjutkan.

Cara membuat dan menyalin kunci SSH


Pertama, kami membuat kunci SSH hanya untuk server1 . Untuk melakukan ini, gunakan perintah:

ssh-keygen -t rsa

Ketika Anda diminta memasukkan kata sandi, cukup tekan tombol ENTER.
Ketika kunci dibuat, salin ke server2 menggunakan perintah:

ssh-copy-id 192.168.1.19

Setelah kunci disalin, Anda dapat melanjutkan langsung ke bisnis.

Cara menggunakan Unison


Mari kita buat satu direktori pengujian untuk setiap server untuk tujuan pengujian. Perintah untuk server1 :

sudo mkdir -p /data1

Untuk server2 :

sudo mkdir -p /data2

Selanjutnya, pada kedua server, Anda harus mengubah nama pemilik direktori yang dibuat, jika tidak, Unison tidak akan dapat menulis apa pun di sana. Sebagai pemilik, tentukan pengguna yang akan menjalankan perintah Unison:

sudo chown -R $USER.$USER /data2

Lakukan hal yang sama untuk server1 :

sudo chown -R $USER.$USER /data1

Masukkan beberapa file uji di / data1 :

touch /data1/{test1,test2,test3}

Kami menyinkronkan direktori kami dengan perintah berikut (dengan menjalankannya di server1 ):

unison /data1 ssh://192.168.1.19//data2

Karena ini adalah pertama kalinya Anda mencoba menyinkronkan direktori root ini, Anda akan menerima peringatan bahwa sinkronisasi mungkin memakan waktu (tetapi dalam kasus kami ini tidak akan terjadi, karena kami hanya menambahkan tiga file uji volume minimum ke direktori). Jika itu adalah cadangan produksi, peluncuran pertama benar-benar dapat memakan waktu.

Jadi minumlah teh lain kali. Sementara itu, tekan Enter untuk memulai proses. Setelah Anda melakukan ini, Anda akan diminta untuk mengkonfirmasi sinkronisasi setiap file. Setelah selesai, masukkan 'y' untuk melanjutkan.

Karena kami hanya menyinkronkan tiga file uji, ini akan terjadi dengan sangat cepat dan akan mengembalikan Anda ke bash shell. Untuk memastikan file disinkronkan, pergi ke server2dan masukkan perintah:

ls /data2

Selanjutnya, sistem akan melaporkan bahwa file test1, test2 dan test3 kami ada di direktori / data2 :



Kami berhasil: Unison menyinkronkan kedua direktori.

Cara memulai Unison tanpa perlu interaksi pengguna


Saya pikir Anda tidak ingin selalu mengkonfirmasi sinkronisasi setiap file direktori setiap kali Anda memulai Serentak. Ini sangat menjengkelkan ketika Anda menyinkronkan direktori dengan sejumlah besar file. Oleh karena itu, otomatisasi diperlukan. Pergi ke server1 dan masukkan perintah:

nano ~/.unison/default.prf

Ketika file konfigurasi terbuka untuk diedit, tambahkan dua baris ke dalamnya:

auto=true
batch=true

Kemudian simpan dan tutup file tersebut.
Sekarang Unison tidak akan mengganggu Anda dengan hal sepele. Tapi itu belum semuanya.

Cara membuat tugas untuk Cron Scheduler


Saya pikir Anda tidak ingin memulai sinkronisasi secara manual, karena Anda dapat membuat kesalahan di suatu tempat atau, misalnya, tidak memperhitungkan perubahan dalam struktur direktori pada server. Untuk mengkonfigurasi otomatisasi, Anda perlu membuat pekerjaan cron untuk server1 .
Mari buat skrip untuk memulai sinkronisasi:

sudo nano /usr/local/bin/unisonsync

Yang berikut harus ditambahkan ke file ini:

#!/bin/bash/
unison /data1 ssh://192.168.1.19//data2

Selanjutnya, Anda perlu memberi skrip hak untuk mengeksekusi:

sudo chmod ugo+x /usr/local/bin/unisonsync

Buat pekerjaan untuk Cron dengan perintah:

crontab -e

Setelah tipe itu:

*/5 * * * * /usr/local/bin/unisonsync &> /dev/null

Sekarang sinkronisasi akan dimulai secara otomatis setiap 5 menit.

Saya telah menunjukkan bahwa Unison memudahkan untuk menyinkronkan direktori pada dua server Linux. Anda dapat memverifikasi ini sendiri dengan menambahkan file ke direktori tes / data1 dan / data2 yang sesuai pada kedua server. Setelah memastikan bahwa sinkronisasi berfungsi, Anda dapat menggunakannya dalam mode pertempuran di server produksi.



Sebagai iklan


VDSina selalu senang menawarkan server yang andal untuk tugas apa pun. Anda memiliki akses ke banyak pilihan sistem operasi untuk instalasi otomatis, Anda dapat menginstal OS apa pun dari gambar Anda sendiri , serta menggunakan jaringan lokal berkecepatan tinggi antara server di lokasi yang sama.


All Articles