バックアップに含めるフォルダー


28

私はUbuntuを初めて使用するため、バックアップを作成したいと考えています。どのファイルとフォルダーを含めるか本当にわからないので、システムを復元すると、現在の状態になります。私はどこでもこれの良い詳細を見つけることができないようです。うまくいけば誰かがこれで私を助けることができます。現在のようにすべてをバックアップすることは可能ですか?システムを復元する場合、プログラムと設定を再インストールする必要はありませんか?


ええ、私もドライブ全体をバックアップすることなく、重要なファイルが何であるかを知りたいです。Crontabs(ルートおよびユーザー)、exportfsなど
Sridhar Sarnobat

回答:


25

私のバックアップセットには現在含まれています

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

これはサーバー用であるため、/ etcのようなものをバックアップすると、私のサービスのすべての構成が保存され、/ srvに Webサーバーがあります(/ var / wwwにある場合、これらはまだこのバックアップセットにあります) 、/ usr / localなどにさまざまなスクリプトと設定があります。バックアップホーム/の代わりに/ホーム/ myusernameと指定は、私はすべてのユーザーを保存することができるようです。保持する必要があるのがユーザーデータのみである場合は、ホームディレクトリのみが必要です。


なぜ/ rootを含めるのですか?
モハメッドジョレード

2
これは、rootユーザーのホームディレクトリです。バックアップなどのために、sysadminスクリプトをいくつかそこに保持します。これらのほとんどを/usr/local/sbin/
–thomasrutter

.cache各ユーザーのホームディレクトリ(~/.cache)にフォルダーを含める必要がありますか、それも省略できますか?数万のファイルと数ギガバイトのデータになる可能性があります。私の理解では、これを含めないと、アプリケーションは次に実行するときに一時的なキャッシュファイルを再生成する必要があり、実行時間と起動時間が増加しますが、無害です。
ガブリエルステープルズ

1
~/.cacheサウンドを除外しても問題ありません。私はそれを自分で除外しませんが、データ転送/同期時間を削減したい場合、それはオプションです。
thomasrutter

1
@GabrielStaplesは使用しません/optが、使用する場合は、バックアップに含めることができます。 /opt自身がそれをユーザーに任せるのディストリビューションで使用されていない傾向にあるが、それにインストールされている彼らのサードパーティ製アプリでのLinuxシステムを提供するアプリケーション・ベンダーは、使用する可能性がある/optか、あなたがあなた自身のソフトウェアを開発する場合、あなたはそれを持っていること/optの代わりに/usr/local
thomasrutter

10

バックアップする必要があるものは、特定のシステムによって異なります*。

そのため、これを整理するために少し作業が必要になります。していないことを理解することから始めますバックアップする必要のから始めます。最初にルートディレクトリを確認してから、逆方向に作業します。

たとえば、cd /; ls -F私に与えます:

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/media、および/mntマウントポイントをされているので、バックアップを必要としません。

/dev/lost+found/proc/run/sysおよび/tmp自動再起動時に再作成されます。[:私は推測しているリンク/initrd.img@/initrd.img.old@/vmlinuz@(私はわからないんだけどどの)、ブートUbuntuの再インストールに再作成されます/vmlinuz.old@~~MD~~auxを。]

私のシステム/rootは空です(sudo -srootユーザーとしてシェルを開いて表示するために使用してください... exit検査した直後に注意してください/root)。

/snapも空です。おそらく、マウントポイントです。

/varシステムロギングファイル、メールおよびプリンタースプールディレクトリ、一時ファイルおよび一時ファイルなどの変数データが​​含まれています。」/ var / logを除き、現在バックアップしています。ref:http : //www.tldp.org/LDP/Linux- Filesystem-Hierarchy / html / var.html

/bin/boot/lib/lib64、そして/sbinあなたがそのようなシステムの開発作業や何かをやっている場合を除き、おそらくUbuntuでの再インストールを経由して再ロードされます。これらをバックアップするか、新規インストールを使用してそれらを回復できます。

/home独自のバックアップにある必要があります。ちょうど復元したい場合があります/home

あなたがお使いのシステムに対して行ったことの葉、その他の変更/etc/opt/srv、および/usrあなたは一緒に、または個別に、また、バックアップしたいであろう。

これらのディレクトリを理解するのに役立つかもしれないページがいくつかあります:

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


関連する考え方は次のとおり です。新しいUbuntuをインストールしたとしましょう。何をバックアップする必要がありますか?答え:何もありません。まだ何も変更していないので、単純にUbuntuを再インストールできます。/ bin、/ etc、/ root、/ usrなどを復元します。

したがって、/ binをバックアップする唯一の理由は、変更または追加したためです。そのため、バックアップの一部は、作成および変更された場所と時期を理解することです。残りの人たちもこれに苦労していることを知ってください。


*****そして、あなたは尋ねなかったけれども、人はフルディスクまたはパーティションイメージを作ることができます。これらはバックアップと復元に時間がかかり、作業の進行中にシステムが停止する可能性があります。そして、Acronisを使用してWindowsシステムをバックアップする方法です。彼らが提供するものの1つは、パーティションマップと非Linuxパーティションのイメージです。パーティションを再編成する前、およびバックアップ復元機能をテストする前に、これらを作成します。


(これをどのように改善できるかについての提案に非常にオープンです。)


これは、構成に集中していて、バイナリを再インストールできると述べたように、バイナリを必要としない場合に最適です。これは、askubuntu.com
a /

5

デスクトップシステムを再インストールする場合、バックアップします

  • /etc
  • /var、私はいくつかのサブフォルダを除外するのが面倒です
  • /opt

/homeは別のパーティションにあり、毎日バックアップを作成しています

再インストール後、バックアップからパーツを復元します。これは本当に必要です。

この戦略では、すべての構成、ローカルメール、およびcrontab構成が安全であり、必要なアプリケーションのみを再インストールする必要があります。

個人用スクリプトはホームフォルダーに保存されます(毎日のバックアップ、覚えていますか?)。したがって、私はを使用しません/usr/local


1
ルートをバックアップする場合、それはすべてですか?:./
一時停止

それは今使っているもののクローンのようなものです。
停止

/opt必要なものは何ですか?すなわち:なぜそれをバックアップしますか?
ガブリエルステープルズ

3

ほとんどの人はホームディレクトリをバックアップするだけ/home/$USER/です:。構成ファイルと設定をバックアップする場合、それらは、ホームディレクトリ内ので始まるフォルダーとファイルに保存されます。(ドット)。使用するパッケージ(およびPPA)のリストを作成すると、必要に応じてすべてのパッケージを簡単に再インストールできます。または、このコメントで説明されているコマンドを使用します。

Deja Dup Backupは、Ubuntuのデフォルトとして提供される優れたツールです。その他のオプションには、コマンドライン(rsync、rsnapshot、rdiff-backupなど)が含まれます。

最後に、ディスク全体をイメージとしてバックアップするには、clonezillaをチェックしてください


2
また、回答psnyのリンク先に加えて、システム全体の設定を保存する/ etc /ディレクトリ全体のバックアップを作成しても問題はありません。そこにいくつかの変更を加えた場合、それらの変更を取得するためのアーカイブがあると便利です。
マルシンカミンスキー

2
crontabをセットアップしている場合は、バックアップ/var/spool/cronも行ってください。
イアン・ダン

3

ここでファイルのリストを収集しましょう。この投稿を「コミュニティwiki」にしました。

もちろん、それは人によって異なります。鉱山は、主にWebサーバーおよびNFSサーバーとして使用されます。

mkdir $MY_BACKUP_FOLDER
cd $MY_BACKUP_FOLDER

crontab

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

NFS共有

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

sudoers

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

Apacheの設定

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

autofs

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

fstab

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

ホスト

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

サンバ

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

USBデバイス(udev)ルール

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

systemd

配置する

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

Ubuntuランチャー(「スタートメニュー」).desktopファイル、含む。設定したカスタムのもの:

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

Ubuntuの再インストールを行うと、ホームディレクトリを保持できます


1

DejaDup(または実際に他の何か)を使用している場合は、Dropboxなどのクラウドストレージフォルダー(おそらくあなたの家にある)も除外してください。s3ストレージに料金を払っている場合、これは悪い間違いかもしれません。


0

Deja Dupバックアップを使用します。デフォルトで提供されます。設定に移動し/、「含めるフォルダー」としてルートフォルダー()のみを保持し、「/media無視するフォルダー」にメディアフォルダー()を追加します。

このため、通常は影響を受けない他のドライブを除き、システムが破損した場合(まれに)、すべてのプログラムがバックアップされます。


0

私にとって重要なことをバックアップします。これは、私の知的財産と、Ubuntuが完全に動作するように構成することに費やされた努力として大まかに定義できます(私にとって)。

毎朝午前4時に、またはラップトップがサスペンドから再開するたびにバックアップを実行します。/etc/cron.dailyスクリプトを介して制御されます。

最高の種類のバックアップは、コンピューターが置かれている火災や洪水の場合はオフサイトであるため、15GBの無料のgmail.comアカウントを活用して、そこに毎日圧縮されたバックアップを送信します。

数年後、15 GBの "無料"クォータに達したので、バックアップを180日、78週間、36か月、100年のバックアップにリサイクルするスクリプトを書きました。

ここで毎日のバックアップスクリプト私にとって何が重要かのは:

#!/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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.