Welche Ordner sollten in die Sicherung einbezogen werden?

28

Ich bin ziemlich neu in Ubuntu und möchte ein Backup erstellen. Ich bin mir wirklich nicht sicher, welche Dateien und Ordner ich hinzufügen soll, damit mein System so bleibt, wie es jetzt ist, wenn ich es wieder herstelle. Ich kann anscheinend nirgendwo gute Details finden. Hoffentlich könnte mir jemand dabei helfen. Ist es möglich, alles so zu sichern, wie es jetzt ist? Im Falle einer Systemwiederherstellung muss ich Programme und Einstellungen nicht neu installieren.

Jason
quelle
Ja, ich möchte auch wissen, was die wichtigen Dateien sind, ohne das gesamte Laufwerk sichern zu müssen. Crontabs (root und Benutzer), exportfs usw.
Sridhar Sarnobat

Antworten:

25

Meine Backup-Sets enthalten derzeit

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

Beachten Sie, dass dies für einen Server gilt. Wenn Sie also Dinge wie / etc sichern, wird meine gesamte Konfiguration für meine Dienste gespeichert. Ich habe Webserver in / srv (wenn Sie sie jedoch in / var / www haben , befinden sie sich immer noch in diesem Sicherungssatz). , Ich habe verschiedene Skripte und Dinge in / usr / local usw. eingerichtet. Das Sichern von / home anstelle von / home / myusername ist so, dass ich alle Benutzer behalten kann. Wenn Sie nur Ihre Benutzerdaten behalten möchten, benötigen Sie nur Ihr Home-Verzeichnis.

thomasrutter
quelle
Warum schließt du / root ein?
Mohammed Joraid
2
Es ist das Home-Verzeichnis des Root-Benutzers, ich behalte dort einige Sysadmin-Skripte für Backups usw. Obwohl ich die meisten davon nach/usr/local/sbin/
thomasrutter verschoben habe.
Muss der .cacheOrdner in das Basisverzeichnis jedes Benutzers ( ~/.cache) aufgenommen werden, oder können wir das auch weglassen? Es können Zehntausende von Dateien und viele Gigabyte an Daten sein. Nach meinem Verständnis bedeutet dies, dass Anwendungen beim nächsten Ausführen temporäre, zwischengespeicherte Dateien erneut generieren müssen, was die Laufzeit und die Startzeit erhöht, aber harmlos ist, oder?
Gabriel Staples
1
Ausgenommen ~/.cacheklingt für mich ok. Ich schließe es selbst nicht aus, aber wenn Sie die Datenübertragungs- / Synchronisierungszeit verkürzen möchten, kann dies eine Option sein.
Thomasrutter
1
@ GabrielStaples Ich verwende es nicht, /optaber wenn Sie es verwenden, können Sie es in Ihre Backups aufnehmen. /optneigt dazu , durch distros ungenutzt zu sein , sich es dem Benutzer zu verlassen, aber Anbieter von Anwendungen , die ein Linux - System mit ihren Drittanbieter - App darauf installiert bieten könnte verwenden /optoder wenn Sie Ihre eigene Software entwickeln Sie es in kann /optstatt/usr/local
thomasrutter
10

Was Sie sichern müssen, hängt von Ihrem jeweiligen System ab *.

Das wird also ein wenig Arbeit von Ihnen erfordern, um es zu klären. Beginnen Sie damit, herauszufinden, was nicht gesichert werden muss. Schauen Sie sich zuerst Ihr Stammverzeichnis an und arbeiten Sie dann rückwärts.

Zum Beispiel cd /; ls -Fgibt mir:

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, /mediaUnd /mntsind Einhängepunkte so nicht brauchen Backup zu tun.

/dev, /lost+found, /proc, /run, /sysUnd /tmpget auto beim Neustart neu erstellt. [Ich vermute , die Links: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@ beim Booten ubuntu Neuinstallation neu erstellt (ich bin nicht sicher , welche).]

Auf meinem System /rootist leer (verwenden Sie sudo -s, um eine Shell als Root-Benutzer zu öffnen, um sie anzuzeigen. Achten Sie darauf, dass Sie sie exitsofort nach der Inspektion öffnen /root.)

/snapist auch leer. Vielleicht ist es ein Mount Point.

/varenthält variable Daten wie System - Logging - Dateien, E - Mail und Drucker - Spool - Verzeichnisse und transiente und temporäre Dateien“Ich habe es jetzt wieder nach oben, mit Ausnahme von / var / log Ref . :. http://www.tldp.org/LDP/Linux- Dateisystem-Hierarchie / html / var.html )

/bin, /boot, /lib, /lib64, Und /sbinvermutlich wird über eine erneute Installation von Ubuntu wieder geladen werden , wenn Sie die Systementwicklung arbeiten oder so etwas tun. Sie können diese entweder sichern oder sich auf eine Neuinstallation verlassen, um sie wiederherzustellen.

/homesollte in seiner eigenen Sicherung sein. Es wird Zeiten geben, in denen Sie nur wiederherstellen möchten /home.

Das lässt andere Änderungen , die Sie in Ihrem System vorgenommen haben /etc, /opt, /srv, und /usrdie Sie auch sichern möchten, entweder zusammen oder einzeln.

Hier sind einige Seiten, die zum Verständnis dieser Verzeichnisse beitragen könnten:

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


Eine verwandte Denkrichtung ist: Angenommen, Sie haben gerade ein neues Ubuntu installiert. Was müssten Sie sichern? Antwort: nichts. Sie haben noch nichts geändert, sodass Sie Ubuntu einfach neu installieren können. Es stellt / bin, / etc, / root, / usr usw. wieder her.

Der einzige Grund, warum Sie ein Backup / bin erstellen möchten, ist, dass Sie es geändert oder hinzugefügt haben. Ein Teil der Sicherung besteht darin, zu verstehen, wo und wann sie erstellt und geändert wird. Wisst einfach, dass auch der Rest von uns damit zu kämpfen hat.


***** Und obwohl Sie nicht gefragt haben, können Sie vollständige Datenträger- oder Partitionsimages erstellen. Das Sichern und Wiederherstellen nimmt viel Zeit in Anspruch und kann dazu führen, dass Ihr System während dieser Arbeit nicht mehr funktioniert. Und so habe ich meine Windows-Systeme mit Acronis gesichert. Das einzige, was sie Ihnen bieten, ist eine Partitionsübersicht und Images von Nicht-Linux-Partitionen. Ich mache diese jetzt, bevor ich Partitionen reorganisiere und bevor ich meine Backup-Restore-Funktionen teste.


(Ich bin sehr offen für Vorschläge, wie ich das verbessern könnte.)

Elliptische Ansicht
quelle
Dies ist großartig, wenn Sie sich auf Konfigurationen konzentrieren und keine Binärdateien benötigen, wie Sie sagten, sie können erneut installiert werden, und dies ist viel einfacher
CTS_AE
5

Wenn ich mein Desktopsystem neu installiere, sichere ich

  • /etc
  • /varIch bin zu faul, um einige Unterordner auszuschließen
  • /opt

/homebefindet sich auf einer separaten Partition und wird täglich gesichert .

Nach der Neuinstallation stelle ich die Teile aus meiner Sicherung wieder her, die ich wirklich brauche.

Mit dieser Strategie sind alle meine Konfigurationen, lokalen E-Mails und Crontab-Konfigurationen sicher und ich muss nur meine benötigten Anwendungen neu installieren.

Meine persönlichen Skripte werden in meinem Home-Ordner gespeichert (tägliches Backup, erinnerst du dich?), Daher verwende ich keine /usr/local.

AB
quelle
1
Funktioniert es, wenn ich Root-Backups mache ?: ./
Angehalten
Das wäre wie ein Klon von dem, was ich jetzt benutze.
Angehalten
Was ist drin /opt, was wir brauchen? dh: warum sichern Sie es?
Gabriel Staples
3

Die meisten Menschen nur Backup ihr Home - Verzeichnis: /home/$USER/. Wenn Sie die Konfigurationsdateien und -einstellungen sichern möchten, werden diese in Ordnern und Dateien in Ihrem Ausgangsverzeichnis gespeichert, die mit a beginnen. (Punkt). Erstellen Sie eine Liste der von Ihnen verwendeten Pakete (und PPAs), und es ist einfach, alle Ihre Pakete neu zu installieren, falls Sie sie benötigen. Oder verwenden Sie den in diesem Kommentar beschriebenen Befehl .

Deja Dup Backup ist ein großartiges Tool, das standardmäßig in Ubuntu enthalten ist. Weitere Optionen sind die Befehlszeile (rsync, rsnapshot, rdiff-backup usw.).

Um die gesamte Festplatte als Image zu sichern, checken Sie Clonezilla aus .

philshem
quelle
2
Zusätzlich zu dem, womit die Antwort psny verknüpft ist, würde es nicht schaden, ein Backup des gesamten / etc / -Verzeichnisses zu erstellen, in dem systemweite Einstellungen gespeichert sind. Wenn Sie dort einige Änderungen vorgenommen haben, wäre es hilfreich, ein Archiv zu haben, um diese Änderungen zu erhalten.
Marcin Kaminski
2
Wenn Sie Crontabs eingerichtet haben, dann sichern Sie /var/spool/cronauch.
Ian Dunn
3

Lassen Sie uns hier eine Liste von Dateien sammeln. Ich habe diesen Beitrag "Community-Wiki" erstellt.

Natürlich ist es von Person zu Person unterschiedlich. Meins wird hauptsächlich als Webserver und NFS-Server verwendet.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

Crontabs

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

NFS-Freigaben

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

Sudoer

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

apache config

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

autofs

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

fstab

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

Gastgeber

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

Samba

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

Regeln für USB-Geräte (udev)

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

systemd

mlocate

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

Ubuntu Launcher ("Start Menu") .desktop Dateien, inkl. alle benutzerdefinierten, die Sie eingerichtet haben:

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

Das Ausgangsverzeichnis kann beibehalten werden, wenn Sie eine Ubuntu-Neuinstallation durchführen

Sridhar Sarnobat
quelle
1

Nur eine Erinnerung, wenn Sie DejaDup verwenden (oder etwas wirklich anderes), schließen Sie auch Cloud-Speicherordner aus (wahrscheinlich in Ihrem Zuhause), wie z. B. Dropbox. Wenn Sie für s3-Speicher bezahlen, könnte dies ein schwerer Fehler sein.

kdford
quelle
0

Verwenden Sie das Deja Dup-Backup. Es wird standardmäßig bereitgestellt. Gehen Sie zu den Einstellungen und behalten Sie nur den Stammordner ( /) als "Ordner zum Einschließen" bei und fügen Sie den Medienordner ( /media) unter "Ordner zum Ignorieren" hinzu.

Aus diesem Grund werden alle Ihre Programme im Falle einer (seltenen) Systembeschädigung gesichert, mit Ausnahme Ihrer anderen Laufwerke, die normalerweise nicht betroffen sind.

VedVals
quelle
0

Ich sichere mir, was für mich wichtig ist und was sich lose als mein geistiges Eigentum definieren lässt. Außerdem muss Ubuntu so konfiguriert werden, dass es (für mich) einwandfrei funktioniert.

Ich habe die Sicherung jeden Morgen um 4:00 Uhr oder wenn Laptop aus dem Suspend fortgesetzt wird. Es wird durch ein /etc/cron.dailySkript gesteuert .

Die beste Art der Sicherung ist die Offsite-Sicherung im Falle eines Brandes oder einer Überschwemmung, wenn sich der Computer befindet. Daher nutze ich das kostenlose 15-GB-Konto von gmail.com und sende dort eine komprimierte tägliche Sicherung.

Nach ein paar Jahren habe ich meine "kostenlose" Quote von 15 GB erreicht und ein Skript geschrieben, um Backups in 180 Tagen, 78 Wochen, 36 Monaten und 100 jährlichen Backups zu recyceln.

Hier ist das tägliche Backup-Skript für das, was mir wichtig ist:

#!/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 protected]"

# 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 -- [email protected]
# 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
WinEunuuchs2Unix
quelle