Które foldery należy uwzględnić w kopii zapasowej?


28

Jestem całkiem nowy w Ubuntu i chcę utworzyć kopię zapasową. Naprawdę nie jestem pewien, jakie pliki i foldery należy uwzględnić, więc jeśli przywrócę system, będzie tak, jak jest teraz. Nigdzie nie mogę znaleźć dobrych szczegółów na ten temat. Mam nadzieję, że ktoś może mi w tym pomóc. Czy można wykonać kopię zapasową wszystkiego, co jest teraz, więc w przypadku przywracania systemu nie muszę ponownie instalować programów i ustawień?


Tak, ja też chcę wiedzieć, jakie są ważne pliki, bez konieczności tworzenia kopii zapasowej całego dysku. Crontabs (root i użytkownik), exportfs itp.
Sridhar Sarnobat

Odpowiedzi:


25

Moje zestawy kopii zapasowych zawierają obecnie

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

Uwaga: dotyczy to serwera, więc tworzenie kopii zapasowych rzeczy takich jak / etc zapisuje całą moją konfigurację dla moich usług, mam serwery sieciowe w / srv (chociaż jeśli je masz w / var / www , nadal będą w tym zestawie kopii zapasowych) , Mam różne skrypty i rzeczy skonfigurowane w / usr / local itp. Tworzenie kopii zapasowej / home zamiast / home / myusername pozwala zachować wszystkich użytkowników. Jeśli wszystko, co chcesz zachować, to dane użytkownika, potrzebujesz tylko swojego katalogu domowego.


Dlaczego włączasz / root?
Mohammed Joraid,

2
Jest to katalog domowy użytkownika root, trzymam tam skrypty sysadmin, do tworzenia kopii zapasowych itp. Chociaż większość z nich przeniosłem do/usr/local/sbin/
thomasrutter

Czy istnieje potrzeba dołączenia .cachefolderu do katalogu domowego każdego użytkownika ( ~/.cache), czy też możemy to pominąć? Może to być dziesiątki tysięcy plików i wiele gigabajtów danych. Rozumiem, że jeśli go nie uwzględnimy, oznacza to po prostu, że aplikacje będą musiały ponownie generować tymczasowe, buforowane pliki przy następnym uruchomieniu, co wydłuża czas działania i czas uruchamiania, ale jest nieszkodliwe, prawda?
Gabriel Staples

1
Wykluczanie ~/.cachebrzmi dla mnie w porządku. Nie wykluczam tego osobiście, ale jeśli chcesz skrócić czas przesyłania / synchronizacji danych, może to być opcja.
thomasrutter

1
@GabrielStaples Nie używam, /optale jeśli go użyjesz, możesz dołączyć go do swoich kopii zapasowych. /optzwykle nie są używane przez samych dystrybutorów, pozostawiając to użytkownikowi, ale dostawcy aplikacji, którzy dostarczają system Linux z zainstalowaną na nim aplikacją innej firmy, mogą z niego korzystać /optlub jeśli opracujesz własne oprogramowanie, możesz go mieć /optzamiast tego/usr/local
thomasrutter

10

To, czego potrzebujesz do utworzenia kopii zapasowej, zależy od konkretnego systemu *.

To zajmie trochę pracy z twojej strony. Zacznij od zastanowienia się, co nie musi być archiwizowane. Najpierw spójrz na swój katalog główny, a następnie przejdź do tyłu.

Na przykład cd /; ls -Fdaje mi:

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, /mediaI /mntsą punkty montowania, więc nie ma potrzeby tworzenia kopii zapasowych.

/dev, /lost+found, /proc, /run, /sysI /tmpget automatycznie odtworzony po ponownym uruchomieniu. [Zgaduję linki: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@ uzyskać odtworzone na rozruchu ubuntu reinstall (nie jestem pewny które).]

W moim systemie /rootjest pusty (użyj, sudo -saby otworzyć powłokę jako użytkownik root, aby ją wyświetlić ... uważaj, aby exitnatychmiast po sprawdzeniu /root.)

/snapjest również pusty. Być może jest to punkt montowania.

/varzawiera zmienne dane, takie jak systemowe pliki dziennika, katalog buforowania poczty i drukarki oraz pliki przejściowe i tymczasowe. ”Teraz wykonuję kopię zapasową, z wyjątkiem / var / log. ref: http://www.tldp.org/LDP/Linux- Filesystem-Hierarchy / html / var.html )

/bin, /boot, /lib, /lib64, I /sbinprawdopodobnie będzie się przeładowane poprzez reinstalacji Ubuntu chyba robisz prace rozwojowe systemu lub coś podobnego. Możesz je wykonać kopię zapasową lub polegać na nowej instalacji, aby je odzyskać.

/homepowinien znajdować się we własnej kopii zapasowej. Będą chwile, kiedy będziesz chciał przywrócić tylko /home.

To pozostawia inne zmiany wprowadzone do systemu w /etc, /opt, /srv, i /usrktóre będą chcieli także tworzenie kopii zapasowych, razem lub osobno.

Oto kilka stron, które mogą pomóc zrozumieć te katalogi:

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


Podobny tok myślenia to: Załóżmy, że właśnie zainstalowałeś nową wersję Ubuntu. Czego potrzebujesz do utworzenia kopii zapasowej? Odpowiedź: nic. Nic jeszcze nie zmieniłeś, więc możesz po prostu ponownie zainstalować Ubuntu. Przywraca / bin, / etc, / root, / usr itp.

Więc jedynym powodem, dla którego warto wykonać kopię zapasową / bin, jest to, że zmieniłeś go lub do niego dodałeś. Częścią tworzenia kopii zapasowych jest więc zrozumienie, co jest gdzie i kiedy jest tworzone i modyfikowane. Po prostu wiedz, że reszta z nas również ma z tym problem.


***** I chociaż nie pytałeś, można zrobić pełne obrazy dysku lub partycji. Tworzenie kopii zapasowych i przywracanie zajmuje dużo czasu i może spowodować awarię systemu podczas pracy. I tak właśnie tworzyłem kopie zapasowe moich systemów Windows za pomocą Acronis. Jedną rzeczą, którą ci dostarczają, jest mapa partycji i obrazy z partycji innych niż Linux. Teraz je wykonuję przed reorganizacją partycji i przed przetestowaniem funkcji przywracania kopii zapasowych.


(Jestem bardzo otwarty na sugestie, w jaki sposób mogę to poprawić).


Jest to świetne, gdy koncentrujesz się na konfiguracjach i nie potrzebujesz plików binarnych, tak jak powiedziałeś, że można je zainstalować ponownie i jest to znacznie łatwiejsze
CTS_AE

5

Po ponownej instalacji komputera stacjonarnego wykonuję kopię zapasową

  • /etc
  • /var, Jestem zbyt leniwy, aby wykluczyć niektóre podfoldery
  • /opt

/homeznajduje się na osobnej partycji i codziennie wykonuje kopię zapasową .

Po ponownej instalacji przywracam części z kopii zapasowej, których naprawdę potrzebuję.

Dzięki tej strategii wszystkie moje konfiguracje, lokalne wiadomości e-mail i konfiguracje crontab są bezpieczne i muszę ponownie instalować tylko potrzebne aplikacje.

Moje osobiste skrypty są zapisywane w folderze domowym (codzienna kopia zapasowa, pamiętasz?), Dlatego nie używam /usr/local.


1
Czy to zadziała, jeśli wykonam kopię zapasową roota, to wszystko ?: ./
Zawieszono

To byłoby jak klon tego, czego teraz używam.
Zawieszony

Czego /optpotrzebujemy? tj .: dlaczego warto to zrobić?
Gabriel Staples

3

Większość ludzi po prostu kopii zapasowych ich katalogu domowego: /home/$USER/. Jeśli chcesz wykonać kopię zapasową plików konfiguracyjnych i ustawień, są one przechowywane w folderach i plikach w katalogu domowym, które zaczynają się na. (kropka). Zrób listę używanych pakietów (i umów PPA), a w razie potrzeby łatwo będzie ponownie zainstalować wszystkie pakiety. Lub użyj polecenia opisanego w tym komentarzu .

Deja Dup Backup to świetne narzędzie, które jest domyślnie dostępne w Ubuntu. Inne opcje obejmują wiersz poleceń (rsync, rsnapshot, rdiff-backup itp.).

Wreszcie, aby wykonać kopię zapasową całego dysku jako obrazu, sprawdź clonezilla .


2
Poza tym, z czym psny łączył odpowiedź, nie zaszkodzi stworzyć kopię zapasową całego katalogu / etc /, który przechowuje ustawienia systemowe. Jeśli wprowadziłeś jakieś zmiany, warto mieć archiwum, z którego można je pobrać.
Marcin Kamiński

2
Jeśli masz konfigurację crontabs, wykonaj kopię zapasową /var/spool/cron.
Ian Dunn

3

Zbierzmy tutaj listę plików. Napisałem ten post jako „wiki społeczności”.

Oczywiście różni się w zależności od osoby. Mój jest używany głównie jako serwer WWW i serwer NFS.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

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

Akcje NFS

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

sudoers

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

konfiguracja apache

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

autofs

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

fstab

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

zastępy niebieskie

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

samba

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

Zasady urządzenia USB (udev)

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

systemd

mlocate

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

Pliki uruchamiające Ubuntu („Menu Start”) .desktop, w tym. wszelkie niestandardowe, które skonfigurowałeś:

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

katalog domowy można zachować, jeśli wykonasz ponowną instalację ubuntu


1

Przypomnienie, jeśli korzystasz z DejaDup (lub czegokolwiek innego naprawdę), wyklucz również wszelkie foldery do przechowywania w chmurze (prawdopodobnie w domu), takie jak Dropbox. Jeśli płacisz za pamięć s3, może to być zły błąd.


0

Użyj kopii zapasowej Deja Dup. Jest dostarczany domyślnie. Przejdź do ustawień i zachowaj tylko folder główny ( /) jako „foldery do włączenia” i dodaj folder multimediów ( /media) w „folderach do zignorowania”.

Z tego powodu kopie zapasowe wszystkich programów zostaną utworzone w przypadku uszkodzenia systemu (rzadko), z wyjątkiem innych dysków, które zwykle pozostają nienaruszone.


0

Tworzę kopię zapasową tego, co jest dla mnie ważne, co można luźno zdefiniować jako moją własność intelektualną, a także wysiłki włożone w konfigurację Ubuntu, aby działała idealnie (dla mnie).

Kopia zapasowa jest uruchamiana codziennie rano o 4:00 lub za każdym razem, gdy Laptop wznawia pracę po zawieszeniu. Jest kontrolowany przez /etc/cron.dailyskrypt.

Najlepszym rodzajem kopii zapasowej jest praca poza witryną w przypadku pożaru lub powodzi, na której znajduje się komputer, dlatego korzystam z bezpłatnego konta gmail.com o pojemności 15 GB i przesyłam tam skompresowaną codzienną kopię zapasową.

Po kilku latach osiągnąłem 15 GB „darmowego” przydziału, więc napisałem skrypt przetwarzający kopie zapasowe na 180 dni, 78 tygodni, 36 miesięcy i 100 rocznych kopii zapasowych.

Oto codzienny skrypt kopii zapasowej tego, co jest dla mnie ważne:

#!/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
#       (/ubuntu/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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.