Linux'ta rsnapshot ve artımlı yedekler kılavuzu
Giriş
rsnapshot Perl'de yazılmış ve arka uç olarak rsync kullanan bir yedekleme aracıdır. rsnapshot, kullanıcıların özelleştirilmiş artımlı yedekleme çözümleri oluşturmasına olanak tanır. Bu makalede aşağıdakiler ele alınacaktır: artımlı yedekleme çözümünün faydaları, rsnapshot yüklemesi, yapılandırması ve kullanım örnekleri.
Geri çekilin!
Kısa süre önce bir meslektaşınızla verilerinizi yedeklemenin yararlarını tartışıyordum. Meslektaşım, müşterilerinden birinin yakın zamanda üzerinde çalıştıkları oldukça uzun bir makaleyi nasıl kaybettiğini anlatıyordu. Bunun netbook ve rsnapshot ile denemek için iyi bir şans olabileceğine karar verdim. Bu eğitim için, 2 donanımınız olduğunu varsayacağım: ana bilgisayarınız ve hedef ekipmanınız. Bu yazının çoğunluğu için harici bir sabit disk kullanacağım. Ancak, dosyaları LAN üzerinden yedeklemek için kullanımı kısaca anlatacağım.
Verilerinizi yedeklemek, sorulması gereken soru olmamalı, daha çok, eşyalarımı nasıl yedeklemeliyim? En iyi yol nedir? Peki, blok seviyesi (dd, partimage), bölüm seviyesi (RAID ve tüm varyasyonları), dosya seviyesi (rsyncand ve alt uygulamaları) dahil olmak üzere alabileceğiniz birçok farklı yedekleme yolu vardır. Dosya tabanlı yedeklemeler bağlamında iki tür yedeklemeyi tartışacağım.
Normal yedeklemeler veya tam yedeklemeler açıklayıcıdır. Normal yedeklemeler, her yedekleme gerçekleştirdiğinizde TÜM dosyalarınızı yedeklemenin bir yoludur. Birden çok normal yedekleme şemasının kullanılmasıyla ilgili bir sorun, normal bir yedeklemenin önemli miktarda yer kaplamasıdır. Örneğin,% 20 kapasitede 250 gig'lik bir sabit sürücünün tam yedeklemesini gerçekleştirirseniz, yalnızca bir hafta boyunca her gün (veri miktarının dalgalanmadığı varsayılarak), zaten yalnızca bir haftalık yedekleme için 350 gig kullandığınız anlamına gelir. . Gördüğünüz gibi, bu uzun vadede mümkün değil. Tercih ettiğim diğer yöntem artımlı yedekleme yöntemidir. Artımlı yedekleme, bir tam yedeklemeden oluşur ve daha sonra ek yedeklemeler gerçekleştirir. Bu ek yedeklemeler yalnızcason yedeklemeden bu yana değişen yedekleme dosyaları. Tüm sabit sürücünüzü yedeklemek yerine, yalnızca son yedeklemeden bu yana değişen belirli dosyalar yedeklenir. Tahmin edebileceğiniz gibi bu çok daha verimli bir süreçtir. * Nix üzerinde bunu yapan bir araç rsnapshot.
Rsnapshot nedir?
rsnapshot, daha önce de belirtildiği gibi, artımlı bir yedekleme yardımcı programıdır. Bu derste, rsnapshot kullanarak yedi günlük bir rotasyon yedekleme şeması oluşturmayı göstereceğim. Esasen, rsnapshot 1 tam yedekleme oluşturur ve daha sonra yapılan yedeklemeler yalnızca değişen dosyaları yedekler. Rsnapshot'ın gerçek gücü, her bir yedekleme arasında sabit bağlantıları kullanma yeteneğidir. Her yedekleme tam bir yedekleme gibi görünecektir. Gerçekte her yeni yedekleme yeni oluşturulan veya güncellenen dosyalardan oluşur. rsnapshot bir LAN üzerinden kullanılabilir ve cron'dan da çalıştırılabilir. Bu derste, her iki kullanım örneğini de göstereceğim.
Kurulum
Rsnapshot'ın kurulumu oldukça basittir, aşağıdaki linux komutunu çalıştırın :
Debian'da (veya Ubuntu'da):
apt-get install rsnapshot
Fedora'da:
yum install rsnapshot
ArchLinux'da:
pacman -S rsnapshot
Şimdi rsnapshot'ı yapılandıralım.
Yapılandırma
/ Etc adresine bir göz atın, eğer /etc/rsnapshot.conf.default varsa /etc/rsnapshot.conf dosyasına kopyalamanız gerekir. .Default dosyası yoksa, normal .conf dosyasının bir yedeğini oluşturun. Bu, daha sonra başvurmanız gerektiğinde yararlıdır.
Rsnapshot.conf dosyasını açın ve ihtiyaçlarınıza göre düzenlemeye başlayın. rsnapshot'ın yapılandırma dosyası iyi yorumlanmıştır. Bu, yapılandırmayı çok daha kolay hale getirir. Yapılandırma dosyasının "Harici Program Bağımlılıkları" bölümündeki tüm uygulamaları açarak başlayacağım. Yeni başlayanlar için aşağıdaki satırları açın:
cmd_rsync /USO/bin/rsync
cmd_d /bin/D
cmd_rsnapshot_diff /USA/bin/rsnapshot-diff
Rsnapshot bulamazsa, rsnapshot-diff konumunu değiştirmeniz gerekebilir. Doğru ikili soruna başvurduğunuzdan emin olmak için:
whereis rsnapshot-diff
Şimdi yedekleme planınızı tam olarak nasıl tasarlayacağınıza karar vermeniz gerekiyor. Bir şemaya yerleştikten sonra, "Yedekleme Aralıkları" altında bulunan "aralık" satırlarını düzenlemeniz gerekir. rsnapshot saatlik, günlük, haftalık ve aylık yedeklemeler yapabilir. Sistemim yedi günlük bir yedekleme şeması yapıyor, ancak burada ne yapmak istediğinize karar verebilirsiniz. Bunun bir örneği haftanın her günü altı saatte bir çalışan bir yedekleme oluşturmak olabilir. Bu size kalmış. Kurulumumu örnek olarak kullanacağım. Aşağıdaki ekran görüntüsüne bakın:
Açmanız gereken diğer iki satır snapshot_root (betiğin başında bulunur) ve yedeklemedir ("YEDEK NOKTALAR / BILGILER" altında bulunur).
snapshot_root $destination/ #specifies where your backups are stored
.
.
backup $source/ $hastens
#backup specifies what you what to backup, you can backup
#from multiple locations just specify multiple backup lines
Yedekleme hattı üç bölümden oluşur. Bu üç bölüm, "yedek" bildirimini, kaynak konumu ve hızlandırılmışları içerir. Her bileşen bir sekme ile ayrılmalıdır ZORUNLU ve dizinler / veya rsnapshot ile bitmelidir doğru şekilde olmaz. Kayda değer iki özellik daha günlüğe kaydetme işlevselliği ve rsync'in içerme / hariç tutma dosyalarını kullanma yeteneğidir. Aşağıdaki üç satırın açıklamasını kaldırın (ve buna göre değiştirin):
verbose 5 #How much information should the
#actual backup relay to you?
loglevel 5 #How must information
#should be stored in the log file?
logfile $log_file_destination #Where should the logfile be stored?
Muhtemelen .conf dosyasındaki yorumları okuduğunuzdan fark ettiğiniz gibi, ayrıntı düzeyi 1-5 arasında değişir ve 5 en ayrıntılıdır. İlk başta her şeyin yolunda olup olmadığını görmek için bunu etkinleştiririm. Bu kontrol seviyesi yardımcı olur. Herhangi bir sorunla karşılaşırsanız, hata ayıklama gerçekleştirebilirsiniz.
Daha önce de belirtildiği gibi, rsync include ve exclude dosyalarını da kullanabilirsiniz ve aşağıda örnek bir exclude dosyası bulunmaktadır.
#EXCLUDE
#not to backup alongside ~
- /home/javier/data/
- /home/javier/$dest/
Dahil etme dosyaları doğada benzerdir. Dahil etmek istediğiniz verileri göstermek için '-' yerine '+' kullanın. İçerme veya hariç tutma dosyalarını kullanmaya karar verirseniz, include_file / exclude_file satırlarına göz atın. İşte benim rsnapshot.conf bu seçenekleri not bölüm.
include_file /home/javier/backup/include.lst
exclude_file /home/javier/backup/exclude.lst
Bu noktaya kadar takip ediyorsanız rsnapshot hemen hemen yapılandırılmıştır. Eğer rsnapshot bitmeden önce ya da sonra bir şey çalıştırmak istiyorsanız cmd_preexec ve cmd_postexec satırlarına bakınız. Bu satırların açıklamasını kaldırabilir ve gerekirse bir yedeklemenin tamamlanmasından önce veya sonra çalıştırılacak komut dosyalarını belirtebilirsiniz. Değilse, yapılandırma dosyanızı düzenlemeyi tamamladınız. Şimdi aşağıdaki linux komutunu çalıştırın :
rsnapshot configtest
Aşağıdaki ekran görüntüsü:
Bu komut rsnapshot'ı çalıştırır ve rsnapshot.conf üzerinde akıl sağlığı kontrolü yapmasını söyler. Her şey yolunda giderse, şu çıktıyı almalısınız: "Sözdizimi Tamam." Çıktı okunmazsa size verir ve rsnapshot.conf dosyasını gerektiği gibi düzenler.
Kullanım örnekleri
Ben rsnapshot kullanmanın üç biçimini tartışacağım. Bu formlar, yerel, uzaktan ve otomasyonunu (cron aracılığıyla) içerir. Kullanım, yerel veya uzaktan yürütme arasında farklılık göstermez. Aksine, yapılandırma dosyalarındaki farklılıkları göstereceğim
Rsnapshot'ı Yerel Olarak Kullanma
Yerel yedekleme için iki önemli satır:
snapshot_root $dest/
backup $source/ $hostname/
Yedeklemek istediğiniz her dizine başvuran birden çok satır oluşturarak birden çok yedekleme kaynağı belirtebilirsiniz.
Bir yedekleme sorununu gerçekten çalıştırmak için aşağıdaki linux komutu :
rsnapshot daily
Saatlik, haftalık ve aylık seçenekleri de kullanabilirsiniz. Her komut, belirtilen işleme göre bir yedekleme dizini oluşturur. Yedekleme konumuma göz atarsam aşağıdakileri göreceğim:
[[email protected] backupdir]# ls
daily.0 daily.1 log
Yukarıdaki çıktı, yedi günlük yedekleme planımın iki yedeğini oluşturduğumu gösteriyor.
Uzaktan Yedekleme
Rsnapshot'ın uzaktan yedekleme özelliklerini kullanmak için uzak konumu yedekleme kaynağınız olarak belirtmeniz yeterlidir (Uzaktan yedeklemeyi etkinleştirmek için ssh'ın sunucu için etkinleştirilmesi gerekir. Anahtar tabanlı kimlik doğrulaması burada en iyi seçeneğiniz olacaktır):
backup This email address is being protected from spambots. You need JavaScript enabled to view it.:/home/ example.com/
Uzak bir kaynağı yedekleme konumu olarak belirledikten sonra rsnapshot'ı çalıştırın. Aşağıdaki örnek:
rsnapshot hourly
Cron ile Otomasyon
Eğer cronthen ile herhangi bir deneyiminiz varsa, anlık görüntü ile bir giriş eklemek sadece belirli bir komutu eklemekten ibarettir, örneğin "rsnapshot hourly" ve cron üzerindeki ilgili sözdizimi. İşte bazı örnekler:
20 23 * * * /usr/bin/rsnapshot daily # daily backup is ran at 11:20 pm
05 23 * * 7 /usr/bin/rsnapshot weekly # weekly backup is ran at 11:05 pm
# on Sunday
Yedekler arasındaki dönüşlerle çakışmaları önlemek için daha küçük yedeklemelerden önce (yukarıda gösterildiği gibi) daha büyük yedeklemeler planlamanız önerilir. Ayrıca, her iş arasındaki çakışmaları önlemek için daha büyük yedeklemeler ile daha küçük yedeklemeler arasında bir boşluk oluşturmanız önerilir.
Rsnapshot diğer kullanımları
rsnapshot diğer bazı kullanışlı özelliklerle birlikte gelir. Örneğin, aşağıdaki linux komutunu çalıştırabilirsiniz :
rsnapshot du
ne kadar disk alanı kullandığını görmek için (/etc/rsnapshot.conf dosyasındaki uncommented olmaması gerekir). Aşağıdaki ekran görüntüsü:
Yedeklemeler arasındaki değişiklikleri karşılaştırmak için aşağıdakileri çalıştırabilirsiniz:
rsnapshot diff daily.0 daily1
Aşağıdaki ekran görüntüsüne benzer çıktılar görmelisiniz:
Ek işlevsellik için rsnapshot'ın kılavuz sayfasına bakın.
Sorun giderme
Lchown hakkında herhangi bir sorunla karşılaşırsanız aşağıdaki linux komutunu çalıştırın :
perl -MCPAN -e 'install QC(Lchown)'
Sonuç
Bu öğreticiyi başarıyla tamamladıktan sonra, artık yüksek kaliteli bir yedekleme şemasına sahip olmalısınız. Ek belgeler için rsnapshot'ın kılavuz sayfasına ve burada bulunan ana sayfasına bakın. Çeşitli formatlarda bulunan mükemmel bir nasıl yapılır. Ayrıca, diğer yedekleme programlarını kontrol etmenizi tavsiye ederim, bunlar rsync (rsnapshot için arka uç), rdiff-backup, partimage ve dd'yi içerir.