Linux-サーバーのバックアップ時に除外するディレクトリは何ですか?


37

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

私はシンプルな

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

その後、誰かが別のサーバー/procを復元したくないので、バックアップしてはいけないと指摘し/procました。

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

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

回答:


24

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

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

もちろん、最良のバックアップはテストおよび検証されたものです。

そのため、必要ではないと思われるものは省略し、VMで復元して、このデータを使用してシステムを取り戻すことができることを確認してください。


5
/boot完全に省略しないでください-古いブート構成と新しいブート構成を比較する必要があるかもしれません。ただ、しないようにしてください復元 /bootを手動除き。
いんちきのキホーテ

5
また、/ sysも除外します...そして、ベアメタルに復元するには、/ etc / udev / rules.d /も除外することをお勧めします。
wazoox

2
また、ファイルシステム、/ mntおよび/ mediaがマウントされたデバイスをコピーしないようにするlost + found
ブレード

29

両方/proc/sysシステムの状態を反映して、あなたは、いくつかの実行時パラメータを変更する(そして時にはメモリに直接またはデバイスへの書き込みのように、より危険なことを行う)することを可能にする仮想ファイルシステムです。バックアップまたは復元しないでください。

ほとんどの最新のディストリビューションで/devは、起動時に動的に作成されます(udev友人や友人によって満たされたメモリファイルシステムです)。バックアップする意味はありません。復元しようとしても無駄です。ただし、使用しているディストリビューションがstaticを使用するように設定されている場合/dev、これは適用されません(メモリファイルシステムの/proc/mounts場合/devはチェックしてくださいtmpfs)。

バックアップすべきではない他のファイルシステムがあります。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だけで十分です。



8

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

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

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


4

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

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

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

繰り返しますが、これは本当にあなたがしたいバックアップの種類に依存します。これはWebサーバーですか?これはパソコンですか?これは、/ homeの下に多数のディレクトリがあるシェルサーバーですか?


私は、新しいマシンにバックアップをクローニング使用して復元したいのですが
ロリー・

「クローニング」とはどういう意味ですか?ddとsfdiskを使用してrawパーティションを常にバックアップすることができます/ sda <partition_table.part dd if = dev.sda1.img of = / dev / sda1(各パーティションについて)
Michael Pobega

コメントシステムはコードタグを好まないため、別の回答を投稿しました。
マイケルポベガ

@MichaelPobega言っているようにrawパーティションをバックアップする場合、ディスクサイズ全体をコピーする必要があります。ディスクの80BGしか使用していないのに、なぜ512GBをコピーするのですか?ではrsyncもしあなたが使用しているだけで何をコピーするだけでなく、あなたが安全にするためにcronジョブを実行することができますので、将来の同期を有効にしないだけ。
最大

今年に戻って、私の10年の経験から、@ Maxが正しいということがわかりました。
マイケルポベガ

3

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
警告:これは、パーティションがマウント解除されているか、読み取り専用でマウントされている場合にのみ実行してください。パーティションへの書き込み中にパーティションの未処理の内容をダンプすると、バックアップ上でファイルシステムの一貫性が悪くなります(ファイルシステムの開始近くのブロックは、終了近くのブロックよりも「早く」コピーされ、ファイルシステムのアルゴリズムはこれを期待してください;ファイルシステムのアトミックなスナップショットをどうにかできるなら、この問題を回避できます)。fsckはファイルシステムがディスクに書き込む順序にも依存するため、fsckは役に立ちません。
CesarB

ddは進むべき道です。もちろん、LiveCDで起動します。またdd if=/dev/urandom of=/dev/sdb bs=512 count=12、ターゲットドライブのMBRとパーティションテーブルを消去することが重要です。
–SDsolar

2

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


1

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


1

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

/ dev / proc / sys / tmp / run / media / lost + found / boot(/ bootはオプションで、他のコメントを参照)

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

$ sudo rsync -Pazhmxv --exclude / run / media --exclude / dev --exclude / lost + found --exclude / tmp --exclude / proc --exclude / boot --exclude / sys / / run / media / fred / INTENSO / fred /。

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

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


1

私は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

0

私は通常、システム上のすべてをバックアップする習慣をつけています。特定のことを知っていても、バックアップするのは無意味です。設定が簡単で、バックアップに必要なものをすべて確実に含めることができます。


1
はい、しかし、フォローアップの質問は、バックアップから何を不要として削除するのですか?
ロリー

私はこれに対して「何もない」と答えます。
マキシマスミニマス

本当です。バックアップ自体ではなく、復元プロセスから除外します。しかし、おそらくあなたはまだ省きたいですし/proc/dev貧しい人を少し混乱させないようにrsync
TJクラウダー

1
@mh、元のサーバーのメモリである/ proc / kcoreを復元しますか?それは少しばかげているように聞こえます...-
ローリー

0

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


0

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


0

質問:サーバーのバックアップ時に除外するディレクトリはどれですか?

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

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

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