Rsync是在两台虚拟机之间实现文件复制,CentOS7本身自带了Rsync工具,可以直接使用,备份的示例图如下:

centos 自动备份 mysql centos7整机备份_txt文件

备份的执行步骤如下:

  1. 在源主机(172.17.169.246)上

    (1)用root用户执行:vi /etc/rsyncd.conf

打开文件后,文件中默认的内容如下:

centos 自动备份 mysql centos7整机备份_centos 自动备份 mysql_02

输入以下内容替换这个文件中的内容:

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


(5)添加防火墙端口号873


  • 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

   [root@bgroup11 test]# netstat -nulpt| grep rsync

    tcp    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)执行备份操作

[root@bgroup11 test]# rsync -auv --progress  rsync@172.17.169.246::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


(2)加入rc.local 随系统启动:


vi /etc/rc.local

在文件最后加入一行:/usr/local/rsync/bin/rsync--daemon

(3)检查是否安装Rsync:使用rpm -qa|grep rsync命令检测

如果安装了会出现:[root@bgroup11 test]#  rpm -qa|grep rsync

rsync-3.0.9-17.el7.x86_64

否则安装命令为:yum -y install rsync

(4)关闭rsync服务

  • 要关闭rsync服务,如果是源码方式安装的,我们可以直接通过pkill rsync命令进行关闭。如下:

pkill rsync

  • 如果是通过yum方式进行安装的,我们可以通过关闭xinetd服务来达到关闭rsync服务的目的。如下:

/etc/init.d/xinetd stop

  • 除了以上两种方法之外,我们还可以通过比较暴力的方法关闭rsync服务。如下:

kill -9 6780

(5)在rsync传输数据出现如下错误:


centos 自动备份 mysql centos7整机备份_备份_03

在传输数据的时候出现auth failed on module www

这个原因主要是找不到密码,或者密码,用户名错误,我这边主要是/etc/rsyncd.conf 这里面写了中文注释,识别不了,所以报错,去掉注释就能找到密码了。