GNU/Linux >> Belajar Linux >  >> Linux

Cara Menyinkronkan File secara Dua Arah Menggunakan Osync Script di Linux

Anda mungkin bertanya pada diri sendiri, mengapa saya memerlukan solusi sinkronisasi file dua arah/dua arah? Sifat osync . berbasis terminal menjadikannya solusi sinkronisasi file ideal yang dapat dijalankan dalam tiga mode:

  1. secara manual
  2. melalui tugas terjadwal
  3. melalui daemon (dipicu saat terjadi perubahan file baru)

Sinkronisasi stateful ini bertindak sebagai rsync pembungkus. Osinkron dikaitkan sebagai stateful karena tidak berkewajiban untuk memantau file yang ditargetkan untuk perubahan. Atribut ini juga membuatnya tanpa agen.

Di antara dua proses, osync akan membandingkan daftar file replika. Proses ini bisa lokal-ke-lokal atau lokal-ke-jarak jauh. Proses replikasi lokal-ke-lokal membutuhkan waktu sekitar 2 detik sedangkan proses replikasi lokal-ke-jauh membutuhkan waktu sekitar 7 detik.

Fitur Osync

Sorotan fitur Osync yang menonjol:

  • Dukungan sinkronisasi Lokal-ke-Lokal dan Lokal-ke-Jarak Jauh.
  • Kontrol waktu skrip penuh.
  • Peringatan email
  • Berjalan sebagai daemon atau sesuai jadwal
  • Pemantauan direktori
  • Fasilitas pencatatan
  • Menangani beberapa tugas sinkronisasi melalui runner batch dan tugas sinkronisasi yang gagal melalui opsi jalankan ulang
  • Lanjutkan skenario untuk menangani toleransi kesalahan
  • Atribut yang diperluas dan sinkronisasi POSIX ACL
  • Eksekusi perintah sebelum/sesudah dijalankan
  • Penanganan beberapa pencadangan dan penghapusan ringan

Jika Anda membutuhkan eksekusi cepat, Anda mungkin ingin menonaktifkan beberapa fitur osync seperti pemeriksaan ruang disk dan pelestarian atribut. Skema sinkronisasi target/inisiator juga berlaku di bawah osync.

Replika target/inisiator yang sudah ada sebelumnya dilindungi dari beberapa proses sinkronisasi bersamaan melalui pidlocks. Desain utama Osync mencegahnya menghapus data pengguna/sistem. Penghapusan lunak atau file konfliktual disimpan melalui cadangan yang dibuat.

Instal Osync di Linux

Versi stabil atau terbaru dari osync dapat ditemukan di Github. Anda harus menginstal git terlebih dahulu sebelum Anda dapat mengambil dan menginstal alat sinkronisasi file osync dari Github.

Gunakan salah satu panduan penginstalan berikut sesuai dengan distribusi sistem operasi Linux Anda.

Instal Osync di Distor berbasis RHEL

$ sudo yum install git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Instal Osync di Distor Berbasis Debian

$ sudo apt install git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Instal Osync di Arch Linux

$ sudo pacman -S git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Instal Osync di OpenSUSE Linux

$ sudo zypper install git
$ sudo git clone -b "stable" https://github.com/deajan/osync
$ cd osync
$ sudo bash install.sh

Saat mengkloning osync dari Github, hapus -b "stable" opsi dari perintah git clone akan mengambil snapshot dev terbaru osync.

Cara Menggunakan Osync di Linux untuk Sinkronisasi File Dua Arah

Seperti yang telah disebutkan, ada tiga pendekatan untuk menggunakan osync.

  1. Mode Sinkronisasi Cepat
  2. Mode File Konfigurasi
  3. Mode Daemon

Sinkronisasi File Lokal-Lokal dan Lokal-Jarak Jauh Menggunakan Mode Sinkronisasi Cepat

Namun pendekatan ini nyaman bagi pengguna yang ingin mencapai sinkronisasi cepat antar direktori. Untuk lokal-ke-lokal direktori, pertimbangkan sintaks osync berikut:

$ osync.sh --initiator="/path/to/directory1" --target="/path/to/directory2"

Sebagai contoh implementasinya adalah sebagai berikut:

$ sudo osync.sh --initiator="/home/dnyce/LinuxShellTips" –target="/home/dnyce/LinuxShellTips_Backup"

Untuk lokal-ke-jauh direktori, Anda mungkin perlu mengonfigurasi mesin Anda terlebih dahulu untuk akses tanpa kata sandi SSH.

$ sudo ssh-keygen -t rsa 
$ sudo ssh-copy-id [email protected]
$ sudo ssh [email protected]

Sintaks Sinkronisasi Cepat lokal-ke-jauh adalah sebagai berikut:

$ osync.sh --initiator="/path/to/another/directory" --target="ssh://user@host/IP:22//path/to/directory2" 

Contoh implementasi akan terlihat seperti berikut:

$ sudo osync.sh --initiator="/home/dnyce/LinuxShellTips" --target="ssh://[email protected]:22//home/ubuntu/linuxshelltips_remotesync"

Dan akhirnya…

Jangan khawatir tentang osync selesai dengan peringatan , Hanya saja saya menonaktifkan ping di server saya. Namun, perintah osync Anda dapat menyertakan opsi perintah berikut untuk membantu Anda mendiagnosis kesalahan kritis.

--summary --errors-only --no-prefix

Misalnya:

$ osync.sh --initiator="/path/to/another/directory"--target="ssh://user@host/IP:22//path/to/directory2" --summary --errors-only --no-prefix 

Mengonfigurasi Cron Job untuk Mengotomatiskan Sinkronisasi File

Kami dapat mengotomatiskan Sinkronisasi Cepat mode tugas melalui tugas cron.

$ sudo su
$ crontab -e

Menambahkan dua tugas cron berikut untuk direktori local-to-local dan local-to-remote akan mengotomatiskan tugas osync kami.

 */5        *        *        *        * osync.sh --initiator="/home/dnyce/LinuxShellTips" –target="/home/dnyce/LinuxShellTips_Backup"
 */5        *        *        *        * osync.sh --initiator="/home/dnyce/LinuxShellTips" --target="ssh://[email protected]:22//home/ubuntu/linuxshelltips_remotesync"

Osinkron adalah solusi sinkronisasi dua arah yang ideal untuk direktori lokal-ke-lokal dan lokal-ke-jauh. Sinkronisasi direktori yang Anda buat adalah rencana pencadangan yang sempurna untuk data penting jika terjadi penghapusan tidak disengaja atau bukti file rusak.


Linux
  1. Cara Mengunggah atau Mengunduh File/Direktori Menggunakan sFTP di Linux

  2. Bagaimana melakukan perbandingan file baris demi baris di Linux menggunakan perintah diff

  3. Cara Mengelola File Log Menggunakan Logrotate Di Linux

  1. Cara Menulis File Log Di RAM Menggunakan Log2ram Di Linux

  2. Cara membuat file sparse di Linux menggunakan perintah 'dd'

  3. Cara mencari file menggunakan regex di skrip shell linux

  1. Cara Menggunakan Rsync untuk Menyinkronkan File Baru atau Berubah/Dimodifikasi di Linux

  2. Cara Mengganti Nama Banyak File Bersama di Linux Menggunakan 3 Metode

  3. Cara Mengurutkan File di Linux menggunakan Perintah Sortir