Rsync是在两台虚拟机之间实现文件复制,CentOS7本身自带了Rsync工具,可以直接使用,备份的示例图如下:
备份的执行步骤如下:
- 在源主机(172.17.169.246)上
(1)用root用户执行:vi /etc/rsyncd.conf
打开文件后,文件中默认的内容如下:
输入以下内容替换这个文件中的内容:
uid = root
gid= root
usechroot = no
maxconnections = 4
pidfile = /var/run/rsyncd.pid
lockfile = /var/run/rsync.lock
logfile = /var/log/rsyncd.log
[www]
path= /usr/local/data
ignoreerrors
readonly = true
list= false
authusers = rsync
secretsfile = /etc/rsync.pas
其中[WWW]为路径的标志。
(2)在user/local文件夹下新建data目录,在data目录下新建1.txt文件:
cd user/local ----》mkdir user/local/data----》touch 1.txt
(3)vi /etc/rsync.pas编辑用户和密码
打开文件之后添加rsync:123456
(4)设置文件的权限:
因为rsync.pas存储了rsync服务的用户名和密码,所以非常重要。要将rsync.pas设置为root拥有, 且权限为600。
chown root.root /etc/rsync.pas OR chmod 600 /etc/rsync.pas
可以用以下命令验证是否修改成功:
ll /etc/rsync.pas
未修改之前显示:-r-------. 1 root root 12 5\u6708 11 19:10 /etc/rsync.pas
修改成功显示:-rw-------. 1 root root125\u6708 11 19:10 /etc/rsync.pas
- CentOS7添加方式: firewall-cmd --zone=public --add-port=873/tcp--permanent
重启防火墙:firewall-cmd--reload
- CentOS7版本以下添加方式: vi /etc/sysconfig/iptables
添加:-A INPUT -m state--state NEW -m tcp -p tcp --dport 873 -j ACCEPT
重启防火墙:serviceiptablesrestart
(6)启动rsync服务器 :rsync --daemon
(7)查看rsync是否启动成功:
- 第一种方法查看日志,启动后可以查看下日志,是否正常
tail /var/log/rsyncd.log是否有如下提示,有则表示启动成功:
rsyncd version 3.0.9 starting, listening on port 873
- 第二种方法查看端口号:netstat -nulpt| grep rsync
[[email protected] test]# netstat -nulpt| grep rsynctcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 6656/rsync tcp6 0 0 :::873 :::* LISTEN 6656/rsync
- 第三种方法查看进程:ps -ef | grep rsync,启动成功会出现:
root 1662 1 0 09:34 ? 00:00:00 rsync--daemon
root 6310 6068 0 17:02 pts/0 00:00:00 grep--color=auto rsync
源主机的Rsync启动成功之后:
2.在备份主机(172.17.170.173)上:
(1)创建目录test,mkdir test,用来存储备份的数据
(2)启动Rsync服务
(3)执行备份操作
[[email protected] test]# rsync -auv --progress [email protected]::www /test
Password:
receiving incremental file list
sent 54 bytes received 112 bytes 47.43 bytes/sec
total size is 9 speedup is 0.05
(4)进入test目录:
源主机data目录下的1.txt文件备份成功到备份主机中的test文件夹下了。
介绍一些Rsync常见的基本命令:
(1)重新启动rsync服务(不行的话,查看rsyncd.log文件,kill掉服务,重新执行以下代码)
rsync --daemon --config=/etc/rsyncd.conf
systemctl start rsyncd.service
systemctl enable rsyncd.service
vi /etc/rc.local
在文件最后加入一行:/usr/local/rsync/bin/rsync--daemon
(3)检查是否安装Rsync:使用rpm -qa|grep rsync命令检测
如果安装了会出现:[[email protected] test]# rpm -qa|grep rsync
rsync-3.0.9-17.el7.x86_64
否则安装命令为:yum -y install rsync
(4)关闭rsync服务
(5)在rsync传输数据出现如下错误:
- 要关闭rsync服务,如果是源码方式安装的,我们可以直接通过pkill rsync命令进行关闭。如下:
pkill rsync
- 如果是通过yum方式进行安装的,我们可以通过关闭xinetd服务来达到关闭rsync服务的目的。如下:
/etc/init.d/xinetd stop
- 除了以上两种方法之外,我们还可以通过比较暴力的方法关闭rsync服务。如下:
kill -9 6780
在传输数据的时候出现auth failed on module www
这个原因主要是找不到密码,或者密码,用户名错误,我这边主要是/etc/rsyncd.conf 这里面写了中文注释,识别不了,所以报错,去掉注释就能找到密码了。