Cara Menyiapkan Daemon RSYNC di Linux
- 1126
- 55
- Clarence Powlowski
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
Kategori | Keperluan, konvensyen atau versi perisian yang digunakan |
---|---|
Sistem | Pengedaran-bebas |
Perisian |
|
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
- « Contoh bagaimana menggunakan rsync untuk sandaran dan penyegerakan data tempatan dan jauh
- Cara Memasang Docker di Ubuntu 20.04 LTS Focal Fossa »