作業: /etc/cron.daily/rsync を書く.以下.root に実行許可を出す.
#!/bin/sh # /etc/cron.daily/rsync # Kyoma T. 990421 rsync -avz --delete /etc/ /home/etc.bak/ && rsync -avz --delete /var/qmail/alias/ /home/var_qmail_alias.bak/ && rsync -avz --delete /usr/lib/im/ /home/usr_lib_im.bak/ && rsync -avz --delete /usr/lib/mh/ /home/usr_lib_mh.bak/ && rsync -avz --delete /home/ /home.bk/ &バックアップ元・先のディレクトリの指定において, 末尾のスラッシュ (/) の有無は大きな意味を持つ. 上の例では,...以下のファイルを...以下にバックアップせよ, という意味になる.
/usr/doc/rsync/README によれば,
Options: -v, --verbose increase verbosity -a, --archive archive mode (same as -rlptDog) -r, --recursive recurse into directories -l, --links preserve soft links -p, --perms preserve permissions -o, --owner preserve owner (root only) -g, --group preserve group -D, --devices preserve devices (root only) -t, --times preserve times --delete delete files that don't exist on the sending side -z, --compress compress file data
実行してみる.
# /etc/cron.daily/rsync
$ ls /home* -altとして,UID, GID, time-stamp が変更されることなくバックアップされることを確認.
rsync -avz --delete --exclude-from /home/exclude_list /home/ /home.bak/ &などとする.--exclude-from /home/exclude_list を追加するということ.
/home/exclude_list の例は以下.
exclude_list exclude_file_example exclude_dir_example
/home/{exclude_list,exclude_file_example,exclude_dir_example/} は, バックアップされないことを確認.
もう一つの方法として,--exclude オプションを使ってファイル名を指定する方法がある.
rsync -avz --delete --exclude lost+found /home/ /home.bk/ &とすれば,/home/lost+found はバックアップされない.
25 6 * * * root run-parts --report /etc/cron.dailyとある.すなわち,/etc/cron.daily/* は毎日 06:25 に実行されるはずである.
cron は,cron 実行レポート(標準出力)をメールしてくる. /etc/crontab に MAILTO="" と書けば, このレポートメールは出されなくなるし, 宛先ユーザを指定することもできる.詳細は crontab(5). これは,crontab(1) で扱う crontab においても同様である.
以下は,Cron Daemon からの root 宛のメールである(一部).
Date: 21 Apr 1999 21:25:01 -0000 From: root@blue.sci.hokudai.ac.jp (Cron Daemon) To: root@blue.sci.hokudai.ac.jp Subject: Cron/etc/cron.daily/rsync が実行されていることを確認. Date: 21 Apr 1999 21:25:01 -0000 は JST (+0900) に直せば 22 Apr 06:25:01 となり,設定通り 06:25 に動いたことがわかる.run-parts --report /etc/cron.daily ... /etc/cron.daily/rsync: ... wrote 54925 bytes read 54 bytes 12217.56 bytes/sec total size is 42898713 speedup is 780.27