Laman » bagaimana untuk » Bagaimana Menggunakan rsync untuk Cadangan Data Anda di Linux

    Bagaimana Menggunakan rsync untuk Cadangan Data Anda di Linux

    rsync adalah protokol yang dibina untuk sistem seperti Unix yang menyediakan serba boleh dipercayai untuk membuat sandaran dan penyegerakan data. Ia boleh digunakan secara tempatan untuk menyandarkan fail ke direktori yang berbeza atau boleh dikonfigurasikan untuk disegerakkan merentas Internet ke host lain.

    Ia boleh digunakan pada sistem Windows tetapi hanya boleh didapati melalui pelbagai port (seperti Cygwin), jadi dalam cara ini kita akan bercakap tentang menetapkannya di Linux. Pertama, kita perlu memasang / mengemaskini klien rsync. Pada pengedaran Red Hat, perintah itu "yum install rsync" dan pada Debian itu adalah "sudo apt-get install rsync."


    Perintah Red Hat / CentOS, selepas log masuk sebagai root (ambil perhatian bahawa beberapa pengedaran Red Hat yang baru menyokong kaedah sudo).


    Perintah pada Debian / Ubuntu.

    Menggunakan rsync untuk sandaran tempatan

    Di bahagian pertama tutorial ini, kami akan membuat sandaran fail dari Directory1 ke Directory2. Kedua-dua direktori ini berada pada pemacu keras yang sama, tetapi ini akan berfungsi sama jika direktori terdapat pada dua pemacu yang berlainan. Terdapat beberapa cara yang boleh kita hadapi ini, bergantung pada jenis sandaran yang anda mahu konfigurasikan. Bagi kebanyakan tujuan, baris kod berikut akan mencukupi:

    $ rsync -av --delete / Directory1 / / Directory2 /

    Kod di atas akan menyegerakkan kandungan Directory1 ke Directory2, dan tidak membiarkan perbezaan antara kedua-dua. Jika rsync mendapati Directory2 mempunyai fail yang Directory1 tidak, ia akan memadamkannya. Jika rsync mendapati fail yang telah ditukar, dibuat, atau dipadamkan di Directory1, ia akan mencerminkan perubahan yang sama dengan Directory2.

    Terdapat banyak suis yang berbeza yang boleh anda gunakan untuk rsync untuk memperibadikannya dengan keperluan khusus anda. Berikut ialah kod yang dinyatakan di atas memberitahu rsync untuk melakukan penyandar:

    1. -a = rekursif (recurse ke direktori), pautan (salin symlinks sebagai symlinks), perms (memelihara kebenaran), masa (memelihara masa pengubahsuaian), kumpulan (memelihara kumpulan), pemilik (memelihara pemilik) mengekalkan fail khas.
    2. -v = verbose. Alasan saya berfikir verbose adalah penting supaya anda dapat melihat dengan tepat apa yang disokong oleh rsync. Fikirkan tentang perkara ini: Bagaimana jika cakera keras anda menjadi buruk, dan mula memotong fail tanpa pengetahuan anda, maka anda menjalankan skrip rsync anda dan menolak perubahan tersebut pada backup anda, dengan itu memadam semua contoh fail yang anda tidak mahu mendapatkan menyingkirkan?
    3. -delete = Ini memberitahu rsync untuk memadam sebarang fail yang terdapat di Directory2 yang tidak terdapat di Directory1. Sekiranya anda memilih untuk menggunakan opsyen ini, saya cadangkan juga menggunakan opsyen bercerita, atas alasan yang disebutkan di atas.

    Menggunakan skrip di atas, inilah output yang dijana dengan menggunakan rsync untuk Backup Directory1 ke Directory2. Perhatikan bahawa tanpa suis verbose, anda tidak akan menerima maklumat terperinci itu.

    Petikan di atas memberitahu kami bahawa File1.txt dan File2.jpg dikesan sama ada sedang baru atau diubah dari salinan yang ada di Directory2, dan oleh itu mereka disandarkan. Tip noob: Perhatikan garis miring di akhir direktori di perintah rsync saya - yang perlu, pastikan anda ingat mereka.

    Kami akan mengalihkan suis beberapa lebih berguna ke arah akhir tutorial ini, tetapi hanya ingat bahawa untuk melihat penyenaraian penuh, anda boleh menaip "rsync lelaki" dan melihat senarai lengkap suis untuk digunakan.

    Bahawa kira-kira merangkumi sejauh backup tempatan. Seperti yang anda boleh katakan, rsync sangat mudah digunakan. Ia mendapat sedikit lebih rumit apabila menggunakannya untuk menyegerakkan data dengan hos luaran melalui Internet, tetapi kami akan menunjukkan kepada anda cara yang mudah, cepat, dan selamat untuk melakukannya.

    Menggunakan rsync untuk backup luaran

    rsync boleh dikonfigurasikan dalam beberapa cara untuk backup luaran, tetapi kami akan menggunakan kaedah rsync terowong melalui SSH yang paling praktikal (juga yang paling mudah dan paling selamat). Kebanyakan pelayan dan bahkan banyak pelanggan sudah pun mempunyai SSH, dan ia boleh digunakan untuk backup rsync anda. Kami akan menunjukkan kepada anda proses untuk mendapatkan satu mesin Linux untuk membuat sandaran kepada yang lain pada rangkaian tempatan. Proses ini akan menjadi sama jika satu hos keluar di internet di suatu tempat, hanya perhatikan bahawa port 22 (atau apa sahaja pelabuhan yang anda telah dikonfigurasi SSH di atas), perlu dihantar ke mana-mana peralatan rangkaian di sisi pelayan.

    Pada pelayan (komputer yang akan menerima sandaran), pastikan SSH dan rsync dipasang.

    # yum -y install ssh rsync

    # sudo apt-get install ssh rsync

    Selain daripada memasang SSH dan rsync pada pelayan, semua yang perlu dilakukan adalah dengan menyiapkan repositori pada pelayan yang mana anda mahu menyandarkan fail dan pastikan SSH dikunci. Pastikan pengguna yang anda merancang untuk menggunakan mempunyai kata laluan yang kompleks, dan ia juga merupakan idea yang baik untuk menukar pelabuhan yang didengar oleh SSH (default ialah 22).

    Kami akan menjalankan perintah yang sama yang kami lakukan untuk menggunakan rsync pada komputer tempatan, tetapi masukkan penambahan yang diperlukan untuk rsync terowongan melalui SSH ke pelayan di rangkaian tempatan saya. Bagi pengguna "geek" yang menyambung ke "192.168.235.137" dan menggunakan suis yang sama seperti di atas (-av -delete) kami akan menjalankan yang berikut:

    $ rsync -av -delete -e ssh / Directory1 / [email protected]: / Directory2 /

    Sekiranya anda mendengar SSH di sesetengah port selain daripada 22, anda perlu menentukan nombor port, contohnya di mana saya menggunakan port 12345:

    $ rsync -av -delete -e 'ssh -p 12345' / Directory1 / [email protected]: / Directory2 /

    Seperti yang anda dapat lihat dari tangkapan skrin di atas, output yang diberikan semasa membuat sandaran di rangkaian adalah sama seperti semasa membuat sandaran dalam negara, satu-satunya perkara yang berubah ialah arahan yang anda gunakan. Perhatikan juga bahawa ia diminta untuk kata laluan. Ini adalah untuk mengesahkan dengan SSH. Anda boleh menyiapkan kunci RSA untuk melangkau proses ini, yang juga akan memudahkan rsync mengotomatisasi.

    Menggali sandaran rsync

    Cron boleh digunakan di Linux untuk mengautomasikan pelaksanaan perintah, seperti rsync. Dengan menggunakan Cron, kita boleh mempunyai sistem Linux kami menjalankan backup setiap malam, atau sering kali anda ingin mereka menjalankannya.

    Untuk mengedit fail jadual cron untuk pengguna yang anda log masuk sebagai, jalankan:

    $ crontab -e

    Anda perlu terbiasa dengan vi untuk mengedit fail ini. Taip "I" untuk dimasukkan, dan kemudian mula mengedit fail meja cron.

    Cron menggunakan sintaks berikut: minit jam, jam sehari, hari bulan, bulan tahun, hari dalam seminggu, perintah.

    Ia boleh menjadi sedikit mengelirukan pada mulanya, jadi beri saya memberi contoh kepada anda. Perintah berikut akan menjalankan perintah rsync setiap malam pada pukul 10 malam:

    0 22 * ​​* * rsync -av --delete / Directory1 / / Directory2 /

    Yang pertama "0" menentukan minit jam, dan "22" menyatakan 10 malam. Oleh kerana kami mahu arahan ini dijalankan setiap hari, kami akan meninggalkan seluruh medan dengan asteris dan kemudian menampal perintah rsync.

    Selepas selesai mengkonfigurasi Cron, tekan keluar, kemudian ketik ": wq" (tanpa petikan) dan tekan enter. Ini akan menyelamatkan perubahan anda dalam vi.

    Cron boleh mendapatkan lebih mendalam daripada ini, tetapi untuk meneruskannya akan berada di luar skop tutorial ini. Kebanyakan orang hanya mahu sandaran mudah mingguan atau harian, dan apa yang kami telah menunjukkan bahawa anda boleh melakukannya dengan mudah. Untuk maklumat lanjut mengenai Cron, sila lihat halaman lelaki.

    Ciri-ciri berguna yang lain

    Satu lagi perkara yang berguna yang boleh anda lakukan ialah meletakkan sandaran anda ke dalam fail zip. Anda perlu menentukan di mana anda ingin fail zip akan diletakkan, dan kemudian rsync direktori itu ke direktori sandaran anda. Sebagai contoh:

    $ zip /ZippedFiles/archive.zip / Directory1 / && rsync -av --delete / ZippedFiles / / Directory2 /

    Arahan di atas mengambil fail dari Directory1, meletakkannya dalam /ZippedFiles/archive.zip dan kemudian rsyncs direktori itu ke Directory2. Pada mulanya, anda mungkin fikir kaedah ini akan membuktikan tidak cekap untuk backup besar, memandangkan fail zip akan berubah setiap kali perubahan yang sedikit dibuat pada fail. Walau bagaimanapun, rsync hanya memindahkan data yang diubah, jadi jika fail zip anda adalah 10 GB, dan kemudian anda menambah fail teks ke Directory1, rsync akan tahu yang anda tambah (walaupun dalam zip) dan hanya memindahkan beberapa kilobyte daripada data yang diubah.

    Terdapat beberapa cara yang berbeza anda boleh menyulitkan sandaran rsync anda. Kaedah yang paling mudah ialah memasang penyulitan pada cakera keras itu sendiri (yang mana fail anda disokong). Cara lain adalah untuk menyulitkan fail anda sebelum menghantarnya ke pelayan jauh (atau cakera keras lain, apa sahaja yang anda lakukan untuk menyokongnya). Kami akan merangkumi kaedah ini dalam artikel-artikel kemudian.

    Apa pun pilihan dan ciri yang anda pilih, rsync terbukti menjadi salah satu alat sandaran yang paling berkesan dan serba boleh sehingga kini, dan walaupun skrip rsync mudah dapat menyelamatkan anda daripada kehilangan data anda.