Quali cartelle includere nel backup?


28

Sono abbastanza nuovo su Ubuntu e voglio creare un backup. Non sono davvero sicuro di quali file e cartelle includere, quindi se ripristino il mio sistema sarà come è ora. Non riesco a trovare buoni dettagli di questo da nessuna parte. Spero che qualcuno possa aiutarmi con questo. È possibile eseguire il backup di tutto come è adesso, quindi in caso di ripristino del sistema non è necessario reinstallare programmi e impostazioni?


Sì, anche io voglio sapere quali sono i file importanti senza dover eseguire il backup dell'intero disco. Crontabs (root e utente), exportfs ecc.
Sridhar Sarnobat,

Risposte:


25

I miei set di backup contengono attualmente

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

Nota che questo è per un server, quindi il backup di cose come / etc salva tutta la mia configurazione per i miei servizi, ho server web in / srv (anche se se li hai in / var / www , sarebbero ancora in questo set di backup) , Ho vari script e cose impostati in / usr / local , ecc. Il backup di / home invece di / home / myusername è in modo da poter preservare tutti gli utenti. Se tutto ciò che vuoi conservare sono i tuoi dati utente, hai solo bisogno della tua home directory.


Perché stai includendo / root?
Mohammed Joraid,

2
È la home directory dell'utente root, ho alcuni script di sysadmin lì dentro, per il backup ecc. Anche se ho spostato la maggior parte di questi in/usr/local/sbin/
thomasrutter,

È necessario includere la .cachecartella nella home directory di ciascun utente ( ~/.cache) o possiamo ometterla anche noi? Può essere decine di migliaia di file e molti gigabyte di dati. La mia comprensione è che se non lo includiamo significa solo che le applicazioni devono rigenerare nuovamente i file temporanei memorizzati nella cache la prossima volta che vengono eseguiti, il che aumenta il tempo di esecuzione e il tempo di avvio ma è innocuo, giusto?
Gabriel Staples,

1
L'esclusione ~/.cachesuona bene per me. Non lo escludo da solo, ma se si desidera ridurre i tempi di trasferimento / sincronizzazione dei dati, questa può essere un'opzione.
thomasrutter,

1
@GabrielStaples Non lo uso, /optma se lo si utilizza, è possibile includerlo nei backup. /opttende a non essere utilizzato dalle distribuzioni stesse lasciandolo all'utente, ma i fornitori di applicazioni che forniscono un sistema Linux con la propria app di terze parti installata su di esso potrebbero usare /opto se sviluppi il tuo software potresti averlo al /optposto di/usr/local
thomasrutter

10

Ciò di cui hai bisogno per il backup dipende dal tuo particolare sistema *.

Quindi ci vorrà un po 'di lavoro da parte tua per risolvere. Inizia a capire cosa non è necessario eseguire il backup. Per prima cosa dai un'occhiata alla tua directory principale, quindi lavora all'indietro.

Ad esempio, cd /; ls -Fmi dà:

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, /mediae /mntsono punti di montaggio, quindi non è necessario il backup.

/dev, /lost+found, /proc, /run, /sysE /tmprecuperi automatici ricreato al riavvio. [Sto indovinando i link: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@~~MD~~aux~~3rd ottenere ricreati al boot ubuntu reinstallare (non sono sicuro che).]

Sul mio sistema /rootè vuoto (usare sudo -sper aprire una shell come utente root per vederlo ... fare attenzione a exitsubito dopo aver ispezionato /root.)

/snapè anche vuoto. Forse è un punto di montaggio.

/varcontiene dati variabili come file di registrazione del sistema, directory di spool di posta e stampanti e file temporanei e temporanei. "Ora eseguo il backup, ad eccezione di / var / log. ref: http://www.tldp.org/LDP/Linux- Filesystem-Hierarchy / html / var.html )

/bin, /boot, /lib, /lib64, E /sbinpresumibilmente andranno ricaricato tramite una reinstallazione di Ubuntu a meno che non si sta facendo il lavoro di sviluppo di sistema o qualcosa di simile. È possibile eseguire il backup di questi o fare affidamento su una nuova installazione per recuperarli.

/homedovrebbe essere nel proprio backup. Ci saranno momenti in cui vorrai ripristinare solo /home.

Che lascia le altre modifiche apportate al sistema in /etc, /opt, /srv, e /usrche si vorranno anche il backup, insieme o singolarmente.

Ecco un paio di pagine che potrebbero aiutare a comprendere queste directory:

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


Una linea di pensiero correlata è: supponiamo che tu abbia appena installato un nuovo Ubuntu. Di cosa avresti bisogno per il backup? Risposta: niente. Non hai ancora cambiato nulla, quindi puoi semplicemente reinstallare Ubuntu. Ripristina / bin, / etc, / root, / usr, ecc.

Quindi l'unico motivo per cui potresti voler eseguire il backup / bin è perché l'hai modificato o aggiunto ad esso. Quindi parte del backup è capire cosa è dove e quando viene creato e modificato. Sappi solo che anche il resto di noi lotta con questo.


***** E, anche se non hai chiesto, si possono creare immagini complete di disco o di partizione. Questi impiegano molto tempo per il backup e il ripristino e possono interrompere il sistema mentre il lavoro procede. Ed è il modo in cui eseguivo il backup dei miei sistemi Windows usando Acronis. L'unica cosa che ti forniscono è una mappa delle partizioni e immagini da partizioni non Linux. Ora li eseguo prima di riorganizzare le partizioni e prima di testare le funzioni di ripristino del backup.


(Sono molto aperto ai suggerimenti su come potrei migliorare.)


Questo è fantastico quando ti concentri sulle configurazioni e non hai bisogno dei binari, come hai detto che possono essere installati di nuovo e questo è molto più leggero da esportare e da reinstallare askubuntu.com/a/55906/104223
CTS_AE

5

Se reinstallo il mio sistema desktop, eseguo il backup

  • /etc
  • /var, Sono troppo pigro per escludere alcune sottocartelle
  • /opt

/homesi trova su una partizione separata e ogni giorno viene eseguito un backup .

Dopo la reinstallazione, ripristino le parti dal mio backup, di cui ho davvero bisogno.

Con questa strategia, tutte le mie configurazioni, mail locali e configurazioni crontab sono sicure e devo reinstallare solo le mie applicazioni necessarie.

I miei script personali vengono salvati nella mia cartella home (backup giornaliero, ricordi?), Quindi non lo uso /usr/local.


1
Funzionerà se eseguo il backup di root, è tutto ?: ./
Sospeso il

Sarebbe come un clone di quello che sto usando ora.
Sospeso il

Di cosa /optabbiamo bisogno? cioè: perché eseguirne il backup?
Gabriel Staples

3

La maggior parte delle persone semplicemente eseguire il backup dei home directory: /home/$USER/. Se si desidera eseguire il backup dei file e delle impostazioni di configurazione, questi vengono archiviati in cartelle e file nella directory principale che iniziano con a. (punto). Crea un elenco di pacchetti che usi (e PPA) e sarà facile reinstallare tutti i pacchetti di cui hai bisogno. In alternativa, utilizzare il comando descritto in questo commento .

Deja Dup Backup è un ottimo strumento che viene fornito di default su Ubuntu. Altre opzioni includono la riga di comando (rsync, rsnapshot, rdiff-backup, ecc.).

Infine, per eseguire il backup dell'intero disco come immagine, controlla clonezilla .


2
Inoltre, oltre a ciò a cui era collegata la risposta psny, non sarebbe male creare un backup dell'intera directory / etc / che memorizza le impostazioni di sistema. Se hai apportato alcune modifiche lì, sarebbe utile disporre di un archivio per ottenerle.
Marcin Kaminski,

2
Se hai qualche configurazione crontabs, esegui /var/spool/cronanche il backup .
Ian Dunn,

3

Raccogliamo un elenco di file qui. Ho pubblicato questo post "wiki della community".

Certo, varia da persona a persona. Il mio viene utilizzato principalmente come server Web e server NFS.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

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

Condivisioni NFS

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

sudoers

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

config apache

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

autofs

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

fstab

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

padroni di casa

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

samba

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

Regole dispositivo USB (udev)

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

systemd

mlocate

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

Ubuntu launcher ("Start Menu") .desktop file, incl. quelli personalizzati che hai impostato:

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

home dir può essere preservato se si esegue una reinstallazione di Ubuntu


1

Solo un promemoria se stai usando DejaDup (o qualsiasi altra cosa davvero), escludi anche qualsiasi cartella di archiviazione cloud (probabilmente a casa tua), come Dropbox. Se stai pagando per l'archiviazione di s3 questo potrebbe essere un brutto errore.


0

Usa il backup Deja Dup. Viene fornito per impostazione predefinita. Vai alle impostazioni e mantieni solo la cartella principale ( /) come "cartelle da includere" e aggiungi la cartella multimediale ( /media) in "cartelle da ignorare".

Per questo motivo, verrà eseguito il backup di tutti i programmi in caso di danni al sistema (raro) ad eccezione delle altre unità che normalmente rimangono inalterate.


0

Eseguo il backup di ciò che è importante per me che può essere liberamente definito come la mia proprietà intellettuale più gli sforzi spesi a configurare Ubuntu per funzionare perfettamente (per me).

Il backup viene eseguito ogni mattina alle 4:00 del mattino o ogni volta che il laptop riprende dalla sospensione. È controllato tramite /etc/cron.dailyscript.

Il miglior tipo di backup è fuori sede in caso di incendio o inondazione in cui si trova il computer, quindi approfitto dell'account gmail.com da 15 GB gratuito e invio un backup giornaliero compresso lì.

Dopo un paio d'anni ho raggiunto la mia quota "gratuita" da 15 GB, quindi ho scritto uno script per riciclare i backup in 180 giorni, 78 settimane, 36 mesi e 100 backup annuali.

Ecco lo script di backup giornaliero di ciò che è importante per me:

#!/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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.