Contoh tentang cara menggunakan rsync untuk cadangan data dan sinkronisasi lokal dan jarak jauh

Contoh tentang cara menggunakan rsync untuk cadangan data dan sinkronisasi lokal dan jarak jauh

RSYNC adalah alat yang sangat berguna yang memungkinkan administrator sistem Linux menyinkronkan data secara lokal atau dengan sistem file jarak jauh melalui protokol SSH atau dengan menggunakan Rsync Daemon. Menggunakan rsync lebih nyaman daripada sekadar menyalin data, karena dapat melihat dan menyinkronkan hanya perbedaan antara sumber dan tujuan. Program ini memiliki opsi untuk mempertahankan izin sistem file standar dan diperpanjang, mengompres data selama transfer dan banyak lagi. Kami akan melihat yang paling banyak digunakan dalam panduan ini.

Dalam tutorial ini Anda akan belajar:

  • Cara menggunakan rsync untuk menindaskan data
  • Cara menggunakan rsync dengan sistem file jarak jauh melalui ssh
  • Cara menggunakan rsync dengan sistem file jarak jauh melalui daemon rsync
  • Cara mengecualikan file dari sinkronisasi

Persyaratan dan konvensi perangkat lunak yang digunakan

Persyaratan Perangkat Lunak dan Konvensi Baris Perintah Linux
Kategori Persyaratan, konvensi atau versi perangkat lunak yang digunakan
Sistem Distribusi-independen
Perangkat lunak Aplikasi RSYNC dan secara opsional RSYNC Daemon
Lainnya Tidak diperlukan persyaratan khusus untuk mengikuti panduan ini.
Konvensi # - mensyaratkan perintah linux yang diberikan untuk dieksekusi dengan hak istimewa root baik secara langsung sebagai pengguna root atau dengan menggunakan sudo memerintah
$ - mensyaratkan perintah Linux yang diberikan untuk dieksekusi sebagai pengguna biasa

Rsync - penggunaan

Mari kita mulai dengan penggunaan dasar rsync. Misalkan kami memiliki direktori pada sistem file lokal kami, dan kami ingin menyinkronkan kontennya dengan direktori lain, mungkin pada perangkat USB eksternal, untuk membuat cadangan file kami. Demi contoh kami, direktori sumber kami /mnt/data/sumber, dan tujuan kami akan dipasang di /run/media/egdoc/tujuan. Tujuan kami berisi dua file: file1.txt Dan file2.txt, Saat tujuan kosong. Pertama kali kami berlari rsync Semua data disalin:

Jalur tujuan adalah hal terakhir yang kami berikan dalam perintah. Jika kita sekarang mencantumkan kontennya, kita dapat melihat bahwa sekarang berisi file sumber:



$ ls/run/media/egdoc/destination/-l total 0 -rw-r-r--. 1 EGDOC EGDOC 0 Okt 6 19:42 File1.txt -rw-r-r--. 1 EGDOC EGDOC 0 Okt 6 19:42 File2.txt

Waktu berikutnya kami menjalankan RSYNC untuk menyinkronkan dua direktori, hanya file baru dan file yang dimodifikasi yang akan disalin: Ini akan menghemat banyak waktu dan sumber daya. Mari kita pahami: Pertama kita memodifikasi konten file1.txt di dalam direktori sumber:

$ echo linuxconfig>/mnt/data/sumber/file1.txt

Lalu, kami akan lari rsync Sekali lagi, perhatikan outputnya:

$ rsync -av/mnt/data/sumber//run/media/egdoc/tujuan mengirim file daftar file tambahan1.txt dikirim 159 byte menerima 35 byte 388.00 byte/detik ukuran total adalah 12 speedup adalah 0.06

Satu -satunya file yang disalin adalah yang kami modifikasi, file1.txt.

Buat salinan cermin sumber ke tujuan

Secara default rsync Pastikan bahwa semua file di dalam direktori sumber (kecuali yang ditentukan sebagai pengecualian) disalin ke tujuan: tidak perlu menjaga kedua direktori identik, dan tidak menghapus file; Oleh karena itu, jika kita ingin membuat salinan cermin sumber ke tujuan, kita harus menggunakan --menghapus opsi, yang menyebabkan penghapusan file yang ada hanya di dalam tujuan.

Misalkan kita membuat file baru yang dipanggil File3.txt Di direktori tujuan:

$ touch/run/media/egdoc/destination/file3.txt


File tidak ada di direktori sumber, jadi jika kita berjalan rsync dengan --menghapus Opsi, dihapus:

$ rsync -av --delete/mnt/data/sumber//run/media/egdoc/tujuan mengirim daftar file tambahan menghapus file3.txt ./ Dikirim 95 byte menerima 28 byte 246.00 byte/detik ukuran total adalah 0 speedup adalah 0.00 

Karena sinkronisasi ini berpotensi merusak, Anda mungkin ingin terlebih dahulu meluncurkan RSYNC dengan --Dry-run opsi, untuk membuat program menampilkan operasi yang akan dilakukan, tanpa benar -benar memodifikasi sistem file.

Sinkronisasi file dari jarak jauh

Sampai sekarang, kami melihat cara menggunakan rsync untuk menyinkronkan dua sistem file lokal. Program ini juga dapat digunakan untuk menyinkronkan file dari jarak jauh, menggunakan shell jarak jauh seperti rsh atau ssh, atau rsync Daemon. Kami akan mengeksplorasi kedua metode.

Menjalankan rsync melalui ssh

Demi contoh kami, kami masih akan menggunakan direktori sumber yang sama yang kami gunakan dalam contoh sebelumnya, tetapi sebagai tujuan, kami akan menggunakan direktori pada mesin jarak jauh dengan IP 192.168.122.32. Saya sebelumnya mengatur server openssh dengan login berbasis kunci pada mesin, oleh karena itu saya tidak perlu memberikan kata sandi untuk mengaksesnya.

Bagaimana kita bisa berlarirsync melalui ssh? Pertama -tama, agar sinkronisasi jarak jauh berfungsi, RSYNC harus diinstal baik pada sumber dan mesin jarak jauh. RSYNC mencoba menghubungi sistem file jarak jauh menggunakan program shell jarak jauh setiap kali tujuan atau jalur sumber berisi a : karakter. Dalam versi modern rsync ssh digunakan secara default; Untuk menggunakan shell jarak jauh lain, atau untuk mendeklarasikan shell secara eksplisit, kita dapat menggunakan -e opsi dan berikan sebagai argumen. Seandainya direktori tujuan kami di mesin jarak jauh /home/egdoc/tujuan, kita bisa menjalankan:

$ rsync -av -e ssh/mnt/data/sumber/[email protected]:/home/egdoc/tujuan

Perhatikan bahwa kami menentukan tujuan dalam formulir @:/path/to/direktori.

Menghubungi mesin jarak jauh melalui daemon rsync

Metode lain yang dapat kita gunakan untuk menyinkronkan file dengan mesin jarak jauh adalah dengan menggunakan Rsync Daemon. Ini jelas membutuhkan daemon yang diinstal dan berjalan di mesin tujuan. Rsync mencoba menghubungi mesin jarak jauh yang berbicara dengan daemon setiap kali sumber atau jalur tujuan berisi a :: (Double Colon) Separator Setelah spesifikasi host, atau ketika URL RSYNC ditentukan sebagai rsync: //.



Seandainya daemon rsync mendengarkan di port 873 (default), pada mesin jarak jauh, kami dapat menghubungi dengan menjalankan:

$ rsync -av/mnt/data/sumber/192.168.122.32 ::modul/tujuan

Atau kita bisa menggunakan URL rsync:

$ rsync -av/mnt/data/sumber/rsync: // 192.168.122.32/modul/tujuan

Di kedua contohnya, modul (disorot dalam perintah), tidak mewakili nama direktori pada mesin jarak jauh, tetapi nama sumber daya, atau modul Dalam terminologi RSYNC, dikonfigurasi oleh administrator, dan dapat diakses melalui daemon rsync. Modul dapat menunjuk ke jalur apa pun pada sistem file.

Tidak termasuk file dari sinkronisasi

Terkadang kami ingin mengecualikan beberapa file atau direktori dari sinkronisasi. Pada dasarnya ada dua cara kita dapat menyelesaikan tugas ini: dengan menentukan pola pengecualian secara langsung --mengecualikan (Beberapa pola dapat ditentukan dengan mengulangi opsi), atau dengan menulis semua pola ke dalam file (satu per baris). Saat menggunakan metode yang terakhir, kita harus meneruskan jalur file sebagai argumen ke --tidak termasuk-dari pilihan.

Semua file dan direktori yang cocok dengan polanya akan dikecualikan dari sinkronisasi. Misalnya, untuk mengecualikan semua file dengan “.txt ”ekstensi yang akan kami jalankan:

$ rsync -av/mnt/data/sumber//run/media/egdoc/destination --exclude =*.txt


Kesimpulan

Dalam artikel ini kami melihat cepat ke RSYNC, alat yang sangat berguna yang dapat kami gunakan untuk menyinkronkan file dan direktori baik pada sistem file lokal maupun jarak jauh. Kami melihat program yang paling banyak digunakan opsi, dan apa yang mereka izinkan untuk kami capai, cara menentukan direktori sumber dan tujuan, dan metode yang dapat kami gunakan untuk menghubungi sistem file jarak jauh. Akhirnya kami melihat cara mengecualikan file dari sinkronisasi, menentukan pola pengecualian secara langsung atau di dalam file. Rsync memiliki banyak pilihan, terlalu banyak untuk disebutkan di sini. Seperti biasa, kami dapat menemukan semua informasi yang kami butuhkan ke dalam manual program!

Tutorial Linux Terkait:

  • Hal -hal yang harus diinstal pada ubuntu 20.04
  • Pengantar Otomatisasi Linux, Alat dan Teknik
  • Hal -hal yang harus dilakukan setelah menginstal ubuntu 20.04 FOSSA FOSSA Linux
  • Menguasai loop skrip bash
  • Ubuntu 20.04 trik dan hal -hal yang mungkin tidak Anda ketahui
  • Ubuntu 20.04 Panduan
  • Contoh RSYNC di Linux
  • Loop bersarang dalam skrip bash
  • Manipulasi data besar untuk kesenangan dan keuntungan bagian 1
  • Mint 20: Lebih baik dari Ubuntu dan Microsoft Windows?