Cara Menyiapkan Daemon RSYNC di Linux

Cara Menyiapkan Daemon RSYNC di Linux

Dalam artikel sebelumnya kita melihat beberapa contoh asas cara menggunakan rsync di Linux untuk memindahkan data dengan cekap. Seperti yang kita lihat, untuk menyegerakkan data dengan mesin jauh, kita boleh menggunakan kedua -dua shell jauh sebagai SSH atau RSYNC Daemon. Dalam artikel ini kita akan memberi tumpuan kepada pilihan yang kedua, dan kita akan melihat cara memasang dan mengkonfigurasi rsyncd pada beberapa pengagihan Linux yang paling banyak digunakan.

Dalam tutorial ini anda akan belajar:

  • Cara memasang dan mengkonfigurasi daemon rsync

Keperluan perisian dan konvensyen yang digunakan

Keperluan Perisian dan Konvensyen Talian Perintah Linux
Kategori Keperluan, konvensyen atau versi perisian yang digunakan
Sistem Pengedaran-bebas
Perisian
  • Rsync
  • Rsyncd (daemon rsync)
Yang lain Tiada keperluan khas diperlukan untuk mengikuti tutorial ini
Konvensyen # - Memerlukan arahan Linux yang diberikan untuk dilaksanakan dengan keistimewaan akar sama ada secara langsung sebagai pengguna root atau dengan menggunakan sudo perintah
$ - Memerlukan arahan Linux yang diberikan sebagai pengguna yang tidak layak

Pemasangan

Memasang RSYNC Daemon sangat mudah, kerana pakej dan kebergantungannya boleh didapati secara lalai dalam semua repositori pengagihan linux utama. Pada Debian dan Archlinux, fail yang berkaitan dengan daemon rsync disertakan rsync pakej, jadi yang perlu kita lakukan, adalah memasang yang terakhir. Pada Debian kita boleh menggunakan Pengurus Pakej APT:

$ sudo apt-get memasang rsync

Pada Archlinux, sebaliknya, kami menggunakan Pacman:

$ sudo pacman -s rsync

Mengenai pengagihan seperti fedora, sebaliknya, rsyncd, Daemon RSYNC, diedarkan dalam pakejnya sendiri, RSYNC-Daemon. Dalam versi pengedaran baru -baru ini, untuk memasangnya, kita boleh menggunakan DNF Pengurus Pakej. Pakej RSYNC utama akan dipasang sebagai kebergantungan:



$ sudo DNF Pasang rsync-daemon 

Fail konfigurasi rsyncd

Sekali rsyncd dipasang, kita boleh mengkonfigurasi ia menggunakan /etc/rsyncd.Conf fail. Fail ini sudah dimasukkan dalam pakej Archlinux dan Fedora, sementara di Debian ia mesti dibuat dari awal. Berikut adalah kandungan fail di Fedora:

# /etc /rsyncd: Fail konfigurasi untuk mod daemon rsync # lihat rsyncd.halaman conf lelaki untuk lebih banyak pilihan. # Contoh konfigurasi: # uid = tiada siapa # gid = tiada siapa # menggunakan chroot = ya # max sambungan = 4 # pid file =/var/run/rsyncd.PID # Exclude = Lost+Found/ # Transfer Logging = Yes # Timeout = 900 # Abaikan Nonreadable = Ya # Dont Compress = *.gz *.tgz *.zip *.z *.Z *.rpm *.Deb *.bz2 # [ftp] # path = /home /ftp # comment = ftp kawasan eksport 

Semua parameter dikomentari, dan dipaparkan sebagai contoh konfigurasi: mereka mewakili titik permulaan yang baik untuk perbincangan kami. Perkara pertama yang perlu kita perhatikan ialah bagaimana rsyncd modul ditakrifkan:

[ftp] path = /home /ftp comment = ftp kawasan eksport

Modul ditakrifkan dalam "stanza" yang bermula dengan perisytiharan nama modul antara kurungan persegi, dalam kes ini [FTP]. Modul dikaitkan dengan direktori dalam sistem fail, yang ditentukan dengan jalan argumen. Semua parameter yang disediakan di dalam bait adalah tempatan, Jadi mereka digunakan untuk modul yang berkaitan sahaja; Tetapan yang disediakan sebelum stanza, adalah Global. Mari kita lihat dengan cepat beberapa dari mereka.



Parameter global

Seperti yang kita katakan, parameter global adalah yang ditakrifkan pada permulaan /etc/rsyncd.Conf fail, sebelum sebarang definisi modul, atau secara pilihan di dalam a [Global] seksyen. Di sini kita akan membincangkan beberapa yang paling menarik.

Parameter "PID File"

Parameter ini digunakan untuk menentukan laluan fail di mana rsyncd Pid (ID Proses) akan ditulis. Secara lalai, pelancaran daemon akan digugurkan jika fail yang ditentukan sudah ada. Ada kemungkinan untuk mengubah tingkah laku ini, dan biarkan fail ditimpa, sebaliknya, dengan melancarkan daemon rsync dengan --dparam = pid -file = fail pilihan.

Parameter "pelabuhan"

Dengan menggunakan parameter global ini, kami dapat menentukan port alternatif untuk daemon rsync. Lalai adalah TCP port 873. Pilihan ini boleh ditindih apabila daemon dilancarkan, dengan menggunakan --pelabuhan pilihan.

Parameter "Alamat"

Kita boleh menggunakan global alamat parameter untuk menentukan alamat daemon rsync akan mendengar. Alamat yang dinyatakan dalam fail boleh ditindih dengan melancarkan daemon dengan --alamat pilihan, memberikan alamat yang diingini sebagai hujah.

Sebagai tambahan kepada parameter yang kita lihat di atas, di bahagian global, kita juga boleh menentukan parameter modul. Apabila kita berbuat demikian, nilai parameter yang ditentukan akan menjadi lalai untuk semua modul.

Parameter modul

Parameter modul adalah yang dinyatakan di dalam seksyen modul dan digunakan pada bahagian itu sahaja. Mari lihat sebahagian daripada mereka.

Parameter "jalan"

Parameter ini wajib dan mesti disediakan untuk setiap modul. Ia digunakan untuk menentukan jalan direktori yang disediakan oleh modul itu sendiri.

Parameter "komen"

Parameter "Komen" adalah pilihan: kita boleh menentukan rentetan yang akan dipaparkan berhampiran nama modul, apabila pelanggan meminta senarai yang ada.

Buat modul Baca atau Tulis Sahaja

Secara lalai, semua modul dibuat sebagai baca sahaja. Ini bermaksud bahawa pelanggan hanya boleh menggunakannya sebagai sumber untuk pemindahan. Tingkah laku ini dapat diubah dengan menetapkan parameter "baca sahaja" ke tidak atau salah. Modul juga boleh dibuat hanya menulis, dengan menggunakan Tulis sahaja parameter dan menyediakan Ya atau Benar sebagai nilai. Sekiranya parameter terakhir ini diaktifkan, pelanggan tidak akan dapat memuat turun fail dari modul. Untuk membaca fail dari modul atau tulis kepadanya, kebenaran unix standard juga harus dihormati, jadi, pengguna pemindahan dijalankan sebagai, mesti dibenarkan melakukan tindakan yang diingini.

Parameter uid dan gid

The uid dan gid Parameter digabungkan, tentukan keistimewaan yang akan dimiliki oleh pemindahan. Yang pertama digunakan untuk menentukan pengguna pemindahan dijalankan seperti ketika daemon dijalankan sebagai akar (jika daemon dijalankan dengan keistimewaan pengguna biasa, pengguna tidak akan berubah). Pengguna dapat dikenal pasti dengan nama pengguna, atau ID angkanya. Yang terakhir mentakrifkan satu atau lebih nama kumpulan atau ID kumpulan yang akan digunakan untuk pemindahan.

Nilai lalai untuk kedua -dua pilihan adalah tiada siapa, bermaksud bahawa apabila daemon dijalankan sebagai akar, pemindahan akan dijalankan dengan keistimewaan tiada siapa pengguna dan tiada siapa kumpulan (di Debian kumpulan tiada siapa yang tidak wujud - kumpulan digunakan sebaliknya).

Parameter "Gunakan Chroot"

Dengan menggunakan Gunakan chroot Parameter, kita boleh menentukan jika rsync harus chroot ke laluan modul yang ditakrifkan sebelum pemindahan dimulakan. Ini boleh digunakan untuk menguatkuasakan keselamatan, tetapi untuk memanfaatkannya, daemon mesti dikonfigurasikan untuk dijalankan dengan keistimewaan akar. Secara lalai pilihan ini ditetapkan ke Ya.

Parameter "Max Connections"

Ini adalah satu lagi parameter yang sangat berguna, dan ia digunakan untuk menentukan bilangan maksimum sambungan serentak yang disokong oleh daemon. Nilai lalai yang digunakan untuk parameter adalah 0, bermaksud bahawa tiada had ditetapkan. Sekiranya nilai yang disediakan adalah nombor negatif, sambungan dilumpuhkan sepenuhnya.

Tidak termasuk dan masukkan fail dari pemindahan

Kadang -kadang kita mungkin ingin mengecualikan beberapa fail dari pemindahan: kita dapat menyelesaikan tugas dengan menggunakan tidak termasuk parameter, yang menerima senarai corak yang dipisahkan ruang. Fail yang dipadankan dengan corak tidak akan diselaraskan. The termasuk Parameter berfungsi dengan cara yang sama tetapi ia digunakan untuk menentukan secara eksplisit.



Cara lain untuk tidak termasuk atau secara eksplisit termasuk fail adalah dengan menggunakan tidak termasuk dari dan termasuk dari parameter. Dengan parameter ini kita dapat menentukan jalan fail yang mengandungi corak pengecualian dan kemasukan. Fail mesti mengandungi satu corak setiap baris.

The tidak termasuk, termasuk, tidak termasuk dari dan termasuk dari Parameter boleh muncul sekali sahaja di dalam modul.

Parameter "tamat masa"

Apabila kita menggunakan rsync pelanggan kami dapat menyediakan--masa tamat Pilihan untuk menetapkan masa maksimum I/O dalam beberapa saat: jika tiada data dipindahkan dalam masa yang ditentukan, pemindahan itu dibatalkan. The masa tamat Pilihan RSYNC Daemon boleh digunakan untuk mengatasi masa tamat yang ditakrifkan oleh pelanggan. Ini berguna untuk mengelakkan menunggu pelanggan mati secara tidak sengaja. Tamat masa dinyatakan dalam beberapa saat: 0 adalah lalai, dan ini tidak bermakna masa.

"Abaikan tidak boleh dibaca" dan "tidak memampatkan"

The Abaikan tidak boleh dibaca pilihan digunakan RSYNC untuk mengabaikan fail yang tidak boleh dibaca oleh pengguna pemindahan berjalan sebagai. The Jangan memampatkan Pilihan, sebaliknya, digunakan untuk menyediakan senarai ruang yang dipisahkan dari corak kes-insensitif yang digunakan untuk memilih fail yang tidak boleh dimampatkan semasa pemindahan. Ini boleh menjadi sangat berguna untuk mengelakkan memampatkan fail yang sudah dimampatkan.

Parameter "Hos Membenarkan" dan "Hos Menolak"

Dengan menggunakan Hos membenarkan dan Tuan rumah menafikan Parameter, kita boleh menentukan senarai corak yang dipisahkan koma yang akan dipadankan dengan nama pelanggan atau IP, untuk membenarkan atau menafikan akses kepada mereka, masing-masing. Kedua -dua parameter boleh digabungkan dan muncul bersama di dalam modul: corak "membenarkan" diperiksa sebelum "menafikan". Secara lalai, semua tuan rumah dibenarkan untuk menyambung.

Contoh konfigurasi modul

Mari buat contoh dan buat modul pada pelayan rsync. Perkara pertama yang mesti kita lakukan ialah membenarkan lalu lintas masuk TCP pelabuhan 873. Sekiranya kita menggunakan firewalld kita boleh menambah pra-konfigurasi rsyncd Perkhidmatan ke zon yang kami gunakan:

$ sudo firewall-cmd --permanent --add-service rsyncd && sudo firewall-cmd-reload

Jika kita menggunakan UFW, sebaliknya, kita boleh menjalankan:

$ sudo ufw membenarkan 873/tcp

Sebaik sahaja kita mengkonfigurasi firewall, kita boleh meneruskan dan menentukan modul. Inilah konfigurasi kami:

[linuxconfig] path =/mnt/data/rsync comment = "Contoh modul daemon rsync" baca sahaja = false exclude = *.txt

Kami memanggil modul kami "linuxconfig" dan kami mengaitkannya /mnt/data/rsync direktori kepadanya. Kami juga memberi komen. Kami menetapkan modul yang boleh dibaca dan boleh ditulis dengan menetapkan baca sahaja parameter kepada palsu, dan, melalui tidak termasuk parameter, kami menyediakan corak untuk mengecualikan semua fail dengan .txt sambungan.

Sebelum kita menggunakan modul kita, kita perlu memulakan daemon. Kita boleh menjalankan rsync sebagai daemon dengan menggunakan program dengan --Daemon pilihan, atau kita hanya boleh menggunakan SystemD untuk menyelesaikan tugas (di bawah tudung perkhidmatan SystemD tidak melaksanakan arahan yang sama). Di bawah pengagihan berasaskan Debian, perkhidmatan itu dipanggil rsync; Di Fedora dan Archlinux, ia dipanggil rsyncd:

$ sudo systemctl start rsync

Untuk membuat rsync bermula secara automatik di boot, kita mesti menggunakan systemctl membolehkan Subcommand:

$ sudo systemctl enable rsync

Kami menetapkan /mnt/data/rsync direktori seperti yang dimiliki oleh tiada siapa pengguna dan kumpulan kumpulan (ini mesin debian). Inilah kandungannya:

$ ls/mnt/data/rsync csv1.CSV Text1.txt text2.txt 

Seperti yang dapat kita lihat direktori mengandungi dua .txt fail dan satu .CSV. Jika kita menggunakan modul sebagai sumber dalam pemindahan, hanya "CSV1.Fail CSV "akan dimasukkan:

$ rsync -av rsync: // 192.168.0.39/linuxconfig/ . menerima senarai fail tambahan ./ CSV1.CSV 

Pengecualian juga berkuat kuasa ketika kita menggunakan modul sebagai destinasi. Mari kita katakan kita mencipta "CSV2.CSV "dan" Teks3.TXT "fail dalam direktori kerja semasa kami:

$ sentuh CSV2.CSV Text3.txt


Jika kita kini menjalankan RSYNC dan menggunakan direktori kerja semasa kita sebagai sumber dan modul sebagai destinasi, kita dapat melihat bagaimana daemon enggan menerima "teks3.Fail txt ", kerana ia dipadankan dengan corak pengecualian yang ditentukan:

$ rsync -av . rsync: // 192.168.0.39/Linuxconfig Menghantar Ralat Senarai Fail Tambahan: Daemon enggan menerima fail "Text3.txt " ./ CSV2.CSV 

Perhatikan bahawa dalam arahan di atas kami menggunakan URL RSYNC Untuk menentukan alamat IP pelayan dan nama modul yang ingin kami gunakan. Bagaimana kita boleh mendapatkan senarai semua modul yang ada di mesin? Sangat mudah, kami hanya menjalankan perintah rsync yang menyatakan hanya alamat pelayan dalam URL:

$ rsync rsync: // 192.168.0.39 Linuxconfig "Contoh modul daemon rsync" 

Semua modul yang ada dan komen yang berkaitan akan dipaparkan; Dalam kes ini, hanya "linuxconfig".

Kesimpulan

Dalam artikel ini kita melihat cara memasang dan mengkonfigurasi daemon rsync, pada beberapa pengagihan Linux yang paling banyak digunakan. Kami melihat dan belajar bagaimana menggunakan beberapa parameter khusus global dan modul yang tersedia untuk mengubah tingkah laku daemon RSYNCD. Akhirnya kita melihat contoh konfigurasi modul. Untuk pengetahuan yang lebih mendalam mengenai rsyncd, Kami sentiasa boleh berunding dengan manual rasmi. Hanya masalah berjalan:

$ man rsyncd.Conf

Tutorial Linux Berkaitan:

  • Perkara yang hendak dipasang di Ubuntu 20.04
  • Pengenalan kepada Automasi, Alat dan Teknik Linux
  • Perkara yang perlu dilakukan setelah memasang ubuntu 20.04 Focal Fossa Linux
  • Perkara yang perlu dipasang di Ubuntu 22.04
  • Fail Konfigurasi Linux: 30 teratas yang paling penting
  • Menguasai Gelung Skrip Bash
  • Muat turun linux
  • Mint 20: Lebih baik daripada Ubuntu dan Microsoft Windows?
  • Cara Dual Boot Kali Linux dan Windows 10
  • Ubuntu 20.04 Trik dan Perkara yang Anda Tidak Tahu