rsync でバックアップを行うメモ

本記事は最終更新日より 1 年以上経過しております。
スポンサーリンク

 昔からバックアップは rsync で別の HDD へ同期させる形をとっていた。わざわざディレクトリ毎に 1 行 rsync コマンドを記述していたのだが、そんな事をせずとも必要な所、不要な所をリスト化しておいて読ませればそれだけで済む事を今更知った。まだまだ知らないことだらけだ……


 rsync を用いたバックアップスクリプト。わざわざスクリプトにする意味あるのかと思う所だが……

#!/bin/bash

DST=/storage/usb
/bin/rsync -auv --delete --exclude-from=/etc/rsync_system_backup / $DST

 ソースはルート “/” としておりバックアップ先は /storage/usb にした。USB 接続の HDD にバックアップする形を取っている。
 “–exclude-from=“ で参照しているバックアップ対象にしている中身は次の通りに。

+ /bin/***
+ /boot/***
+ /etc/***
+ /lib/***
+ /lib64/***
+ /opt/***
+ /sbin/***
+ /usr/***
+ /var/***
- /var/tmp/*
+ /root/***
+ /home/***

- *

 この様になっている。“***” となっているアスタリスク x3 は「そのディレクトリも含めたディレクトリ以下のファイル全て」と、さらにサブディレクトリ以下のファイルも全部の意。
 アスタリスク 1 つなら普通にファイルとディレクトリ全てとなり、サブディレクトリ以降は掘り下げない。
 最後の行 “- *” では、要するに指定していない物以外は全て除外する。という事になる。

 一度実行してみる前に、rsync の引数へ n を追加して Dry Run とすること。実際にファイルの転送は行われないから、動作チェックに役立つ。“–delete” を付けるのであれば必ず確認しないと、ミスしたらファイル消えるので要注意。

スポンサーリンク