トーク:rsync でディレクトリの同期(バックアップ)
提供:maruko2 Note.
/var/www/html 内のファイル&ディレクトリを、rsyncd サーバに別のディレクトリ名でコピーする
ソースで指定するディレクトリ名の最後にスラッシュを付けないようにすることで、/var/www/html ディレクトリ名が html_20090119 に変更されてコピーできる。
# rsync -av \ /var/www/html \ rsync://rsync_user@192.168.1.2/backup/html_20090119
ソースで指定するディレクトリ名の最後にスラッシュを付けると、html_20090119/html というディレクトリになってコピーされてしまう。
# rsync -av \ /var/www/html/ \ rsync://rsync_user@192.168.1.2/backup/html_20090119
CentOS 起動スクリプト(rc スクリプト)
/etc/init.d/rsyncd
の例。
#!/bin/bash # chkconfig: - 85 15 # description: rsyncd RETVAL=0 prog="/usr/bin/rsync" pidfile="/var/run/rsyncd.pid" OPTIONS="--daemon --config=/etc/rsyncd.conf" . /etc/rc.d/init.d/functions start() { echo -n "Starting $prog:" daemon $prog $OPTIONS RETVAL=$? echo [ $RETVAL = 0 ] && touch $pidfile return $RETVAL } stop() { echo -n "Stopping $prog:" killproc $prog RETVAL=$? echo rm -f $pidfile return $RETVAL } case $1 in start ) start ;; stop ) stop ;; restart) stop && start ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac
OS 起動時に自動起動させるには chkconfig
で登録する。
chkconfig --add rsyncd chkconfig rsyncd on
起動、停止は次のようになる。
/etc/init.d/rsyncd start /etc/init.d/rsyncd stop
/etc/rsyncd.conf
のすごく簡単な例。
uid = root gid = root log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid [opt] comment = rsyncd server path = /opt read only = no