Yedeklemeye Hangi Klasörler Eklenecek?


28

Ubuntu'da oldukça yeniyim ve bir yedekleme yapmak istiyorum. Hangi dosya ve klasörleri içereceğimi gerçekten bilmiyorum, böylece sistemimi geri yüklersem şimdi olduğu gibi olacak. Bunun hiçbir yerinde iyi detayları bulamıyorum. Umarım biri bana bu konuda yardımcı olabilir. Her şeyi şimdi olduğu gibi yedeklemeniz mümkün mü, sistem geri yükleme durumunda programları ve ayarları yeniden yüklemem gerekmiyor mu?


Evet, ben de tüm dosyaları yedeklemek zorunda kalmadan önemli dosyaların ne olduğunu bilmek istiyorum. Crontabs (root and user), exportfs vb.
Sridhar Sarnobat

Yanıtlar:


25

Yedek kümelerim şu anda

/etc
/home
/root
/srv
/usr (/usr/local only, nothing else)
/var (except /var/run, /var/cache, /var/tmp)

Bunun bir sunucu için olduğunu unutmayın, bu yüzden / etc gibi şeyleri yedeklediğimde hizmetlerim için tüm konfigürasyonumu kaydederim, / srv içinde web sunucularım var (eğer / var / www'de varsa , hala bu yedekleme kümesinde olacaklardı) , Çeşitli komut dosyalarım ve / usr / local , vb. Ayarlanmış bazı şeyler var . / Home / myusername yerine / home yedekleme , böylece tüm kullanıcıları koruyabilirim. Saklamak istediğiniz tek şey kullanıcı verilerinizse, yalnızca ana dizininize ihtiyacınız olacaktır.


Neden / root dahil ediyorsunuz?
Mohammed Joraid

2
Kök kullanıcının ana dizinidir, bazı sysadmin betiklerini orada tutarım, yedekleme vs. için. Bunların çoğunu taşıdığım halde/usr/local/sbin/
thomasrutter,

.cacheKlasörü her kullanıcının giriş dizinine ( ~/.cache) dahil etmek gerekmiyor mu, yoksa bunu da ihmal edebilir miyiz? On binlerce dosya ve çok sayıda gigabayt veri olabilir. Anladığım kadarıyla eğer bunu dahil etmezsek, uygulamaların bir daha çalıştıklarında tekrar geçici, önbelleğe alınmış dosyaları yeniden oluşturmak zorunda oldukları anlamına gelir, bu çalışma zamanını ve başlangıç ​​zamanını arttırır ancak zararsızdır, değil mi?
Gabriel Staples

1
~/.cacheBana sesleri hariç tamam. Kendim hariç tutmuyorum ama veri aktarma / eşitleme süresini kısaltmak istiyorsanız, bu bir seçenek olabilir.
thomasrutter,

1
@ GabrielStaples Kullanmıyorum, /optancak kullanırsanız, yedeklemelerinize ekleyebilirsiniz . /optkullanıcıları kullanıcıya bırakacak şekilde dağıtımları tarafından kullanılma eğilimindedir, ancak üzerine kurulu üçüncü taraf uygulamaları yüklü olan bir Linux sistemi sağlayan uygulama satıcıları kullanabilir /optya da kendi yazılımınızı geliştirirseniz, /optbunun yerine sahip olabilirsiniz/usr/local
thomasrutter

10

Yedeklemeniz gereken sisteminize göre değişir *.

Yani bu senin halletmek için senin için biraz çalışacağım. Yok olanı bulmakla başlayın değil yedeklenmesi gerekir. İlk önce kök dizine bir göz atın ve sonra geriye doğru çalışın.

Örneğin, cd /; ls -Fbana verir:

bin/    initrd.img@      mnt/   snap/  vmlinuz@
boot/   initrd.img.old@  opt/   srv/   vmlinuz.old@
cdrom/  lib/             proc/  sys/
dev/    lib64/           root/  tmp/
etc/    lost+found/      run/   usr/
home/   media/           sbin/  var/

/cdrom,, /mediave /mntbağlama noktalarıdır, bu nedenle yedeklemeye gerek yoktur.

/dev, /lost+found, /proc, /run, /sysVe /tmpolsun oto yeniden başlatmada yeniden yarattı. [: Ben bağlantıları tahmin ediyorum /initrd.img@, /initrd.img.old@, /vmlinuz@(Emin hangi değilim), önyükleme ubuntu yeniden yükleme üzerine yeniden oluşturulan olsun /vmlinuz.old@.]

Sistemimde /rootboş ( sudo -sonu görmek için kök kullanıcı olarak bir kabuk açmak için kullanın ... exitincelemeden hemen sonra dikkatli olun /root.)

/snapayrıca boş. Belki de bir bağlantı noktasıdır.

/varSistem günlüğü dosyalarının, posta ve yazıcı biriktirme dizinleri ve geçici ve geçici dosyaları gibi değişken veri içeren "Ben şimdi geri it up, / var / log hariç ref:.. http://www.tldp.org/LDP/Linux- Dosya Sistemi-Hiyerarşi / html / var.html )

/bin, /boot, /lib, /lib64, Ve /sbinböyle sistem geliştirme çalışmaları ya da bir şey yapıyorsun sürece muhtemelen Ubuntu bir yeniden yükleme yoluyla yeniden alacak. Bunları yedekleyebilir veya kurtarmak için yeni bir yüklemeye güvenebilirsiniz.

/homekendi yedeğinde olmalı. Sadece geri yüklemek istediğiniz zamanlar olacaktır /home.

Eğer sisteminizde yaptığınız bu yapraklar diğer değişiklikler /etc, /opt, /srvve /usrya birlikte ya da ayrı ayrı, aynı zamanda yedekleme isteyeceksiniz hangi.

Bu dizinleri anlamanıza yardımcı olabilecek birkaç sayfa:

http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/the-root-directory.html http://www.tldp.org/LDP/intro-linux/html/sect_03_01.html#sect_03_01_03


İlgili bir düşünce dizisi: Yeni bir Ubuntu kurduğunuzu söyleyin. Yedeklemek için neye ihtiyacın var? Cevap: hiçbir şey. Henüz hiçbir şeyi değiştirmediniz, bu yüzden basitçe Ubuntu'yu yeniden yükleyebilirsiniz. / Bin, / etc, / root, / usr, vb. Geri yükler.

Bu nedenle, yedekleme / depolamak isteyebileceğiniz tek neden, değiştirmiş veya eklenmiş olmanızdır. Dolayısıyla, yedeklemenin bir parçası nerede ve ne zaman yaratıldığını ve değiştirildiğini anlamaktır. Sadece geri kalanımızın da bununla mücadele ettiğini bilin.


***** Ve sormamış olsanız da, biri tam disk veya bölüm görüntüleri oluşturabilir. Bunların yedeklenmesi ve geri yüklenmesi çok zaman alır ve bu işlem devam ederken sisteminizi durdurabilir. Ve Acronis kullanarak Windows sistemlerimi bu şekilde yedeklerdim. Size sağladıkları tek şey bir bölüm haritası ve linux olmayan bölümlerden gelen görüntüler. Bunları bölümleri yeniden düzenlemeden önce ve yedekleme geri yükleme işlevlerimi test etmeden önce yapıyorum.


(Bunu nasıl daha iyi hale getirebileceğim konusunda önerilere açığım.)


Konfigürasyonlara odaklandığınızda ve ikili dosyalara ihtiyaç duymadığınızda, tekrar kurulabileceklerini söylediğiniz ve bu durum dışa aktarmak ve tekrar yüklemek için çok daha hafif olan askubuntu.com/a/55906/104223
CTS_AE

5

Masaüstü sistemimi yeniden yüklersem yedeklerim

  • /etc
  • /var, Bazı alt klasörleri dışlamak için çok tembelim
  • /opt

/homeayrı bir bölmededir ve her gün bir yedeği vardır .

Yeniden yükledikten sonra, gerçekten ihtiyaç duyduğum parçaları yedeklememden geri yüklerim.

Bu strateji ile tüm konfigürasyonlarım, yerel postalarım ve crontab konfigürasyonları güvenlidir ve sadece gerekli uygulamalarımı yeniden yüklemem gerekiyor.

Kişisel komut dosyalarım ana klasörüme kaydedilir (günlük yedekleme, hatırladın mı?), Bu yüzden kullanmıyorum /usr/local.


1
Kök yedeklersem işe yarayacak mı, her şey bu mu ?: ./
askıya

Bu şimdi kullanıyorum ne bir klonu gibi olurdu.
askıya

Ne var /optihtiyacımız olduğunu? yani: neden geri aldın?
Gabriel Staples

3

Çoğu kişi sadece kendi dizinini yedekler /home/$USER/. Yapılandırma dosyalarını ve ayarlarını yedeklemek istiyorsanız, bunlar ana dizininizdeki a ile başlayan klasörlerde ve dosyalarda saklanır. (nokta). Kullandığınız paketlerin bir listesini yapın (ve PPA'lar) ve ihtiyacınız olan tüm paketlerinizi yeniden yüklemek kolay olacaktır. Veya bu açıklamada açıklanan komutu kullanın .

Deja Dup Backup, Ubuntu'da varsayılan olarak gelen harika bir araçtır. Diğer seçenekler arasında komut satırı (rsync, rsnapshot, rdiff-backup, vb.) Bulunur.

Son olarak, tüm diski bir resim olarak yedeklemek için klonezillaya bakın .


2
Ayrıca, psny cevabının neye bağlı olduğuna ek olarak, sistem çapında ayarları saklayan bütün / etc / dizininin yedeğini almaktan zarar gelmez. Orada bazı değişiklikler yaptıysanız, bu değişiklikleri almak için bir arşiviniz olması yararlı olacaktır.
Marcin Kaminski

2
Herhangi bir crontab kurulumunuz varsa, o zaman da yedekleyin /var/spool/cron.
Ian Dunn

3

Burada bir dosya listesi alalım. Bu yazıyı "topluluk wiki" yaptım.

Tabii ki, kişiden kişiye değişir. Mine, çoğunlukla bir web sunucusu ve NFS sunucusu olarak kullanılır.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

sudo rsync -a --relative /var/spool/cron/crontabs .

NFS paylaşımları

sudo rsync -a --relative /etc/exports .

sudoers

sudo rsync -a --relative /etc/sudoers .

apache yapılandırması

sudo rsync -a --relative /etc/apache2/apache2.conf .

autofs

sudo rsync -a --relative /etc/auto* .

fstab

sudo rsync -a --relative /etc/fstab .

ana bilgisayarlar

sudo rsync -a --relative /etc/hosts .

samba

sudo rsync -a --relative /etc/samba/smb.conf .

USB Aygıt (udev) kuralları

sudo rsync -a --relative /etc/udev .

systemd

mlocate

sudo rsync -a --relative /etc/updatedb.conf .

Ubuntu başlatıcısı ("Başlat Menüsü"). Masaüstü dosyaları, dahil. belirlediğiniz herhangi bir özel

sudo rsync -a --relative /usr/share/applications .

Bir ubuntu yeniden yaparsanız ev dir korunabilir


1

Sadece bir hatırlatma DejaDup kullanıyorsanız (veya gerçekten başka bir şey kullanıyorsanız), Dropbox gibi herhangi bir bulut depolama klasörünü de (evinizde olabilir) hariç tutun. S3 depolama için ödeme yapıyorsanız, bu kötü bir hata olabilir.


0

Deja Dup yedeğini kullanın. Varsayılan olarak sağlanır. Ayarlara gidin ve yalnızca kök klasörü ( /) "dahil edilecek klasörler" olarak saklayın ve /media"yoksayılacak klasörler" içine ortam klasörü ( ) ekleyin .

Bu nedenle, normalde etkilenmeyen diğer sürücüleriniz hariç, sistemin zarar görmesi durumunda (nadir) tüm programlarınız yedeklenir.


0

Benim için önemli olanı, fikri mülkiyetim olarak gevşek bir şekilde tanımlayabileceğimin yanı sıra Ubuntu'yu mükemmel şekilde çalışacak şekilde (benim için) harcayan çabaları destekliyorum.

Yedeklemeyi her sabah saat 4: 00'te veya Laptop askıya alındığı zaman çalıştırıyorum. /etc/cron.dailyKomut dosyası ile kontrol edilir .

En iyi yedekleme türü, bilgisayarın oturduğu yerde yangın veya sel durumunda tesis dışıdır, bu nedenle 15GB ücretsiz gmail.com hesabımdan faydalanır ve orada sıkıştırılmış bir günlük yedekleme gönderirim.

Birkaç yıl sonra 15 GB'lık "ücretsiz" kotanıza çarptım, böylece yedeklemeleri 180 gün, 78 hafta, 36 ay ve 100 yıllık yedeklemeye geri dönüştürecek bir komut dosyası yazdım.

İşte benim için önemli olanın günlük yedekleme betiği :

#!/bin/bash

# NAME: daily-backup.sh
# PATH: /mnt/e/bin
# DESC: Backup scripts, documents and configuration files to .tar

# DATE: July 11, 2017. Modified July 7, 2019.

HomeDir="/home/USER_NAME"                    # Required for cron compatibility
EmailAddr="EMAIL_NAME@gmail.com"

# PARM: 1=backup file name. Extension .tar.gz automatically appended.

# NOTE: To include MBR (Master Boot Record) in backup create an image using:
#       sudo dd if=/dev/sda of="$HOME/.mbr.sav" bs=512 count=1

# NOTE: CLONE CURRENT INSTALLATION TO NEW MACHINE
#       =========================================

#       To restore use Live USB to install Ubuntu alongside Windows 10
#       Connect to network with password xxxxxxxxx

#       Install Google Chrome
#       (https://askubuntu.com/questions/510056/how-to-install-google-chrome):

#           wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub 
#               | sudo apt-key add
#           echo 'deb [arch=amd64] http://dl.google.com/linux/chrome/deb/
#               stable main' | sudo tee /etc/apt/sources.list.d/google-chrome.list
#           sudo apt update
#           sudo apt install google-chrome-stable

#       Open gmail.com and download attachment `$1` which is usually called
#           Backup-yymmdd-DayOfWeekName.tar

#       Make missing home/bin directory which tar doesn't create automatically:
#           mkdir ~/bin

#       Restore the daily backup using:
#           sudo tar -xvf Backup-yymmdd-DayFfWeekName.tar -C /
#           yar -xvf Backup-yymmdd-DayFfWeekName.tar -C /

#       Patch /etc/default/grub with new machine parameters, ie for nvme use:
#           acpiphp.disable=1

#       Use `sudo apt install aptitude-common`
#       Clone packages using `aptitude-create-state-bundle` on Source
#       Copy state-bundle.tar file from Source to Target machine
#       Restore packages using `aptitude-run-state-bundle` on Target

#       Manually copy ~/Pictures, ~/Videos, etc. not in daily backup.

#       sudo update-grub        # NVMe suspend/resume acpiphp.disable=1
#       sudo update-initramfs   # to get plymouth sunrise splash screen

if [[ $# -ne 1 ]]; then
    echo 'One argument required for file name, e.g. "Backup-2017-10-21-Saturday"'
    echo '.tar will automatically be added as a file extension'
    exit 1
fi

Filename="$1.tar"

cd $HomeDir ||
    exit 1

dpkg --get-selections > .packages       # List of installed applications

tar -cvpf "$Filename" bin               # create .tar & add user scripts
tar -rvpf "$Filename" .config/autostart # autostart programs configuration
tar -rvpf "$Filename" /usr/local/bin    # add global root-based scripts
tar -rvpf "$Filename" /etc/cron*        # crontab, cron.d, cron.daily, etc
tar -rvpf "$Filename" /etc/system*      # systemd files: login.conf, etc.
tar -rvpf "$Filename" /lib/systemd/system-sleep
tar -rvpf "$Filename" /etc/rc.local     # Startup script: calls zaprestore.
tar -rvpf "$Filename" /etc/sudoers      # 120 minute sudo, stars in password
tar -rvpf "$Filename" /etc/environment  # PATH backup
tar -rvpf "$Filename" /etc/default/grub # bootstrap loader
#July 20, 2018 - /boot/grub takes 5MB+
#tar -rvpf "$Filename" /boot/grub        # Custom grub fonts and splash...
tar -rvpf  "$Filename" /usr/share/plymouth   # ... screen (plymouth)
#included above tar -rvpf "$Filename" /usr/share/plymouth/themes/earth-sunrise/
tar -rvpf "$Filename" /usr/share/grub/themes/Tuxkiller2/
tar -rvpf "$Filename" /etc/grub.d       # 00_header, etc. changes
tar -rvpf "$Filename" Desktop           # files and links on desktop
tar -rvpf "$Filename" Documents/*.od*   # Libre Office: *.ods, *.odt, etc.

# Trusted keys to install from third party PPAs
tar -rvpf "$Filename" /etc/apt/trusted.gpg
tar -rvpf "$Filename" /etc/apt/trusted.gpg.d

# Sources for repositories - 1) Main single file - 2) directory of files
tar -rvpf "$Filename" /etc/apt/sources.list
tar -rvpf "$Filename" /etc/apt/sources.list.d

# find all $HOME/.config files and add to .tar
find .* -maxdepth 0 -type f -exec tar -rvf "$Filename" {} +

# Nautilus custom scripts
tar -rvpf "$Filename" .local/share/nautilus/scripts

# /etc/udev rules
tar -rvpf "$Filename" /etc/udev/rules.d

# /etc/rc.local
tar -rvpf "$Filename" /etc/rc.local

# /etc/X11/xorg.conf.d
tar -rvpf "$Filename" /etc/X11/xorg.conf.d

# /mnt/e - shared WSL + Linux
tar -rvpf "$Filename" /mnt/e/bin
tar -rvpf "$Filename" /mnt/e/Documents

# ~/eyesome - Development version
tar -rvpf "$Filename" eyesome

# ~/gmail - Python and Bash scripts but NOT huge data files
tar -rvpf "$Filename" gmail/*.py
tar -rvpf "$Filename" gmail/*.sh
tar -rvpf "$Filename" gmail/go
tar -rvpf "$Filename" gmail/BackupSets
tar -rvpf "$Filename" gmail/BackupDays

echo "Complete file list with sizes..."
tar -tvf "$Filename" > BackupLog    # list filenames and sizes
chmod a+w BackupLog                 # give user delete access

echo "Compressing with gzip..."
gzip "$Filename"
Filename="$Filename.gz"

echo "Emailing: $EmailAddr"

# From: https://internetlifeforum.com/gmail/2251-gmail-some-file-types-blocked-fix-how-go-around/
# cat archive.tar.gz | base64 > file
# then i sent the file via email:
# echo "Base64 encoded file" | mutt -a file -s subject -- mymail@gmail.com
# then mail was delivered properly! Then when one need to get readable archive 
# again, he need to decode it by base64. In my case i do it via linux command line:
# cat file | base64 -d > decodedarchive.tar.gz

Filename64="$Filename.64"
cat "$Filename" | base64 > "$Filename64"
mail -a "$Filename64" -s "$Filename64" "$EmailAddr" < BackupLog

ls -la "$Filename" "$Filename64"
rm     "$Filename" "$Filename64"

exit 0
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.