安装Rsync文件同步服务
uBuntu系统默认安装Rsync服务,查看帮助文档:
# rsync -h
本地文件夹同步命令:
# rsync -auvrtzopgP --progress /root/ /tmp/rsync_bak/
同步到远程服务器
在服务器间rsync传输文件,需要有一个是开着rsync的服务,而这一服务需要两个配置文件,说明当前运行的用户名和用户组,这个用户名和用户组在改变文件权限和相关内容的时候有用,否则有时候会出现提示权限问题。配置文件也说明了模块、模块化管理服务的安全性,每个模块的名称都是自己定义的,可以添加用户名密码验证,也可以验证IP,设置目录是否可写等,不同模块用于同步不同需求的目录。
/etc/rsyncd.conf:
uid=0
gid=0
use chroot=no
#有多少个客户端同时传文件
max connections=10
#超时时间
timeout=600
strict modes=yes
port=873
#进程号文件
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
#日志文件
log file=/var/log/rsyncd.log
[cxnt2]
path=/mnt/shared
comment=rsync for cxnt2 shared folder
auth users=cxnt2
uid=cxnt2
gid=cxnt2
secrets file=/etc/rsyncd.secrets
read only=yes
list=no
hosts allow=192.168.100.59
/etc/rsyncd.secrets:
cxnt2:cxnt*898
一行一个用户,用户名:密码。请注意这里的用户名和密码与操作系统的用户名密码无关,可以随意指定,与/etc/rsyncd.conf中的auth users对应。
修改权限:
chmod 600 /etc/rsyncd.secrets
检查服务端是否启动:
root@ubuntu:/mnt# ps -elf | grep rsync
0 S root 1819 1595 0 80 0 - 2619 pipe_w 11:35 pts/0 00:00:00 grep --color=auto rsync
启动rysnc服务:
root@ubuntu:/mnt# rsync --daemon
root@ubuntu:/mnt# ps -elf | grep rsync
5 S root 1821 1 0 80 0 - 3688 poll_s 11:36 ? 00:00:00 rsync --daemon
0 S root 1829 1595 0 80 0 - 2619 pipe_w 11:37 pts/0 00:00:00 grep --color=auto rsync
客户端测试同步
单向同步时,客户端只需要一个包含密码的文件。/etc/rsync_client.pwd:
cxnt*898
设置密码文件权限(至关重要,密码文件权限不对会造成异常:@ERROR: auth failed on module XXx)
chmod 600 /etc/rsync_client.pwd
# /usr/bin/rsync -auvrtzopgP --progress --password-file=/etc/rsync_client.pwd cxnt2@192.168.100.62::cxnt2 /mnt/shared
安装Inotify-tools工具,实时触发rsync进行同步
查看内核是否支持inotify
列出文件目录,出现下面的内容,说明服务器内核支持inotify, 备注:Linux下支持inotify的内核最小为2.6.13,可以输入命令:uname -a查看内核。
root@ubuntu:/opt# ll /proc/sys/fs/inotify
total 0
dr-xr-xr-x 1 root root 0 Apr 1 14:13 ./
dr-xr-xr-x 1 root root 0 Apr 1 14:07 ../
-rw-r--r-- 1 root root 0 Apr 1 14:13 max_queued_events
-rw-r--r-- 1 root root 0 Apr 1 14:13 max_user_instances
-rw-r--r-- 1 root root 0 Apr 1 14:13 max_user_watches
安装inotify-tools
在代码(主)服务器(192.168.1.61)上安装inotify,执行如下命令
apt-get install inotify-tools