web-dev-qa-db-ja.com

Linux-サーバーのバックアップ時に除外する必要があるディレクトリ

Linuxサーバーをバックアップして、別のサーバーに保存しています。

私はシンプルで始めました

rsync -aPh --del server.example.com:/ /mnt/backup

次に、あるサーバーの/procを別のサーバーに復元したくないので、/procをバックアップすべきではないと誰かが指摘しました。

他に含める/含めるべきでないものはありますか?

たとえば、/sysはどうですか?

38
Rory

これは、実際にシステムを復元する方法に依存します。再構築する場合は、サービスの構成/データファイルのみが必要です(例:/ etc、/ opt、/ var、/ home)

システム全体を復元した後は、/ proc、/ boot、/ devを省略できます。次に、ブートメディアから最小OSをインストールし、バックアップを介してシステムを復元できます。

もちろん、最適なバックアップはtestedおよびverifiedであるバックアップです。

したがって、必要と思わないものは省略し、VMで復元を試み、このデータを使用してシステムを回復できることを確認してください。

24
Wayne

/proc/sysはどちらも、システムの状態を反映する仮想ファイルシステムであり、いくつかのランタイムパラメータを変更できます(メモリやデバイスに直接書き込むなど、より危険なことを行う場合もあります)。それらをバックアップしたり復元したりしないでください。

最近のほとんどのディストリビューションでは、/devは起動時に動的に作成されます(これはudevおよびその仲間によって埋められたメモリファイルシステムです)。それをバックアップする意味はなく、それを復元しようとしても無駄です。ただし、ディストリビューションが静的/devを使用するように構成されている場合、これは適用されません(/proc/mountstmpfsの場合は、メモリファイルシステムです)/devを確認してください)。

バックアップすべきでない他のファイルシステムがあります。 usbfs(通常、マウントされている場合は/proc/bus/usbにあります)、debugfs(マウントされている場合は/sys/kernel/debugにあると考えられますが、他の場所に置いている人もいるでしょう。おそらくこれはありません) 、devpts/dev/ptsにマウント)、他のtmpfsインスタンス(/dev/shm/var/run/var/lock、およびその他の場所でよく見られます。それらのバックアップと復元は、内容として無害ですが無意味でなければなりません。シャットダウン時に失われます)、およびリモートファイルシステムまたはマジックオートマウンターディレクトリ(バックアップまたは復元しようとすると、別のマシンにバックアップ/復元する可能性があるため、惨事になる可能性があります)。また、/media/mntにも注意する必要があります。ドライブに忘れたCDなどの外部デバイスがそこにある可能性がありますが、バックアップする必要があるものをマウントする目的でそれらを使用した可能性もあります。

ほとんど無害なtmpfsインスタンス、ネットワークファイルシステム/オートマウンタ、リムーバブルメディアを除いて、バックアップすべきではないファイルシステムはすべて/dev/proc、または/sysの子孫であることに注意してください。ネットワークファイルシステム(またはオートマウンター)がなく、リムーバブルメディアがない場合は、/sys/procを除いて、復元後に再起動(tmpfsインスタンスをワイプする)で十分です。

30
CesarB

第1章 The Tao Of Backup を参照してください。

17
Teddy

/ procおよび/ sys内の一部の特殊ファイルは、rsyncを混乱させます。通常、マウントされたネットワークファイルシステムもバックアップしたくありません。スパースファイルも問題を引き起こす可能性があります。

-xを追加して、1つのファイルシステムに制限します。これにより、すべてのネットワークファイルシステムや/ procなどが回避されます。ただし、マウントしたファイルシステムごとに1つのrsyncを実行する必要があります。

スパースファイルを適切に処理するには、-Sを追加します。

8
pjc50

/ boot、/ dev、および/ procはバックアップにはまったく役に立ちません。ただし、実行していることがわかっている場合は、/ bootをバックアップできます。

/ lib、/ media、/ mnt、/ sbin、/ bin、/ srv、/ sys、または/ tmpもバックアップしません。

/ usrはオプションです。バックアップする価値のあるものが/ usrにあるかどうかによって異なります。私があなただったら、ユーザーの$ HOME、/ var、および/ etc(構成ファイル用)のバックアップについて最も心配しました。

繰り返しますが、これは本当にすべて、実行するバックアップのtypeに依存します。これはWebサーバーですか?これはパソコンですか?これは、/ homeの下に多数のディレクトリを持つシェルサーバーですか?

4
Michael Pobega

Sfdiskとddを使用して、完全なバックアップを実現できます。


各ハードドライブのパーティション構成をバックアップするには、次のようにsfdiskを使用します。

sfdisk -d /dev/sda  > parttable_sda.part

各パーティションをバックアップするには、次のようにddを使用できます。

dd if=/dev/sda1 of=devsda1.img

どこ /dev/sda1は、ライブCDブートなどでマウント解除されます。

(このファイルを書き込むには、多くの空き領域が必要になることに注意してください。外部メディアに書き込むことができます)パーティションごとに1つずつ行い、すべてをバックアップします。


次に、別のコンピューターで復元するには、次のようにします。

sfdisk /dev/sda < parttable_sda.part
dd if=devsda1.img of=/dev/sda1    # do this for each partition
3
Michael Pobega

除外するのではなく、通常は必要なものだけをバックアップします。含む:/home/etc/var/var/logを除く)

2
DennyHalim.com

基本的に、疑似ファイルシステム(/ proc、/ sys、/ dev/shm ...)をバックアップする必要はありません。

1
sendmoreinfo

私はUbuntu 18.04マシンを使用していますが、これらは除外されています。

/dev/
/proc/
/sys/
/tmp/
/run/
/mnt/
/media/
/lost+found/
/cdrom/
/swapfile

また、特に私のセットアップでは、これらを除外します:

/home            <-- Backed up separately
/backup          <-- Mount point for backup disks
/data            <-- Mount point for data disks, which are backed up off-site
/scratch         <-- Mount point for volatile fast SSD scratch disk
1
user2724383

この素晴らしいコミュニティによって指摘されたように:

/ dev/proc/sys/tmp/run/media/lost + found/boot(/ bootはオプションです。他のコメントを参照してください)

参考までに、私の最後のrsyncコマンド( '/ run/media/fred/INTENSO /'にマウントされた外部メディアを持つArchの下で、 'fred'という名前のフォルダーにバックアップする)は次のとおりです。

$ Sudo rsync -Pazhmxv --exclude/run/media --exclude/dev --exclude/lost + found --exclude/tmp --exclude/proc --exclude/boot --exclude/sys// run/media /フレッド/ INTENSO /フレッド/。

(除外されたファイルは、Bashの下の波括弧(--exclude = {/ dev、/ proc})またはテキストファイル(--exclude-from = 'excude.txt')で指定することもできます)。

-P:進行状況を表示-a:アーカイブモード-z:転送中に圧縮-h:数値を人間が読める形式で出力-m:空のディレクトリを削除-x:1つのファイルシステムに制限-v:詳細

1
Fred Christophe

質問:サーバーをバックアップするときに、どのディレクトリを除外すればよいですか?

これは、Ubuntu 16.04 LTSラップトップからUbuntu 16.04 LTSサーバーまで、私が頻繁に使用するスクリプトです。これは、完全バックアップの作成中にスキップする必要があるディレクトリを明確に示しています。

echo "EMPTYING TRASH"
rm -rf ~/.local/share/Trash/* >/dev/null 2>&1
echo "DELETING OLD LOGS"
Sudo rm -f /var/tmp/* >/dev/null 2>&1
Sudo rm -f /var/log/*.gz >/dev/null 2>&1
Sudo rm -f /var/log/kern* >/dev/null 2>&1
Sudo rm -f /var/log/messages* >/dev/null 2>&1
echo "DELETING CHROMIUM CACHE"
rm -rf /home/pi/.cache/chromium/Default/Cache/* >/dev/null 2>&1
echo "====================================================================="
echo "      BEGINNING RSYNC from PAV root to PRIME5:/mnt/full/pav"
echo "====================================================================="
time Sudo rsync -aAXv \
          / \
          --bwlimit=500 \
          --delete \
          --delete-excluded \
          --ignore-errors \
          --exclude="/dev/*" \
          --exclude="/proc/*" \
          --exclude="/sys/*" \
          --exclude="/tmp/*" \
          --exclude="/run/*" \
          --exclude="/mnt/*" \
          --exclude="/media/*" \
          --exclude="/lost+found" \
          abc@prime5:/mnt/full/pav
echo "====================================================================="
df -h

/mntの除外に注意してください。これは、各Ubuntuシステムに、1日4回cronベースのrsync自己バックアップ用にフルタイムバックアップドライブがマウントされている場所です。これらのドライブは、fstabのエントリによってマウントされ、常に存在します。それらを別のシステムへのバックアップに含めることは重複します。

同様に、/mediaはUSBドライブがマウントされる場所です。それらは個別にバックアップされます。

0
SDsolar

仮想マシンにLinuxがないと思います。可能であれば、仮想化への移行を検討することをお勧めします。 VMレベルのバックアップは、まったく新しいレベルの一貫性と使いやすさです。無料の仮想化ツールが存在するため、必ずしもVmWareやその他の高価なモンスターツールに投資する必要はありません。

0
Gnudiff

私は、Ubuntu LinuxボックスをWebサイト開発用のテストサーバーとして使用し、ドキュメントWikiをホストしています。毎晩crontabがMySQLデータベースを/ var/wwwにダンプし、次に/ var/wwwのすべてが圧縮されてバックアップサーバーに複製されます。理想的ではありませんが、それで十分です。ある時点でサーバーを再構築する必要があり、本当に見逃したのはApacheとSambaの構成ファイルだけでした。

0
Nic

私は通常、システム上ですべてをバックアップする習慣をつけています。セットアップは簡単で、必要なすべてのものがバックアップに含まれることを100%確信できます。

0
Maximus Minimus