2004年08月09日
rsync の使い方
rsync はファイルのコピーやディレクトリのコピーをするツールである.また,リモートホストにコピーすることもできる.同期を取ったり,バックアップをするために用いられる.ファイルの差分を検知して必要なファイルだけをコピーする仕組みが組み込まれているため効率が良い.
(UNIXでのバックアップ)
rsync で重要になってくるオプションに次のようなものがある.
-H, --hard-links preserve hard links
-v, --verbose increase verbosity
-a, --archive archive mode, equivalent to -rlptgoD
-r, --recursive recurse into directories
-l, --links copy symlinks as symlinks
-p, --perms preserve permissions
-t, --times preserve times
-g, --group preserve group
-o, --owner preserve owner (root only)
-D, --devices preserve devices (root only)
--delete delete files that don't exist on the sending side
--delete-excluded also delete excluded files on the receiving side
--exclude=PATTERN exclude files matching PATTERN
いくつかのディレクトリを,/backupディレクトリ(当然別のディスクにある)にコピーするならば,次のようなスクリプト rsync.sh を実行すればよい.
#! /bin/sh
RSYNC=/usr/local/bin/rsync
OPTIONS="-Hav --delete --delete-excluded"
${RSYNC} ${OPTIONS} /etc /backup
${RSYNC} ${OPTIONS} /root /backup
${RSYNC} ${OPTIONS} /home /backup
EXCLUDE="--exclude /local/var/authdaemon"
${RSYNC} ${OPTIONS} ${EXCLUDE} /usr/local /backup
EXCLUDE="--exclude /var/run --exclude /var/qmail/queue/lock"
${RSYNC} ${OPTIONS} ${EXCLUDE} /var /backup
これをcronで定期的に実行すれば,簡単なバックアップとなる.
root# crontab -l
# 05:00 every day
0 5 * * * /root/rsync/rsync.sh > /root/rsync/log 2>&1