RSNAPSHOT (berasaskan rsync) - Utiliti sandaran sistem fail tempatan/jauh untuk Linux

RSNAPSHOT (berasaskan rsync) - Utiliti sandaran sistem fail tempatan/jauh untuk Linux

rsnapshot adalah sumber terbuka tempatan / Jauh Utiliti sandaran sistem fail ditulis dalam Perl bahasa yang memanfaatkan kekuatan Rsync dan SSH program untuk membuat, sandaran tambahan yang dijadualkan Linux/Unix sistem fail, sementara hanya mengambil ruang satu sandaran penuh ditambah perbezaan dan simpan sandaran tersebut tempatan memandu kepada yang berbeza cakera keras, luaran USB tongkat, pemacu dipasang NFS atau hanya melalui rangkaian ke mesin lain melalui SSH.

Pasang alat sandaran rsnapshot

Artikel ini akan menunjukkan cara memasang, menyiapkan dan menggunakan rsnapshot untuk mencipta tambahan setiap jam, setiap hari, setiap minggu dan bulanan sandaran tempatan, serta sandaran jauh. Untuk melaksanakan semua langkah dalam artikel ini, anda mesti akar pengguna.

Langkah 1: Memasang sandaran rsnapshot di linux

Pemasangan rsnapshot menggunakan Yum dan Apt mungkin berbeza sedikit, jika anda menggunakan topi merah dan Debian pengagihan berasaskan.

Pada rhel/centos

Pertama anda perlu memasang dan membolehkan repositori pihak ketiga yang dipanggil Epel. Sila ikuti pautan di bawah untuk memasang dan membolehkan anda RHEL/Centos sistem. Fedora Pengguna tidak memerlukan konfigurasi repositori khas.

  1. Pasang dan aktifkan repositori Epel di RHEL/CentOS 6/5/4

Sebaik sahaja anda mendapat persediaan, pasang rsnapshot dari baris arahan seperti yang ditunjukkan.

# yum pasang rsnapshot
Pada Debian/Ubuntu/Linux Mint

Secara lalai, rsnapshot termasuk dalam Ubunturepositori, jadi anda boleh memasangnya menggunakan apt-get arahan seperti yang ditunjukkan.

# apt-get memasang rsnapshot

Langkah 2: Menyediakan Log Masuk Kata Laluan SSH

Untuk membuat sandaran pelayan Linux jauh, anda RSNAPSHOT Server Backup akan dapat menyambung SSH tanpa kata laluan. Untuk mencapai ini, anda perlu membuat SSH kunci awam dan peribadi untuk mengesahkan rsnapshot pelayan. Sila ikuti pautan di bawah untuk menghasilkan kunci awam dan peribadi pada anda rsnapshot pelayan sandaran.

  1. Buat log masuk tanpa kata laluan SSH menggunakan keygen SSH

Langkah 3: Mengkonfigurasi rsnapshot

Sekarang anda perlu mengedit dan menambah beberapa parameter ke rsnapshot fail konfigurasi. Buka rsnapshot.Conf fail dengan vi atau Nano editor.

# vi /etc /rsnapshot.Conf

Seterusnya buat direktori sandaran, di mana anda ingin menyimpan semua sandaran anda. Dalam kes saya lokasi direktori sandaran saya adalah "/data/sandaran/". Cari dan edit parameter berikut untuk menetapkan lokasi sandaran.

snapshot_root/data/sandaran/

Juga uncomment the "cmd_ssh"Talian untuk membolehkan mengambil sandaran jauh SSH. Untuk tidak mengisahkan garisan keluarkan "#"Di hadapan baris berikut sehingga rsnapshot boleh memindahkan data anda dengan selamat ke pelayan sandaran.

cmd_ssh/usr/bin/ssh

Seterusnya, anda perlu memutuskan berapa banyak sandaran lama yang anda ingin simpan, kerana rsnapshot tidak tahu berapa kerap anda ingin mengambil gambar. Anda perlu menentukan berapa banyak data untuk menyimpan, menambah selang waktu untuk disimpan, dan berapa banyak.

Nah, tetapan lalai cukup baik, tetapi masih saya ingin anda dapat membolehkan "bulanan"Selang supaya anda juga boleh mempunyai sandaran jangka panjang. Sila edit bahagian ini untuk kelihatan serupa dengan tetapan di bawah.

#####################################selang sandaran##mesti unik dan dalam pesanan menaik # # i.e. setiap jam, setiap hari, mingguan, dll. ########################################jelajah setiap hari 6 selang 7 selang mingguan 4 selang bulanan 3

Satu perkara lagi yang perlu anda edit ialah "SSH_ARGS"Pembolehubah. Sekiranya anda telah mengubah lalai SSH Port (22) kepada sesuatu yang lain, anda perlu menentukan nombor port pelayan yang disandarkan jauh anda.

SSH_ARGS -P 7851

Akhirnya, tambahkan direktori sandaran tempatan dan jarak jauh anda yang ingin anda sandarkan.

Sandaran direktori tempatan

Sekiranya anda telah memutuskan untuk membuat sandaran direktori anda secara tempatan ke mesin yang sama, entri sandaran akan kelihatan seperti ini. Contohnya, saya mengambil sandaran saya /tecmint dan /dan lain-lain direktori.

sandaran/ tecmint/ localhost/ sandaran/ etc/ localhost/
Direktori jauh sandaran

Sekiranya anda ingin membuat sandaran direktori pelayan jauh, maka anda perlu memberitahu rsnapshot di mana pelayan dan direktori mana yang anda mahu sandarkan. Di sini saya mengambil sandaran pelayan jauh saya "/rumah"Direktori di bawah"/data/sandaran"Direktori pada pelayan rsnapshot.

sandaran [dilindungi e -mel]:/rumah//data/sandaran/

Baca juga:

  1. Cara sandaran/penyegerakan direktori menggunakan alat RSYNC (Remote Sync)
  2. Cara memindahkan fail/folder menggunakan arahan SCP
Tidak termasuk fail dan direktori

Di sini, saya akan mengecualikan segala -galanya, dan kemudian hanya menentukan apa yang saya mahu disandarkan. Untuk melakukan ini, anda perlu membuat fail yang tidak termasuk.

# vi/data/sandaran/tecmint.tidak termasuk

Mula -mula dapatkan senarai direktori yang ingin anda sokong dan tambahkan ( - * ) untuk mengecualikan semua yang lain. Ini hanya akan membuat sandaran apa yang anda disenaraikan dalam fail. Fail exclude saya kelihatan seperti di bawah.

+ /boot + /data + /tecmint + /etc + /home + /opt + /root + /usr - /usr /* - /var /cache + /var - /*

Menggunakan pilihan Fail Exclude boleh menjadi sangat rumit kerana penggunaan rsync rekursi. Jadi, contoh saya di atas mungkin bukan apa yang anda cari. Seterusnya tambahkan fail yang tidak termasuk ke rsnapshot.Conf fail.

tidak termasuk_file/data/sandaran/tecmint.tidak termasuk

Akhirnya, anda hampir selesai dengan konfigurasi awal. Simpan "/etc/rsnapshot.Conf"Fail konfigurasi sebelum bergerak lebih jauh. Terdapat banyak pilihan untuk dijelaskan, tetapi inilah fail konfigurasi sampel saya.

config_version 1.2 snapshot_root/data/sandaran/cmd_cp/bin/cp cmd_rm/bin/rm cmd_rsync/usr/bin/rsync cmd_ssh/usr/bin/ssh cmd_logger/usr/bin/logger 7 selang mingguan 4 selang bulanan 3 ssh_args -p 25000 verbose 2 loglevel 4 logfile/var/log/rsnapshot/exclude_file/data/sandaran/tecmint.Kecualikan rsync_long_args --elete-numeric-ids-delete-excluded lockfile/var/run/rsnapshot.sandaran pid/ tecmint/ localhost/ sandaran/ etc/ localhost/ sandaran [dilindungi e -mel]:/ rumah// data/ sandaran/

Semua pilihan di atas dan penjelasan hujah adalah seperti berikut:

  1. config_version 1.2 = Versi fail konfigurasi
  2. snapshot_root = Destinasi sandaran untuk menyimpan gambar
  3. cmd_cp = Jalan untuk menyalin arahan
  4. cmd_rm = Jalan untuk mengeluarkan arahan
  5. cmd_rsync = Jalan ke rsync
  6. cmd_ssh = Jalan ke ssh
  7. cmd_logger = Path to Shell Command Interface ke Syslog
  8. cmd_du = Jalan ke arahan penggunaan cakera
  9. selang setiap jam = Berapa banyak sandaran setiap jam untuk disimpan.
  10. selang setiap hari = Berapa banyak sandaran harian yang perlu disimpan.
  11. selang mingguan = Berapa banyak sandaran mingguan untuk disimpan.
  12. selang bulanan = Berapa banyak sandaran bulanan untuk disimpan.
  13. SSH_ARGS = Argumen SSH pilihan, seperti port yang berbeza (-p)
  14. verbose = Jelas
  15. Loglevel = Jelas
  16. fail log = Jalan ke logfile
  17. tidak termasuk_file = Jalan ke fail yang tidak termasuk (akan dijelaskan dengan lebih terperinci)
  18. rsync_long_args = Argumen panjang untuk lulus ke rsync
  19. Lockfile = Jelas
  20. sandaran = Jalan penuh ke apa yang hendak disandarkan diikuti oleh jalan relatif penempatan.

Langkah 4: Sahkan konfigurasi rsnapshot

Sebaik sahaja anda selesai dengan semua konfigurasi anda, waktunya untuk mengesahkan bahawa semuanya berfungsi seperti yang diharapkan. Jalankan arahan berikut untuk mengesahkan bahawa konfigurasi anda mempunyai sintaks yang betul.

# sintaks rsnapshot configtest ok

Sekiranya semuanya dikonfigurasikan dengan betul, anda akan menerima "Sintaks OK"Mesej. Sekiranya anda mendapat mesej ralat, itu bermakna anda perlu membetulkan kesilapan tersebut sebelum menjalankan rsnapshot.

Seterusnya, lakukan ujian dijalankan pada salah satu gambar untuk memastikan bahawa kami menghasilkan hasil yang betul. Kami mengambil "setiap jam"Parameter untuk menjalankan ujian menggunakan -t (ujian) argumen. Perintah di bawah ini akan memaparkan senarai verbose perkara yang akan dilakukannya, tanpa benar -benar melakukannya.

# rsnapshot -t setiap jam
Output sampel
echo 2028>/var/run/rsnapshot.pid mkdir -m 0700 -p/data/sandaran/mkdir -m 0755 -p/data/sandaran/jam.0//usr/bin/rsync -a--delete-numeric-ids-relative --delete-excluded/home \/sandaran/jam.0/localhost/mkdir -m 0755 -p/sandaran/jam.0//usr/bin/rsync -a --elete-numeric-ids-relative--elete-excluded/etc \/sandaran/jam.0/localhost/mkdir -m 0755 -p/data/sandaran/jam.0//usr/bin/rsync -a --elete-numeric-ids-relative--elete-excluded \/usr/local/data/sandaran/jam.0/localhost/sentuh/data/sandaran/jam.0/

Catatan: Perintah di atas memberitahu rsnapshot Untuk membuat "setiap jam"Backup. Ia sebenarnya mencetak arahan yang akan dilakukan ketika kita melaksanakannya.

Langkah 5: Menjalankan rsnapshot secara manual

Setelah mengesahkan hasil anda, anda boleh mengeluarkan "-t"Pilihan untuk menjalankan arahan.

# rsnapshot setiap jam

Perintah di atas akan menjalankan skrip sandaran dengan semua konfigurasi yang kami tambahkan di rsnapshot.Conf fail dan membuat "sandaran"Direktori dan kemudian mewujudkan struktur direktori di bawahnya yang menganjurkan fail kami. Selepas menjalankan arahan di atas, anda boleh mengesahkan keputusan dengan pergi ke direktori sandaran dan menyenaraikan struktur direktori menggunakan arahan ls -l seperti yang ditunjukkan.

# cd /data /sandaran # ls -l total 4 drwxr-xr-x 3 root 4096 Okt 28 09:11 setiap jam.0

Langkah 6: mengautomasikan prosesnya

Untuk mengautomasikan prosesnya, anda perlu menjadualkan rsnapshot untuk dijalankan pada selang waktu tertentu dari Cron. Secara lalai, rsnapshot datang dengan Cron fail di bawah "/etc/cron.d/rsnapshot", Sekiranya tidak ada membuatnya dan tambahkan baris berikut.

Peraturan lalai diulas, jadi anda perlu mengeluarkan "#"Dari depan bahagian penjadualan untuk membolehkan nilai -nilai ini.

# Ini adalah fail kron sampel untuk rsnapshot. # Nilai yang digunakan sesuai dengan contoh dalam /etc /rsnapshot.Conf. # Di sana anda juga boleh menetapkan titik sandaran dan banyak perkara lain. # # Untuk mengaktifkan fail kron ini, anda perlu mengekang garis di bawah. # Jangan ragu untuk menyesuaikannya dengan keperluan anda. 0 */4 * * * root/usr/bin/rsnapshot jam 30 3 * * * root/usr/bin/rsnapshot setiap hari 0 3 * * 1 root/usr/bin/rsnapshot mingguan 30 2 1 * * root/usr/ bin/rsnapshot setiap bulan

Biar saya jelaskan dengan tepat, apa yang di atas peraturan Cron tidak:

  1. Berjalan setiap 4 jam dan mencipta setiap jam direktori di bawah /sandaran direktori.
  2. Berjalan setiap hari di 3:30 pagi dan buat a setiap hari direktori di bawah /sandaran direktori.
  3. Berjalan setiap minggu pada setiap Isnin pada 3:00 pagi dan buat a setiap minggu direktori di bawah /sandaran direktori.
  4. Berjalan setiap bulanan pada 2:30 pagi dan buat a bulanan direktori di bawah /sandaran direktori.

Untuk lebih memahami bagaimana Peraturan Cron berfungsi, saya cadangkan anda membaca artikel kami yang menggambarkan.

  1. 11 Contoh penjadualan Cron

Langkah 7: Laporan RSNAPSHOT

The rsnapshot Menyediakan pelaporan kecil yang bagus Skrip perl yang menghantar anda Makluman e -mel dengan semua butiran mengenai apa yang berlaku semasa sandaran data anda. Untuk menyediakan skrip ini, anda perlu menyalin skrip di mana -mana di bawah "/usr/tempatan/bin"Dan menjadikannya boleh dilaksanakan.

# CP/USR/SHARE/DOC/RSNAPSHOT-1.3.1/utils/rsnapreport.pl/usr/local/bin # chmod +x/usr/local/bin/rsnapreport.pl

Seterusnya, tambah "-statistik"Parameter di anda"rsnapshot.Conf"Fail ke bahagian argumen panjang rsync.

vi /etc /rsnapshot.Conf
rsync_long_args --stats --elete-numeric-ids --delete-excluded

Sekarang edit Peraturan Crontab yang ditambah lebih awal dan memanggil rsnapreport.pl skrip untuk lulus laporan ke alamat e -mel yang ditentukan.

# Ini adalah fail kron sampel untuk rsnapshot. # Nilai yang digunakan sesuai dengan contoh dalam /etc /rsnapshot.Conf. # Di sana anda juga boleh menetapkan titik sandaran dan banyak perkara lain. # # Untuk mengaktifkan fail kron ini, anda perlu mengekang garis di bawah. # Jangan ragu untuk menyesuaikannya dengan keperluan anda. 0 */4 * * * root/usr/bin/rsnapshot jam 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -s "sandaran setiap jam" [dilindungi e -mel] 30 3 * * * root/usr/bin/rsnapshot setiap hari 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -s "sandaran harian" [dilindungi e -mel] 0 3 * * 1 root/usr/bin/rsnapshot mingguan 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -s "sandaran mingguan" [dilindungi e -mel] 30 2 1 * * root/usr/bin/rsnapshot bulanan 2> & 1 | \/usr/local/bin/rsnapreport.PL | Mail -s "Montly Backup" [E -mel dilindungi]

Sebaik sahaja anda telah menambah entri di atas dengan betul, anda akan mendapat laporan ke alamat e-mel anda yang serupa dengan di bawah.

Sumber Jumlah Fail Fail Trans Total MB MB Trans List Gen Time File Xfer Masa --------------------------------------- -------------------------------------------------- ------------------- localhost/ 185734 11853 2889.45 6179.18 40.661 kedua 0.000 saat

Pautan rujukan

  1. Laman Utama RSNapshot

Buat masa ini, jika ada masalah semasa pemasangan, saya akan membuat komen. Sehingga kemudian menantikan Tecmint Untuk artikel yang lebih menarik di dunia sumber terbuka.