Pencadangan dan pemulihan seluruh sistem


0

Saat ini saya mencadangkan Raspberry Pi 3 saya ke NAS lokal menggunakan perintah ini:

sudo dd if=/dev/mmcblk0 bs=1M | gzip > /mnt/MyCloud/"$(date +%FT%T)".gz

Ini harus dijalankan setiap hari, menggunakan pekerjaan cron.

  • Apakah ini cukup untuk pemulihan, jika drive mati?
  • Apakah ada cara yang lebih baik / lebih cepat?
  • Jika saya ingin memulihkan seluruh sistem, bagaimana saya melakukannya? Drive dikompresi, jadi saya tidak bisa adil dd if=my-backup.gz of=/dev/mmcblk0, Kupikir

Apakah Anda mematikan rPi, memindahkan sdcard ke sistem lain dan kemudian menjalankan perintah ini atau Anda melakukannya di sistem file langsung?
Hennes

Sistem hidup. Mengapa?
Amit

3
Karena kecuali Anda memasangnya RO (hanya baca) Anda mungkin membuat cadangan bagian dari disk yang ditulis selama cadangan. Yang berarti Anda tidak memiliki cadangan kerja yang dijamin. Baik pasang semua yang Anda cadangkan sebagai RO atau gunakan cadangan berbasis sistem file yang dapat mengompensasi itu. (mis. rsync dengan / dev / dikecualikan).
Hennes

Jawaban:


2
  1. Ini lebih dari cukup untuk pemulihan (sebenarnya tidak disarankan untuk melakukan ini pada sistem live, tetapi jika Anda tidak menggunakan file yang sering diubah seperti database misalnya, maka sistem dapat mencari cara untuk memulihkan dirinya sendiri pada pemulihan. Jika Anda tidak dapat memiliki basis data lalu gunakan saja sync;sync;sync sebelum Anda memulai seluruh cadangan sistem untuk memastikan cache file di-flash ke drive)
  2. baca di bawah ini untuk IMHO solusi yang lebih baik
  3. gunakan saja gunzip -c /path/to/your.image.gz | dd of=/dev/sdX

IMHO itu adalah pemborosan ruang pada drive cadangan, Anda mengkloning konten yang tidak berubah yang sama beberapa kali. Menggunakan tar dalam mode tambahan, itu hanya akan membuat cadangan perubahan antara yang sebelumnya.

Contoh sederhana cadangan inkremental dengan tar

#!/bin/sh

TAR='/bin/tar'
DATE='/bin/date'
SrcDir='/'
BkpDir='/mnt/MyCloud'
f=$($DATE '+%Y-%m-%dT%H-%M-%S')
snar="${BkpDir}/snar.diff" # If you need full backup then remove 
                           # ${snar} file before doing backup

[ -f "${snar}" ] && level=1 || level=0

$TAR -czf "${BkpDir}/${f}_dump.level.${level}.tgz"   \
    --listed-incremental=${snar}    \
    --no-check-device               \
    --totals                        \
    --level=${level}                \
    --directory=${SrcDir}           \
    --exclude=tmp/*                 \
    --exclude=media/*               \
    --exclude=mnt/*                 \
    --exclude=proc/*                \
    --exclude=sys/*                 \
    --exclude=dev/*                 \
    --exclude=run/*                 \
    --exclude=var/tmp/*             \
    --exclude=var/run/*             \
    --exclude=var/lock/*            \
    --exclude=var/cache/locate/*    \
    --exclude=var/dcc/dccifd                \
    --exclude=var/lib/amavis/amavisd.sock   \
    --exclude=var/lib/php5/sess_*           \
    --exclude=var/spool/postfix/dev/*       \
    --exclude=var/spool/postfix/pid/*       \
    --exclude=var/spool/postfix/private/*   \
    --exclude=var/spool/postfix/public/*    \
    --exclude=backup                        \
    --exclude=${BkpDir}                     \
    .
    exit $?

Terima kasih! Saya melihat ke dalam menggunakan tar, dan ini adalah solusi yang lebih baik. Saya macet berlari: cd / && tar -cvf mnt/MyCloud/backup-1.tar.gz -g mnt/MyCloud/backup.snar dev/mmcblk0 Membuat tar untuk lari dari /, karena tidak suka garis miring, dan lakukan incremental. Sayangnya, itu hanya membuat file sn 1kb dan cadangan 10kb .. Apakah saya melewatkan sesuatu?
Amit

Saya mengedit jawaban saya untuk menambahkan contoh sederhana. Jangan gunakan v opsi dari tar jika Anda akan menggunakannya cron, itu memperlambat proses backup BANYAK !!!
Alex

0

mungkin saya sedang sederhana di sini, tetapi setelah melihat opsi untuk DD dan crontab untuk jadwal cadangan dll, saya memutuskan pada pendekatan yang berbeda, sebagian karena saya lebih terbiasa dengan sistem windows.

  1. mematikan RPi.
  2. lepaskan kartu SD
  3. pergi ke PC windows (linux akan bekerja tetapi menggunakan DD saya kira)
  4. Gunakan Win32DiskImager untuk BACA BACA itu isi ke file.

Saya hanya melakukan ini setiap beberapa bulan, namun selain pembaruan sistem, sangat sedikit perubahan pada sdcard. Win32 Disk Imager unduh @ sourceforge

Ini akan memberikan cadangan sistem lengkap. Seperti yang dinyatakan di atas, saya melihat sedikit gunanya memiliki banyak salinan seluruh drive saya selain untuk mengambil ruang. Metode saya memberikan cadangan lengkap, dan file saya yang lain (musik dlna dan folder webserver misalnya) tidak disimpan di kartu sd, mereka berada di drive usb. Cara saya sederhana seperti saya lol tetapi berhasil. Kalau tidak, pendekatan cadangan inc taremental terlihat sangat bagus.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.