Quais pastas incluir no backup?


28

Eu sou bastante novo no Ubuntu e quero criar um backup. Eu realmente não tenho certeza de quais arquivos e pastas incluir, de modo que, se eu restaurar o sistema, será como é agora. Não consigo encontrar bons detalhes disso em lugar nenhum. Espero que alguém possa me ajudar com isso. É possível fazer backup de tudo, como é agora, no caso de uma restauração do sistema, não preciso reinstalar programas e configurações?


Sim, eu também quero saber quais são os arquivos importantes sem ter que fazer backup de toda a unidade. Crontabs (root e usuário), exportfs etc.
Sridhar Sarnobat

Respostas:


25

Meus conjuntos de backups atualmente contêm

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

Observe que isso é para um servidor; portanto, fazer backup de coisas como / etc salva toda a minha configuração para meus serviços; eu tenho servidores da web em / srv (embora, se você os tiver em / var / www , eles ainda estariam nesse conjunto de backup) , Tenho vários scripts e coisas configuradas em / usr / local , etc. Fazer backup / home em vez de / home / myusername é para que eu possa preservar todos os usuários. Se tudo que você deseja manter são os dados do usuário, você precisa apenas do seu diretório pessoal.


Por que você está incluindo / root?
Mohammed Joraid 19/07/19

2
É o diretório home do usuário root, eu mantenho alguns scripts sysadmin lá, para backup etc. Embora eu mudei a maioria destes para/usr/local/sbin/
thomasrutter

É necessário incluir a .cachepasta no diretório inicial de cada usuário ( ~/.cache) ou podemos omitir isso também? Pode ser dezenas de milhares de arquivos e muitos gigabytes de dados. Meu entendimento é que, se não incluímos, significa apenas que os aplicativos precisam gerar novamente arquivos temporários em cache novamente na próxima vez que executarem, o que aumenta o tempo de execução e o tempo de inicialização, mas é inofensivo, certo?
Gabriel Staples

1
Excluindo ~/.cachesons ok para mim. Eu não o excluo, mas se você quiser reduzir o tempo de transferência / sincronização de dados, isso pode ser uma opção.
thomasrutter 10/07

1
@ GabrielStaples Eu não uso, /optmas se você o usar, poderá incluí-lo em seus backups. /opttende a não ser utilizado pelas próprias distros, deixando para o usuário, mas os fornecedores de aplicativos que fornecem ao sistema Linux o aplicativo de terceiros instalado nele podem usar /optou se você desenvolver seu próprio software, poderá tê-lo em /optvez de/usr/local
thomasrutter

10

O que você precisa fazer backup depende do seu sistema particular *.

Então, isso vai exigir um pouco de trabalho de sua parte para resolver. Comece descobrindo o que não precisa ser copiado. Primeiro, dê uma olhada no diretório raiz e depois trabalhe de trás para frente.

Por exemplo, cd /; ls -Fme 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 /mntsão pontos de montagem assim fazer backup não precisa.

/dev, /lost+found, /proc, /run, /sysE /tmpobtenção automática recriado na reinicialização. [Eu estou supondo que os links: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@ se re-criadas na inicialização ubuntu reinstalação (não tenho certeza qual).]

No meu sistema /rootestá vazio (use sudo -spara abrir um shell como usuário root para visualizá-lo ... tenha cuidado para exitimediatamente após a inspeção /root.)

/snaptambém está vazio. Talvez seja um ponto de montagem.

/varcontém dados variáveis, como arquivos de log do sistema, diretórios de spool de correio e impressora e arquivos temporários e temporários. "Agora faço backup, exceto para / var / log. ref: http://www.tldp.org/LDP/Linux- Hierarquia do sistema de arquivos / html / var.html )

/bin, /boot, /lib, /lib64, E /sbin, presumivelmente, vai ter recarregado através de uma reinstalação do Ubuntu, a menos que você está fazendo o trabalho de desenvolvimento do sistema ou algo parecido. Você pode fazer backup deles ou confiar em uma nova instalação para recuperá-los.

/homedeve estar em seu próprio backup. Haverá momentos em que você desejará restaurar apenas /home.

Isso deixa outras alterações feitas ao seu sistema em /etc, /opt, /srv, e /usrque você vai querer também backup, em conjunto ou individualmente.

Aqui estão algumas páginas que podem ajudar a entender esses diretórios:

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


Uma linha de pensamento relacionada é: Digamos que você acabou de instalar um novo Ubuntu. Do que você precisa fazer backup? Resposta: nada. Você não mudou nada ainda, então pode simplesmente reinstalar o Ubuntu. Restaura / bin, / etc, / root, / usr, etc.

Portanto, o único motivo pelo qual você pode querer fazer backup / bin é porque você o alterou ou adicionou a ele. Portanto, parte do backup é entender o que é onde e quando ele é criado e modificado. Apenas saiba que o resto de nós também luta com isso.


***** E, embora você não tenha perguntado, é possível criar imagens de disco ou partição completas. Isso leva muito tempo para fazer backup e restauração e pode deixar o sistema inativo enquanto esse trabalho está em andamento. E é assim que costumava fazer backup dos meus sistemas Windows usando o Acronis. A única coisa que eles fornecem é um mapa de partições e imagens de partições não-linux. Agora, faço isso antes de reorganizar as partições e antes de testar minhas funções de restauração de backup.


(Estou muito aberto a sugestões de como eu poderia melhorar isso.)


Isso é ótimo quando você está focado nas configurações e não precisa dos binários, como você disse que eles podem ser instalados novamente e é muito mais fácil
CTS_AE

5

Se eu reinstalar o sistema da área de trabalho, faço o backup

  • /etc
  • /var, Tenho preguiça de excluir algumas subpastas
  • /opt

/homeestá em uma partição separada e possui um backup feito todos os dias .

Após a reinstalação, restauro as peças do meu backup, das quais realmente preciso.

Com essa estratégia, todas as minhas configurações, e-mails locais e configurações do crontab são seguras e preciso reinstalar apenas os aplicativos necessários.

Meus scripts pessoais são salvos na minha pasta pessoal (backup diário, lembra-se?), Portanto não uso /usr/local.


1
Funcionará se eu fizer backup do root, isso é tudo ?: ./
Suspenso

Isso seria como um clone do que estou usando agora.
Suspenso

O que é /optque precisamos? ou seja: por que fazer backup?
Gabriel Staples

3

A maioria das pessoas apenas backup de seu diretório home: /home/$USER/. Se você deseja fazer backup dos arquivos e configurações, eles são armazenados em pastas e arquivos no diretório inicial que começam com a. (ponto). Faça uma lista dos pacotes que você usa (e PPAs) e será fácil reinstalar todos os seus pacotes, se necessário. Ou use o comando descrito neste comentário .

O Deja Dup Backup é uma ótima ferramenta que vem como padrão no Ubuntu. Outras opções incluem linha de comando (rsync, rsnapshot, rdiff-backup, etc).

Por fim, para fazer backup de todo o disco como uma imagem, confira o clonezilla .


2
Além disso, além do que a resposta psny estava vinculada, não faria mal criar um backup de todo o diretório / etc / que armazena configurações em todo o sistema. Se você fez algumas alterações lá, seria útil ter um arquivo para obter essas alterações.
Marcin Kaminski

2
Se você tiver alguma configuração de crontabs, faça backup /var/spool/crontambém.
Ian Dunn

3

Vamos coletar uma lista de arquivos aqui. Eu criei este post "wiki da comunidade".

Claro, isso varia de pessoa para pessoa. O meu é usado principalmente como servidor web e servidor NFS.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontabs

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

Compartilhamentos NFS

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

sudoers

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

configuração do apache

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

autofs

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

fstab

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

anfitriões

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

samba

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

Regras do dispositivo USB (udev)

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

systemd

mlocate

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

Arquivos .desktop do iniciador do Ubuntu ("Menu Iniciar"), incl. quaisquer personalizados que você configurou:

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

O diretório home pode ser preservado se você reinstalar o ubuntu


1

Apenas um lembrete, se você estiver usando o DejaDup (ou qualquer outra coisa realmente), também exclua quaisquer pastas de armazenamento em nuvem (provavelmente em sua casa), como o Dropbox. Se você está pagando pelo armazenamento s3, isso pode ser um erro grave.


0

Use o backup do Deja Dup. É fornecido por padrão. Vá para configurações e mantenha apenas a pasta raiz ( /) como "pastas a serem incluídas" e adicione a pasta de mídia ( /media) em "pastas a serem ignoradas".

Por esse motivo, todos os seus programas serão salvos em backup no caso de danos ao sistema (raros), exceto as outras unidades que normalmente não são afetadas.


0

Eu faço backup do que é importante para mim, que pode ser definido livremente como minha propriedade intelectual, além dos esforços gastos para configurar o Ubuntu para funcionar perfeitamente (para mim).

Eu tenho o backup executado todas as manhãs às 04:00 ou sempre que o Laptop sair da suspensão. É controlado através de /etc/cron.dailyscript.

O melhor tipo de backup é externo, em caso de incêndio ou inundação, onde o computador fica, então aproveito a conta gratuita de 15 GB gmail.com e envio lá um backup diário compactado.

Depois de alguns anos, atingi minha cota de 15 GB "grátis" e escrevi um script para reciclar backups em 180 dias, 78 semanas, 36 meses e 100 backups anuais.

Aqui está o script de backup diário do que é importante para mim:

#!/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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.