Tam bir Centos Sunucusu nasıl yedeklenir?


24

Birkaç hafta önce özel bir sunucudan VPS'ye geçtim. Artık her şey VPS'de iyi çalışıyor, bu adanmış sunucuyu kapatmak ve hesabımı barındırma şirketiyle kapatmak istiyorum.

İçiniz rahat olsun ve daha güvenli olabilmek için sunucuyu durdurmadan önce tam bir yedekleme yapmak istiyorum.

En iyisi, yedeklemede bir şeye ihtiyacım olduğunu tespit edersem göz atabileceğim bir yedekleme olacaktır.

Komut satırından en iyi çözüm ne olurdu?

Güncelleme:

Orta: ağ

Yanıtlar:


28

Bunun için kullanılacak en iyi araç muhtemelen standart bir linux aracı olan ve tüm dosya sistemini verecek olan dökümdür. Böyle bir şey yapardım:

/sbin/dump -0uan -f - / | gzip -2 | ssh -c blowfish user@backupserver.example.com dd of=/backup/server-full-backup-`date '+%d-%B-%Y'`.dump.gz

Bu, bir dosya sistemi dökümü yapacaktır / (başka herhangi bir eki atmanız gerekmediğinden emin olun!), Gzip ile sıkıştırın ve uzak bir sunucuya ssh (backupserver.example.com), / backup / içine saklayın . Daha sonra yedeklemeye göz atmanız gerekirse, geri yüklemeyi kullanın:

restore -i

Başka bir seçenek, döküme erişiminiz yoksa katran kullanmak ve benzeri şeyler yapmaktır.

tar -zcvpf /backup/full-backup-`date '+%d-%B-%Y'`.tar.gz --directory / --exclude=mnt --exclude=proc --exclude=tmp .

Ancak tar, dosya sistemindeki değişiklikleri de yapmaz.


Bu dökümü komutu yüklü programları da önemser değil mi? nginx gibi, vb ..
Thale

Döküm, orada bulunan her şeyle birlikte dosya sisteminin gerçek bir kopyasıdır. Birden fazlaya sahip olmadığınız sürece (koşarak kontrol edin mount) tek ihtiyacınız olan şey budur.
Bill Weiss,

Bunu anlıyorum-bash: /sbin/dump: No such file or directory
Lucas Bustamante

@LucasB Dökümü yüklemeniz gerekebilir. Ubuntu'da böyle bir şey yaparsınsudo apt-get install dump
pehrs

@pehrs .gzdosyayı kullanarak nasıl geri yüklersiniz ? Lütfen cevabınıza ekler misiniz? Gerçekten yardımı olurdu.
Kırmızı Şişe

10

Linux'tan Linux'a yedekleme yapmak istiyorsanız, çöplüğü kullanmazdım, çünkü yedekleme dosyasının içindeki bir şeye erişmeniz gerektiğinde sakıncalıdır. Tam sistem yedekleme yapmak için sadece rsyncSSH üzerinden kullanmak çoğu durumda iyi olacaktır:

rsync -aAXv --delete-after --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / user@server:backup-folder

Bu her şeyi önemli tutar ve ek adımlar atmadan yedeğe göz atmanıza izin verir.

Bunu --deleteaynı yedekleme klasörüne birden çok kez çalıştırıyorsanız, rsync'nin seçeneğini eklemek isteyebilirsiniz . Bu durumda kaynak yolun bitmediğinden emin olun /*, aksi takdirde bu seçenek yalnızca kaynak dizinin alt dizinlerindeki dosyalar üzerinde etkili olur, ancak kaynak dizinin içinde bulunan dosyalar üzerinde hiçbir etkisi olmaz.


3

Yedeklemeyi hangi ortamda saklayacaksınız? Ağ üzerinden yedekleme yapıyorsanız sshfs / nfs, hedefimi kaynak sunucuya bağlar ve şöyle bir şey çalıştırır:

tar cvjf /<remote_mnt>/<point>/source-030810-full.tar.bz2 /* --exclude=/proc --exclude=/dev --exclude=/sys --exclude=/tmp --exclude=/<remote_mnt>

Test edilmediğine dikkat edin, sadece genel düşüncem bundan daha fazlasını veya daha fazlasını dışlamak isteyebileceğinizi düşünün.


3

Yukarıda tarif edilen komutu kullanarak, ancak ftp kullanımı için değiştirilmiş komutunu kullanıyorum. Crontab örneği:

30 3 1 * * sudo /sbin/dump -0uan -f server-full-backup-root-`date '+%d-%B-%Y'`.dump / && gzip -1 /<path_to_backup_file>/server-full-backup-root-`date '+%d-%B-%Y'`.dump
50 * * * * lftp -f upload.x

upload.x ftp kimlik bilgilerini ve yükleme kurallarını içerir:

open -u user,password -p 21 192.168.1.1
mirror -c -e -R /<path_to_backup_folder> /<path_to_remote_folder_without_trailing_slash>
exit

Not 1: lftp, yeniden bağlanmaya çalışırken hedefe ulaşılamadığında yüksek CPU kullanımına neden olabilir. Bu gibi durumlarda birçok barındırma VPS'sinin sıfırlanabileceği için, sunucunuzun ana bilgisayar sahibi tarafından kapatılmasını önleyen lftp işlemini durdurmak için CPU yükünü izlemenizi öneririm. Lftp (ve dropbox) işlemleri için yük ortalaması> 1.33 örneği. Ne yazık ki, birisi sayesinde ilk kodun kaynağını hatırlamıyorum:

crontab */5 * * * * /home/cms/cron/loadmon.sh

#!/bin/bash
FROM_EMAIL_ADDRESS=cms
  trigger=1.33
  load=`cat /proc/loadavg | awk '{print $1}'`
  response=`echo | awk -v T=$trigger -v L=$load 'BEGIN{if ( L > T){ print "greater"}}'`
if [[ $response = "greater" ]]
then
  killall dropbox lftp
  nice -n 19 sh /cms/.dropbox-dist/dropboxd
  sar -q | mailx -s "High load on server - [ $load ]" r***s@gmail.com
fi

Not 2: Döküm yardımcı programı OpenVZ VPS veya diğer bazı sanal sunucularda çalışmayabilir.


2

Bacula'yı duydun mu?

Bacula, açık kaynak kodlu, kurumsal kullanıma hazır, bilgisayar verilerinin (veya sistem yöneticisinin) farklı türde bilgisayarlardan oluşan bir ağ üzerinden bilgisayar verilerinin yedeklenmesini, kurtarılmasını ve doğrulanmasını yönetmenizi sağlayan bir dizi bilgisayar programıdır. Kayıp veya hasarlı dosyaları bulmayı ve kurtarmayı kolaylaştıran birçok gelişmiş depolama yönetimi özelliği sunarken, Bacula'nın kullanımı nispeten kolay ve verimlidir. Teknik açıdan, açık kaynak kodlu, kurumsal kullanıma hazır, ağ tabanlı bir yedekleme programıdır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.