システムをバックアップするためにrsyncを使用して何を含めて除外する必要がありますか?

システムをバックアップするためにrsyncを使用して何を含めて除外する必要がありますか?

私は一日中rsyncを試しましたが、exclude-from成功include-fromせず完全に消えました。私が見つけた例やヘルプのどれも正確ですが、非常に単純な要件に対する答えを見つけることができません。

毎日自動バックアップを設定しようとしていますが、過去数日間試してみた結果、この非常に良いウェブサイト、増分バックアップを注意深く観察し、すべてがうまく機能しているかどうかをテストしながら、除外および含まずに/home/Harryディレクトリを練習して実行する手順に達しました。私も私のためにそれを実行するためにcronタスクを設定しました。

誰かがrsyncとcron以外のものを使用することを提案する前に、毎晩11時から30時まで実行し、数分後にコンピュータをシャットダウンするようにスケジュールします。これはテストでもうまくいきました。その日はバックアップすることがないので、コンピュータの電源が入っていなくても構いません。

さらに進歩するために、Mark Sobellの「A Practical Guide to Fedora and Red Hat LInux」(7版607ページ)と他の情報源の提案を使用して改善したいと思います。含む /home/、および/var/;/usr/local//etc/入らないようにする /tmp//var/tmp//usr/tmp//proc/,/sys/ および/var/cache/

私は尋ねたいです。まず、このリストは妥当ですか?第二:rsync呼び出しでこの要件をどのように指定しますか?


私の質問に答えて追加しました。

私の元の質問に答えてくれた皆さんに感謝します。これで、以下のスクリプトにリストされている作業ソリューションが作成されました。私の経験は、同様のことを試している人に便利です。マイケル・ホルナーは私に何が間違っているのか見せるように頼んだ。このループの仕組みと必要な最小ストレージスペースの完全な説明については、リファレンスWebサイトを参照してください。

以前の実験はスクリプトのコメント付き行に記録されており、これが私がテストに使用したものです。最初は、いくつかのテストファイルをバックアップし、後でバックアップを外部ハードドライブに保存しようとしました。私のアプローチは、何かを変更するときに元のコンテンツを維持し、コメントアウトして変更を記録し、必要に応じて戻ることができるようにすることです。

CA6で始まる長い識別子は、おそらく10日ごとに毎日バックアップを保存したい1TB外付けハードドライブ用です。また、毎週バックアップに使用する750GBドライブもあります。おそらく1年に1回程度でしょう。スクリプトの終わりに、このループにはまだ注意が必要であることがわかります。

衝突が発生した場合、システムを正確に復元する必要があるかどうかは関係ありません。私は以前3台のコンピュータを所有していましたが、そのうちの1つも故障していませんでした。しかし、外付けハードドライブに手動バックアップをアーカイブし、今は必要なすべての素材のソースとして使用しています。そのため、簡単なインストールから始めて、必要に応じて必要なものを追加します。

exclude-from私の質問からわかるように、rsyncを試してみましたが、include-from必要なファイルの種類を理解できませんでした。後で長いリストをファイルに入れることもできます。

#!/bin/bash
# Adapted from: http://webgnuru.com/linux/rsync_incremental.php
#  Website Backup Script
#======================================================================
# Define Variables
# Todays date in ISO-8601 format e.g. 2013-10-19:
DAY0=`date -I` 
# Yesterdays date in ISO-8601 format:
DAY1=`date -I -d "1 day ago"`
# The source directory:
SRC="/home/Harry/testrsync/bravo/"
#SRC="/home/Harry/"
# Filename of list of files to include
INC="/home/Harry/testrsync/include"
# Filename of file list to exclude
EXC="/home/Harry/testrsync/exclude"
# The target directory:
#TRG="/home/Harry/testrsync/backups/$DAY0"
TRG="/run/media/Harry/CA6C321E6C32062B/annals/$DAY0"
# The link destination directory:
#LNK="/home/Harry/testrsync/backups/$DAY1"
LNK="/run/media/Harry/CA6C321E6C32062B/$DAY1"
# The log file
#LOG="--logfile="/home/Harry/testrsync/backups/bulog --log-file-format="%t\n";""
LOG="--log-file=/home/Harry/testrsync/backups/bulog"
#The rsync options:
#OPT="--dry-run -avh --delete --link-dest=$LNK"
OPT="-aAXvh --delete --link-dest=$LNK"
#OPT="-ah --delete --link-dest=$LNK"
#======================================================================
#Execute the backup
#rsync -avvv $OPT --include-from=$INC --exclude-from=$EXC $SRC $TRG $LOG
#rsync -avv $OPT --include-from=$INC $SRC $TRG $LOG
#rsync $OPT--delete --stats --exclude-from=$EXC /home/Harry /var /usr/local /etc $TRG $LOG
rsync $OPT --exclude {"/dev/*","/proc/*","/sys/*","/tmp/*","/usr/tmp/*","/run/*","/mnt/*","/media/*","/var/cache/*","var/tmp/*","/","/lost+found"} /* $TRG $LOG
#Delete old backups cyclically
# for my tests I am going to use a three day cycle
DAY4=`date -I -d "4 days ago"`
#Delete the backup from 4 days ago, if it exists
if [ -d /home/Harry/testrsync/backups/$DAY4 ]
then
rm -r /home/Harry/testrsync/backups/$DAY4
#rm -r /run/media/HarryCA6C321E6C32062B/$DAY4
fi
# Cron does not output to a screen, so no result from next line
# zenity --info --text='Backup complete' --title="Backup Test"

ベストアンサー1

(ルートファイルシステム)を含み/、バックアップしたい他のファイルシステムのルートを含めます(たとえば、/home別のパーティションにある場合はそのルートも含みます)。-x他のすべてのファイルシステム(/procおよびメモリ内ファイルシステム/sys、マウントされたリムーバブルメディア、リモートファイルシステムなど)を除外するには、このオプションを使用します。

バックアップしたくないファイルを除外してください。/tmp一般的な候補でも、/var/tmp一部のディレクトリなどでも構いません。/var/cache

バックアップスペースは高価なため、ソフトウェアパッケージからインストールされたプログラムなど、簡単に回復できるファイルはバックアップしたくありません。したがって/usr、除外する必要があります/usr/local。バラよりRsyncフィルタ:1つのパターンのみをコピーrsync 包含および除外リストの紹介ガイドです。あなたは次のようなものが欲しいでしょう

rsync -ax --exclude='/tmp/*' --include=/usr/local --exclude=/usr / backup:

おすすめ記事