¿Qué carpetas incluir en la copia de seguridad?

28

Soy bastante nuevo en Ubuntu y quiero crear una copia de seguridad. Realmente no estoy seguro de qué archivos y carpetas incluir, de modo que si restauro mi sistema será como está ahora. Parece que no puedo encontrar buenos detalles de esto en ningún lado. Espero que alguien pueda ayudarme con esto. ¿Es posible hacer una copia de seguridad de todo como está ahora, así que en caso de una restauración del sistema no tengo que reinstalar programas y configuraciones?

Jason
fuente
Sí, yo también quiero saber cuáles son los archivos importantes sin tener que hacer una copia de seguridad de toda la unidad. Crontabs (root y usuario), exportfs, etc.
Sridhar Sarnobat

Respuestas:

25

Mis conjuntos de respaldo contienen actualmente

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

Tenga en cuenta que esto es para un servidor, por lo que al hacer copias de seguridad de cosas como / etc guarda toda mi configuración para mis servicios, tengo servidores web en / srv (aunque si los tiene en / var / www , todavía estarían en este conjunto de copia de seguridad) , Tengo varias secuencias de comandos y cosas configuradas en / usr / local , etc. Copia de seguridad / home en lugar de / home / myusername es para poder preservar a todos los usuarios. Si todo lo que desea conservar son sus datos de usuario, solo necesita su directorio de inicio.

thomasrutter
fuente
¿Por qué estás incluyendo / root?
Mohammed Joraid
2
Es el directorio principal del usuario root, guardo algunos scripts de administrador de sistemas en ese país, para copias de seguridad, etc. Aunque he pasado la mayor parte de estos para/usr/local/sbin/
thomasrutter
¿Hay alguna necesidad de incluir la .cachecarpeta en el directorio de inicio de cada usuario ( ~/.cache), o podemos omitir eso también? Puede ser decenas de miles de archivos y muchos gigabytes de datos. Tengo entendido que si no lo incluimos, solo significa que las aplicaciones tienen que volver a generar archivos temporales en caché la próxima vez que se ejecuten, lo que aumenta el tiempo de ejecución y el tiempo de inicio, pero es inofensivo, ¿verdad?
Gabriel Staples
1
Excluir me ~/.cacheparece bien. Yo no lo excluyo, pero si desea reducir el tiempo de transferencia / sincronización de datos, esa puede ser una opción.
thomasrutter
1
@GabrielStaples No uso, /optpero si lo usa, puede incluirlo en sus copias de seguridad. /opttiende a no ser utilizado por las propias distribuciones, dejándolo en manos del usuario, pero los proveedores de aplicaciones que proporcionan un sistema Linux con su aplicación de terceros instalada pueden usarlo /opto si desarrolla su propio software, puede tenerlo en /optlugar de/usr/local
thomasrutter
10

Lo que necesita hacer una copia de seguridad depende de su sistema particular *.

Así que esto va a tomar un poco de trabajo de tu parte para resolverlo. Comience por descubrir lo que no necesita ser respaldado. Primero eche un vistazo a su directorio raíz y luego trabaje hacia atrás.

Por ejemplo, cd /; ls -Fme da:

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, /mediay /mntson puntos de montaje, así que no necesito copia de seguridad

/dev, /lost+found, /proc, /run, /sysY la /tmpobtención automática re-creado en el reinicio. [Estoy adivinando los enlaces: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@~~MD~~aux~~3rd conseguir recreado en el arranque de Ubuntu reinstalación (no estoy seguro de qué).]

En mi sistema /rootestá vacío (uso sudo -spara abrir un shell como usuario root para verlo ... tenga cuidado de exitinmediatamente después de inspeccionar /root).

/snapTambién está vacío. Quizás sea un punto de montaje.

/varcontiene datos variables como archivos de registro del sistema, directorios de correo y de cola de impresora, y archivos transitorios y temporales. "Ahora lo respaldo, excepto / var / log. ref: http://www.tldp.org/LDP/Linux- Jerarquía del sistema de archivos / html / var.html )

/bin, /boot, /lib, /lib64, Y /sbinpresumiblemente conseguir recargado a través de una reinstalación de Ubuntu a menos que usted está haciendo el trabajo de desarrollo del sistema o algo por el estilo. Puede hacer una copia de seguridad de estos o confiar en una nueva instalación para recuperarlos.

/homedebería estar en su propia copia de seguridad. Habrá momentos en los que querrá restaurar solo /home.

Eso deja a otros cambios que ha realizado en su sistema en /etc, /opt, /srv, y /usrque querrán también copia de seguridad, ya sea juntos o por separado.

Aquí hay un par de páginas que pueden ayudar a comprender estos directorios:

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 línea de pensamiento relacionada es: Digamos que acaba de instalar un Ubuntu nuevo. ¿Qué necesitarías para hacer una copia de seguridad? Respuesta: nada. Todavía no ha cambiado nada, así que simplemente puede reinstalar Ubuntu. Restaura / bin, / etc, / root, / usr, etc.

Entonces, la única razón por la que es posible que desee hacer una copia de seguridad / bin es porque lo ha cambiado o agregado. Entonces, parte de la copia de seguridad es comprender qué es dónde y cuándo se crea y modifica. Solo sé que el resto de nosotros luchamos con esto también.


***** Y, aunque no lo pidió, se pueden hacer imágenes de disco o partición completas. Estos demoran mucho tiempo en hacer copias de seguridad y restaurar, y pueden dejar su sistema inactivo mientras el trabajo continúa. Y así es como solía hacer una copia de seguridad de mis sistemas Windows con Acronis. Lo único que le proporcionan es un mapa de partición e imágenes de particiones que no son de Linux. Ahora hago esto antes de reorganizar las particiones, y antes de probar mis funciones de restauración de copia de seguridad.


(Estoy muy abierto a sugerencias sobre cómo podría mejorar esto).

Vista elíptica
fuente
Esto es genial cuando te enfocas en las configuraciones y no necesitas los binarios, como dijiste que se pueden instalar nuevamente y esto es mucho más liviano para exportar y reinstalar askubuntu.com/a/55906/104223
CTS_AE
5

Si reinstalo mi sistema de escritorio, hago una copia de seguridad

  • /etc
  • /var, Soy demasiado vago para excluir algunas subcarpetas
  • /opt

/homeestá en una partición separada y tiene una copia de seguridad realizada todos los días .

Después de la reinstalación, restauro las partes de mi copia de seguridad, que realmente necesito.

Con esta estrategia, todas mis configuraciones, correos locales y configuraciones de crontab están a salvo y tengo que reinstalar solo mis aplicaciones necesarias.

Mis scripts personales se guardan en mi carpeta de inicio (copia de seguridad diaria, ¿recuerdas?), Por lo tanto, no los uso /usr/local.

AB
fuente
1
¿Funcionará si hago una copia de seguridad de la raíz, eso es todo ?: ./
Suspendido
Eso sería como un clon de lo que estoy usando ahora.
Suspendido
¿Qué hay en /opteso que necesitamos? es decir: ¿por qué respaldarlo?
Gabriel Staples
3

La mayoría de la gente simplemente copia de seguridad de su directorio: /home/$USER/. Si desea hacer una copia de seguridad de los archivos y configuraciones de configuración, estos se almacenan en carpetas y archivos en su directorio personal que comienzan con a. (punto). Haga una lista de los paquetes que usa (y los PPA) y será fácil reinstalar todos sus paquetes si lo necesita. O use el comando descrito en este comentario .

Deja Dup Backup es una gran herramienta que viene por defecto en Ubuntu. Otras opciones incluyen la línea de comandos (rsync, rsnapshot, rdiff-backup, etc.).

Finalmente, para hacer una copia de seguridad de todo el disco como una imagen, consulte clonezilla .

philshem
fuente
2
Además, además de a lo que se vinculaba la respuesta psny, no estaría de más crear una copia de seguridad de todo el directorio / etc / que almacena la configuración de todo el sistema. Si ha realizado algunos cambios allí, sería útil tener un archivo para obtener esos cambios.
Marcin Kaminski
2
Si tiene alguna configuración de crontabs, haga una copia de seguridad /var/spool/crontambién.
Ian Dunn
3

Recopilemos una lista de archivos aquí. He hecho esta publicación "wiki de la comunidad".

Por supuesto, varía de persona a persona. El mío se usa principalmente como servidor web y servidor NFS.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

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

NFS comparte

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

sudoers

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

configuración de apache

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

autofs

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

fstab

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

Hospedadores

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

samba

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

Reglas del dispositivo USB (udev)

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

systemd

mlocate

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

Ubuntu launcher ("Menú de inicio") .desktop archivos, incl. cualquier personalizado que haya configurado:

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

el directorio de inicio se puede preservar si realiza una reinstalación de ubuntu

Sridhar Sarnobat
fuente
1

Solo un recordatorio si está usando DejaDup (o cualquier otra cosa realmente), también excluya cualquier carpeta de almacenamiento en la nube (probablemente en su hogar), como Dropbox. Si está pagando por el almacenamiento s3, esto podría ser un grave error.

kdford
fuente
0

Utilice la copia de seguridad Deja Dup. Se proporciona por defecto. Vaya a configuración y mantenga solo la carpeta raíz ( /) como "carpetas para incluir" y agregue la carpeta multimedia ( /media) en "carpetas para ignorar".

Debido a esto, se realizará una copia de seguridad de todos sus programas en caso de daños en el sistema (raro), excepto sus otras unidades que normalmente no se ven afectadas.

VedVals
fuente
0

Respaldo lo que es importante para mí, que se puede definir libremente como mi propiedad intelectual más los esfuerzos dedicados a configurar Ubuntu para que funcione perfectamente (para mí).

Tengo la copia de seguridad ejecutada todas las mañanas a las 4:00 a.m. o cada vez que la computadora portátil se reanuda. Se controla a través del /etc/cron.dailyscript.

El mejor tipo de copia de seguridad es fuera del sitio en caso de incendio o inundación donde se encuentra la computadora, así que aprovecho la cuenta gratuita de gmail.com de 15GB y envío una copia de seguridad diaria comprimida allí.

Después de un par de años llegué a mi cuota "gratuita" de 15 GB, así que escribí un script para reciclar las copias de seguridad en 180 días, 78 semanas, 36 meses y 100 copias de seguridad anuales.

Aquí está el script de copia de seguridad diario de lo que es importante para mí:

#!/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
fuente