私は一日中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:
答え2
rsyncを使用してシステム全体のバックアップを実行できます。不要なすべてのディレクトリに --exlude=PATTERN を使用できます。
rsync - 高速でさまざまなリモート(およびローカル)ファイルコピーツール
-a, --archive archive mode; equals -rlptgoD (no -H,-A,-X)
-A, --acls preserve ACLs (implies -p)
-X, --xattrs preserve extended attributes
-v, --verbose increase verbosity
例:
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/usr/tmp/*","/run/*","/mnt/*","/media/*","/var/cache/*","/","/lost+found"} /* /path/to/some/backup/folder
答え3
だから- 入らないようにするファイルは次のとおりです。
var/tmp/
var/cache/
次のようにrsyncを使用します。
rsync -aAv --delete --stats --exclude-from /excludes /home /var /usr/local /etc /Backup/
答え4
に基づいてバックアップにはどのフォルダが含まれますか?、表示されているフォルダ/ファイルを除外することを選択しました。
#!/bin/bash
sudo rsync -aAXvlH --delete --exclude={"/bin/*","/boot/*","/dev/*","/home/*","/lib/*","/lib32/*","/lib64/*","/media/*","/mnt/*","/NAS/*","/Pool-1tb/*","/Pool-500gb/*","/proc/*","/run/*","/sbin/*","/srv/*","/sys/*","/tmp/*","/usr/bin/*","/usr/games/*","/usr/include/*","/usr/lib/*","/usr/lib32/*","/usr/libexec/*","/usr/sbin/*","/usr/share/*","/usr/src/*",".Trash*"} / /NAS/System\ Files/
これが私が使用するフラグです:
-a - Archive mode includes among other things, the options -o and -g, which preserves owners and groups. This requires that you run rsync as root.
-A - Preserve Access Control List.
-X - Preserve extended attributes.
-v - It will show the progress of the backup.
-l - Copy symlinks as symlinks.
-H - Preserve hard links.
その後、上記のコードを含むファイルのcronジョブを作成しました。
Synologyでrsyncを実行したときに発生する多数のシンボリックリンクエラーを解決するには、Control Panel / File Services / SMB / Advanced Settings
[共有フォルダでシンボリックリンクを許可する]の横にあるチェックボックスを選択する必要がありました。使用しているNASによっては、同様の設定があります。
この内容が役立つ場合は投票してください。建設的な批判も大歓迎です。ありがとうございます!