rsync+inotifyサービスの導入
7368 ワード
rsync+inotifyの導入 rsync概要rsyncはlinuxシステムのデータミラーバックアップツールです.高速インクリメンタルバックアップツールRemote Syncを使用すると、リモート同期、ローカルレプリケーションのサポート、または他のssh、rsyncと同期できます. inotify概要inotifyは強力で、細粒度の、非同期のファイルシステムイベント監視メカニズムであり、linuxカーネルは2.6.13からinotifyサポートに加入している.inotifyによってファイルシステムにおける追加、削除、修正、移動などの各種の微細なイベントを監視することができ、このカーネルインタフェースを利用して、サードパーティのソフトウェアはファイルシステムの下のファイルの各種の変化状況を監視することができ、inotify-toolsはこのようなサードパーティのソフトウェアである.
環境説明:シミュレーションには2台のサーバが必要です.1台はソースサーバ、1台はターゲットサーバです.ここで、ソースサーバアドレスは192.168.226.128であり、ターゲットサーバアドレスは192.168.226.130である.
需要:ソースサーバ/hxdディレクトリをターゲットサーバ/tmp/hxd/ディレクトリにリアルタイムで同期するターゲットサーバ の構成ソースサーバ の構成
これでrsync+inotifyが構築されます
環境説明:シミュレーションには2台のサーバが必要です.1台はソースサーバ、1台はターゲットサーバです.ここで、ソースサーバアドレスは192.168.226.128であり、ターゲットサーバアドレスは192.168.226.130である.
需要:ソースサーバ/hxdディレクトリをターゲットサーバ/tmp/hxd/ディレクトリにリアルタイムで同期する
// selinux
[root@hxdserver ~]# systemctl stop firewalld
[root@hxdserver ~]# systemctl disable firewalld
[root@hxdserver ~]# getenforce
Enforcing
[root@hxdserver ~]# setenforce 0
[root@hxdserver ~]# vim /etc/sysconfig/selinux
SELINUX=disabled //
// rsync
[root@hxdserver ~]# yum install -y rsync
// /etc/rsyncd.conf
[root@hxdserver ~]# vim /etc/rsyncd.conf
log file = /var/log/rsyncd.log
pidfile = /var/run/rsync.pid
lock file = /var/run/rsync.lock
secrets file = /etc/rsync.pass
[hxd]
path = /tmp/hxd
comment = sync etc from client
uid = root
gid = root
port = 873
ignore errors
use chroot = no
read only = no
list = no
max connections = 200
timeout = 600
auth users = dubai
hosts allow = 192.168.226.128
hosts deny = 172.16.1.1
//
//
[root@hxdserver ~]# echo 'dubai:123' > /etc/rsync.pass
[root@hxdserver ~]# cat /etc/rsync.pass
dubai:123
//
[root@hxdserver ~]# chmod 600 /etc/rsync*
[root@hxdserver ~]# ll /etc/rsync*
-rw-------. 1 root root 854 9 18 19:20 /etc/rsyncd.conf
-rw-------. 1 root root 10 9 18 19:27 /etc/rsync.pass
// rsync
[root@hxdserver ~]# systemctl start rsyncd
[root@hxdserver ~]# systemctl enable rsyncd
Created symlink from /etc/systemd/system/multi-user.target.wants/rsyncd.service to /usr/lib/systemd/system/rsyncd.service.
[root@hxdserver ~]# ss -antl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 5 *:873 *:*
LISTEN 0 128 :::80 :::*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 5 :::873 :::*
// selinux
[root@Hongxiande ~]# systemctl stop firewalld
[root@Hongxiande ~]# systemctl disable firewalld
[root@Hongxiande ~]# getenforce
Disabled
// yum
[root@Hongxiande ~]# yum install -y wget
[root@Hongxiande ~]# cd /etc/yum.repos.d/
[root@Hongxiande yum.repos.d]# wget http://mirrors.163.com/.help/CentOS7-Base-163.repo
[root@Hongxiande yum.repos.d]# sed -i 's/\$releasever/7/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@Hongxiande yum.repos.d]# sed -i 's/^enabled=.*/enabled=1/g' /etc/yum.repos.d/CentOS7-Base-163.repo
[root@Hongxiande yum.repos.d]# yum clean all
[root@Hongxiande yum.repos.d]# yum install -y epel-release
// rsync , , 。
[root@Hongxiande ~]# yum install -y rsync
// 。
[root@Hongxiande ~]# echo '123' > /etc/rsync.pass
[root@Hongxiande ~]# cat /etc/rsync.pass
123
[root@Hongxiande ~]# chmod 600 /etc/rsync.pass
[root@Hongxiande ~]# ls
anaconda-ks.cfg
[root@Hongxiande ~]# mkdir -p hxd/xixi
[root@Hongxiande ~]# ls
anaconda-ks.cfg hxd
[root@Hongxiande ~]# rsync -acH --port 873 --progress --delete /root/hxd [email protected]::hxd --password-file=/etc/rsync.pass
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
// , dubai 。 hxd 。
// dubai /tmp/hxd
[root@hxdserver ~]# useradd dubai
[root@hxdserver ~]# cd /tmp/
[root@hxdserver tmp]# mkdir hxd
//
[root@Hongxiande ~]# rsync -acH --port 873 --progress --delete /root/hxd [email protected]::hxd --password-file=/etc/rsync.pass
sending incremental file list
hxd/
hxd/xixi/
[root@hxdserver ~]# ls /tmp/hxd/
hxd
//
// inotify-tools , rsync
// inotify
[root@Hongxiande ~]# ll /proc/sys/fs/inotify/
0
-rw-r--r-- 1 root root 0 9 19 09:41 max_queued_events
-rw-r--r-- 1 root root 0 9 19 09:41 max_user_instances
-rw-r--r-- 1 root root 0 9 19 09:41 max_user_watches
// max inotify
// inotify-tools
[root@Hongxiande ~]# yum install -y inotify-tools
// , ,
// , rsync
[root@Hongxiande ~]# mkdir /scripts
[root@Hongxiande ~]# touch /scripts/inotify.sh
[root@Hongxiande ~]# chmod 755 /scripts/inotify.sh
[root@Hongxiande ~]# ll /scripts/inotify.sh
-rwxr-xr-x 1 root root 0 9 19 09:56 /scripts/inotify.sh
//
[root@Hongxiande ~]# vim /scripts/inotify.sh
host=192.168.226.130
src=/root/hxd
des=hxd
password=/etc/rsync.pass
user=dubai
inotifywait=/usr/bin/inotifywait
$inotifywait -mrq --timefmt '%Y%m%d %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src \
| while read files ;do
rsync -avzP --delete --timeout=100 --password-file=${password} $src $user@$host::$des
echo "${files} was rsynced" >>/tmp/rsync.log 2>&1
done
//
//
[root@Hongxiande ~]# nohup bash /scripts/inotify.sh &
[root@Hongxiande ~]# nohup bash /scripts/inotify.sh &
[1] 1851
[root@Hongxiande ~]# nohup: "nohup.out"
[root@Hongxiande ~]# ps -ef|grep inotify
root 1851 1243 0 10:22 pts/0 00:00:00 bash /scripts/inotify.sh
root 1852 1851 0 10:22 pts/0 00:00:00 /usr/bin/inotifywait -mrq --timefmt %Y%m%d %H:%M --format %T %w%f%e -e modify,delete,create,attrib /root/hxd
root 1853 1851 0 10:22 pts/0 00:00:00 bash /scripts/inotify.sh
root 1857 1243 0 10:23 pts/0 00:00:00 grep --color=auto inotify
//
[root@Hongxiande ~]# touch hxd/xixi/test
[root@Hongxiande ~]# echo 'hello world' > hxd/xixi/test
// inotify
[root@Hongxiande ~]# tail /tmp/rsync.log
20180919 10:34 /root/hxd/xixi/testCREATE was rsynced
20180919 10:34 /root/hxd/xixi/testATTRIB was rsynced
20180919 10:34 /root/hxd/xixi/testMODIFY was rsynced
//
//
[root@hxdserver ~]# cat /tmp/hxd/hxd/xixi/test
hello world
//
//
[root@Hongxiande ~]# chmod +x /etc/rc.
rc.d/ rc.local
[root@Hongxiande ~]# chmod +x /etc/rc.d/rc.local
[root@Hongxiande ~]# ll /etc/rc.d/rc.local
-rwxr-xr-x. 1 root root 473 6 27 2017 /etc/rc.d/rc.local
[root@Hongxiande ~]# vim /etc/rc.d/rc.local
nohup /bin/bash /scripts/inotify.sh //
これでrsync+inotifyが構築されます
//
[root@Hongxiande ~]# rsync -acH --port 873 --progress --delete /root/hxd [email protected]::hxd --password-file=/etc/rsync.pass
@ERROR: chdir failed
rsync error: error starting client-server protocol (code 5) at main.c(1648) [sender=3.1.2]
// , dubai 。 hxd 。
// dubai /tmp/hxd