rsync 是一个远程快速增量备份的工具,支持本地、ssh、rsync 主机同步。
rsync 是 Linux/Unix 系统默认安装的基本组件之一,所以不需要我们手动安装。

[root@mysql /]# rpm -q rsync
rsync-3.0.9-17.el7.x86_64

使用 rsync 工具备份_第1张图片
rsync 程序不带配置文件,所以我们需要自行编写:

[root@mysql /]# vim /etc/rsyncd.conf 
....... 省略部分内容
uid = nobody                 
gid = nobody
use chroot = yes                           // 禁锢在源目录
address = 192.168.1.10               // 监听地址,可省略掉
port 873                                        // 监听端口
log file = /var/log/rsyncd.log          // 指定日志文件位置
pid file = /var/run/rsyncd.pid         // 存放进程 ID 的文件位置
[mysql]                                         // 共享模块名称
        path = /usr/local/mysql/data      // 源目录的路径
        comment = aaaa                     // 描述,可省略掉
        read only = no                         // 是否为只读,no为读取写入都可以
        dont compress   = *.gz *.tgz *.zip *.z *.Z *.rpm *.deb *.bz2        // 同步时不再压缩的文件类型
        auth users = zs                        // 授权账户
        secrets file = /etc/rsyncd_users.db             // 存放账户信息的数据文件

rsync 拥有属于自己的账号文件,所以只需要在账号文件中写入账号信息即可:

[root@mysql /]# vim /etc/rsyncd_users.db 
zs:123.com                   // :前为用户名,后为密码
[root@mysql /]# chmod 600 /etc/rsyncd_users.db       # 账号采用的是明文存放,因此调整文件权限是有必要的 

备份用户需要对源目录 /usr/local/mysql/data 有相应的读取权限:

[root@mysql /]# chmod -R 755 /usr/local/mysql/data/
[root@mysql /]# ll -d /usr/local/mysql/data/
drwxr-xr-x 5 mysql mysql 160 Aug 21 15:15 /usr/local/mysql/data/

启动 rsync 服务程序,运行参数为“ --daemon”

[root@mysql /]# rsync --daemon                     # 启动
若要关闭 rsync 服务,可以采用 kill 进程的方式:
[root@mysql /]# kill $(cat /var/run/rsyncd.pid)    # 停止

在本地中使用:

[root@localhost /]# rsync /etc/passwd /opt/               # 在本地中的这命令,个人感觉没毛用,还不如直接 cp 复制
[root@localhost /]# rsync -rl /etc/passwd /opt/                   # -r 表示递归整个目录树   -l 用来备份链接文件

下载(下行):

[root@localhost backup]# rsync -avz   [email protected]::mysql   /backup/
Password:                // 输入密码
或
[root@localhost /]# rsync -avz rsync://[email protected]/mysql /backup/
Password: 

上传(上行):

[root@localhost /]# rsync -avz  /backup/  [email protected]::mysql
Password:                                  // 如果backup后的/ 没有,则表示将这个目录上传,如果有则表示上传这个目录中的文件

rsync 的一些常用备份选项:
使用 rsync 工具备份
使用 rsync 工具备份_第2张图片
在实际生产环境中的备份工作往往是按照计划重复执行的,所以需要一个任务计划:

[root@localhost /]# vim /etc/server.pass              # 为了在同步过程中不用输入密码,所以创建一个密码文件
123.com
[root@localhost /]# chmod 600 /etc/server.pass                 # 配置权限
[root@localhost /]# crontab -e 
30      22      *       *       *       /usr/bin/rsync -avz --delete --password-file=/e
tc/server.pass [email protected]::mysql /backup
[root@localhost /]# systemctl status crond.service                 # 确保服务已经启动
● crond.service - Command Scheduler
   Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
   Active: active (running) since 四 2019-08-22 00:37:47 CST; 13min ago
 Main PID: 1005 (crond)
   CGroup: /system.slice/crond.service
           └─1005 /usr/sbin/crond -n