Folder mana yang akan disertakan dalam cadangan?

28

Saya cukup baru di Ubuntu dan ingin membuat cadangan. Saya benar-benar tidak yakin apa file dan folder untuk dimasukkan sehingga jika saya mengembalikan sistem saya akan seperti sekarang. Sepertinya saya tidak dapat menemukan detail yang bagus tentang ini di mana saja. Semoga ada yang bisa membantu saya dengan ini. Apakah mungkin untuk mencadangkan semuanya seperti sekarang sehingga saat terjadi pemulihan sistem saya tidak perlu menginstal ulang program dan pengaturan?

Jason
sumber
Ya saya juga ingin tahu apa file-file penting tanpa harus membuat cadangan seluruh drive. Crontab (root dan pengguna), exportfs dll.
Sridhar Sarnobat

Jawaban:

25

Kumpulan cadangan saya saat ini berisi

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

Catatan ini untuk server, jadi mencadangkan hal-hal seperti / etc menyimpan semua konfigurasi saya untuk layanan saya, saya punya server web di / srv (meskipun jika Anda memilikinya di / var / www , mereka masih akan berada di set cadangan ini) , Saya memiliki berbagai skrip dan hal-hal yang diatur di / usr / local , dll. Membackup / home bukan / home / myusername adalah agar saya dapat melindungi semua pengguna. Jika semua yang ingin Anda simpan adalah data pengguna Anda, Anda hanya perlu direktori home Anda.

thomasrutter
sumber
Mengapa Anda termasuk / root?
Mohammed Joraid
2
Ini adalah direktori home dari pengguna root, saya menyimpan beberapa skrip sysadmin di sana, untuk cadangan dll. Meskipun saya telah memindahkan sebagian besar dari ini ke/usr/local/sbin/
thomasrutter
Apakah perlu menyertakan .cachefolder di direktori home masing-masing pengguna ( ~/.cache), atau bisakah kita menghilangkannya juga? Itu bisa puluhan ribu file dan banyak gigabytes data. Pemahaman saya adalah bahwa jika kita tidak memasukkannya, itu hanya berarti bahwa aplikasi harus menghasilkan kembali file-file sementara, di-cache lagi di lain waktu mereka dijalankan, yang meningkatkan waktu berjalan dan waktu startup tetapi tidak berbahaya, kan?
Gabriel Staples
1
Tidak termasuk ~/.cachesuara bagi saya. Saya tidak mengecualikannya sendiri tetapi jika Anda ingin mengurangi waktu transfer / sinkronisasi data, itu bisa menjadi pilihan.
thomasrutter
1
@GabrielStaples Saya tidak menggunakan /opttetapi jika Anda menggunakannya, maka Anda dapat memasukkannya ke dalam cadangan Anda. /optcenderung tidak digunakan oleh distro sendiri yang menyerahkannya kepada pengguna, tetapi vendor aplikasi yang menyediakan sistem Linux dengan aplikasi pihak ketiga mereka yang terinstal di dalamnya mungkin menggunakan /optatau jika Anda mengembangkan perangkat lunak Anda sendiri, Anda mungkin memilikinya di dalam /optbukannya/usr/local
thomasrutter
10

Apa yang Anda butuhkan untuk mencadangkan tergantung pada sistem Anda *.

Jadi ini akan membutuhkan sedikit usaha dari Anda untuk memilah. Mulailah dengan mencari tahu apa yang tidak perlu didukung. Pertama lihat direktori root Anda, dan kemudian bekerja mundur.

Misalnya, cd /; ls -Fberi saya:

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,, /mediadan /mntmerupakan titik pemasangan sehingga tidak perlu cadangan.

/dev, /lost+found, /proc, /run, /sysDan /tmpmendapatkan auto re-dibuat di reboot. [Saya menduga link: /initrd.img@, /initrd.img.old@, /vmlinuz@, /vmlinuz.old@ mendapatkan kembali tercipta pada boot ubuntu instal ulang (saya tidak yakin yang).]

Pada sistem saya /rootkosong (gunakan sudo -suntuk membuka shell sebagai root untuk melihatnya ... hati-hati exitsegera setelah Anda memeriksa /root.)

/snapjuga kosong. Mungkin itu adalah titik pemasangan.

/varberisi data variabel seperti file pendataan sistem, direktori mail dan printer spool, dan file sementara dan sementara. "Saya sekarang mendukungnya, kecuali untuk / var / log. ref: http://www.tldp.org/LDP/Linux- Filesystem-Hierarchy / html / var.html )

/bin, /boot, /lib, /lib64, Dan /sbinmungkin akan mendapatkan reloaded melalui ulang dari Ubuntu kecuali Anda melakukan pekerjaan pengembangan sistem atau sesuatu seperti itu. Anda dapat mencadangkan ini atau mengandalkan instalasi baru untuk memulihkannya.

/homeharus dalam cadangan itu sendiri. Akan ada saat-saat ketika Anda ingin mengembalikan hanya /home.

Daun bahwa perubahan lain yang telah dibuat untuk sistem Anda di /etc, /opt, /srv, dan /usryang Anda akan ingin juga backup, baik bersama-sama atau secara individual.

Berikut adalah beberapa halaman yang dapat membantu memahami direktori ini:

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


Cara berpikir yang terkait adalah: Katakanlah Anda baru saja menginstal Ubuntu yang baru. Apa yang Anda butuhkan untuk membuat cadangan? Jawab: tidak ada. Anda belum mengubah apa pun, jadi Anda cukup menginstal ulang Ubuntu. Ini mengembalikan / bin, / etc, / root, / usr, dll.

Jadi satu-satunya alasan Anda mungkin ingin membuat cadangan / bin adalah karena Anda telah mengubahnya atau menambahkannya. Jadi bagian dari pencadangan adalah memahami apa yang ada di mana dan kapan itu dibuat dan dimodifikasi. Ketahuilah bahwa kita semua juga berjuang dengan ini.


***** Dan, meskipun Anda tidak bertanya, orang dapat membuat disk penuh atau gambar partisi. Ini membutuhkan banyak waktu untuk membuat cadangan dan memulihkan dan mungkin membuat sistem Anda down saat pekerjaan itu sedang berjalan. Dan begitulah cara saya mencadangkan sistem Windows saya menggunakan Acronis. Satu hal yang mereka berikan adalah peta partisi, dan gambar dari partisi non-linux. Saya sekarang membuat ini sebelum saya mengatur ulang partisi, dan sebelum saya menguji fungsi pemulihan cadangan saya.


(Saya sangat terbuka untuk saran bagaimana saya bisa membuat ini lebih baik.)

Pandangan elips
sumber
Ini bagus ketika Anda berfokus pada konfigurasi dan tidak memerlukan binari, seperti yang Anda katakan dapat diinstal lagi dan ini jauh lebih ringan untuk diekspor dan daripada menginstal ulang askubuntu.com/a/55906/104223
CTS_AE
5

Jika saya menginstal ulang sistem desktop saya, saya membuat cadangan

  • /etc
  • /var, Saya terlalu malas untuk mengecualikan beberapa sub-folder
  • /opt

/homeada di partisi terpisah dan memiliki cadangan dibuat setiap hari .

Setelah menginstal ulang, saya mengembalikan bagian-bagian dari cadangan saya, yang sangat saya butuhkan.

Dengan strategi ini, semua konfigurasi saya, mail lokal dan konfigurasi crontab aman dan saya harus menginstal ulang aplikasi yang saya butuhkan saja.

Skrip pribadi saya disimpan di folder rumah saya (cadangan harian, ingat?), Oleh karena itu saya tidak menggunakan /usr/local.

AB
sumber
1
Apakah akan berfungsi jika saya mencadangkan root, itu saja ?: ./
Ditangguhkan
Itu akan seperti tiruan dari apa yang saya gunakan sekarang.
Ditangguhkan
Apa /optyang kita butuhkan? yaitu: mengapa mendukungnya?
Gabriel Staples
3

Kebanyakan orang hanya backup direktori rumah mereka: /home/$USER/. Jika Anda ingin mencadangkan file konfigurasi dan pengaturan, itu disimpan dalam folder dan file di direktori home Anda yang dimulai dengan a. (dot). Buatlah daftar paket yang Anda gunakan (dan PPA) dan akan mudah untuk menginstal ulang semua paket Anda jika Anda butuhkan. Atau, gunakan perintah yang dijelaskan dalam komentar ini .

Deja Dup Backup adalah alat yang hebat yang datang sebagai default di Ubuntu. Pilihan lain termasuk baris perintah (rsync, rsnapshot, rdiff-backup, dll).

Akhirnya, untuk mencadangkan seluruh disk sebagai gambar, periksa clonezilla .

philshem
sumber
2
Selain itu, selain jawaban yang terhubung dengan psny, tidak ada salahnya untuk membuat cadangan dari seluruh direktori / etc / yang menyimpan pengaturan sistem yang luas. Jika Anda telah membuat beberapa perubahan di sana, akan sangat membantu jika Anda memiliki arsip untuk mendapatkan perubahan tersebut.
Marcin Kaminski
2
Jika Anda memiliki pengaturan crontab, maka buat cadangan /var/spool/cronjuga.
Ian Dunn
3

Mari kita kumpulkan daftar file di sini. Saya membuat pos ini "wiki komunitas."

Tentu saja, ini bervariasi dari orang ke orang. Milik saya digunakan terutama sebagai server web dan server NFS.

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontab

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

NFS membagikan

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

sudoers

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

konfigurasi apache

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

autofs

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

fstab

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

tuan rumah

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

samba

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

Aturan Perangkat USB (udev)

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

systemd

mlocate

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

Peluncur Ubuntu ("Start Menu") .desktop file, termasuk. setiap kustom yang telah Anda siapkan:

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

home dir dapat disimpan jika Anda menginstal ulang ubuntu

Sridhar Sarnobat
sumber
1

Hanya pengingat jika Anda menggunakan DejaDup (atau yang lainnya benar-benar), kecualikan folder penyimpanan cloud (kemungkinan di rumah Anda), seperti Dropbox. Jika Anda membayar penyimpanan s3, ini bisa menjadi kesalahan buruk.

kdford
sumber
0

Gunakan cadangan Deja Dup. Ini disediakan secara default. Buka pengaturan dan simpan hanya folder rooting ( /) sebagai "folder untuk disertakan" dan tambahkan folder media ( /media) di "folder untuk diabaikan".

Karena itu, semua program Anda akan dicadangkan jika terjadi kerusakan sistem (jarang) kecuali drive lain yang biasanya tetap tidak terpengaruh.

VedVals
sumber
0

Saya mencadangkan apa yang penting bagi saya yang secara longgar dapat didefinisikan sebagai kekayaan intelektual saya ditambah upaya yang dihabiskan untuk mengkonfigurasi Ubuntu agar berfungsi dengan sempurna (untuk saya).

Saya menjalankan pencadangan setiap pagi pada jam 4:00 pagi atau setiap kali Laptop dilanjutkan dari penundaan. Itu dikendalikan melalui /etc/cron.dailyskrip.

Jenis cadangan terbaik adalah di luar lokasi jika terjadi kebakaran atau banjir di mana komputer berada, jadi saya memanfaatkan akun gmail.com 15GB gratis dan mengirim cadangan harian terkompresi di sana.

Setelah beberapa tahun, saya mencapai kuota "bebas" 15 GB saya, jadi tuliskan skrip untuk mendaur ulang cadangan menjadi 180 hari, 78 minggu, 36 bulan, dan 100 cadangan tahunan.

Berikut ini skrip cadangan harian tentang apa yang penting bagi saya:

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