rsync is a tool for fast incremental backups of remote support local, ssh, rsync host synchronization.
rsync is one of the basic components of Linux / Unix systems installed by default, so we do not need to install it manually.
[root@mysql /]# rpm -q rsync
rsync-3.0.9-17.el7.x86_64
rsync program without a configuration file, so we need to write our own:
[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 has their own account file, it is only necessary to write the account information in the account file:
[root@mysql /]# vim /etc/rsyncd_users.db
zs:123.com // :前为用户名,后为密码
[root@mysql /]# chmod 600 /etc/rsyncd_users.db # 账号采用的是明文存放,因此调整文件权限是有必要的
The user needs to backup source directory / usr / local / mysql / data corresponding read access:
[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/
Start the rsync service program, the operating parameters for the "--daemon"
[root@mysql /]# rsync --daemon # 启动
若要关闭 rsync 服务,可以采用 kill 进程的方式:
[root@mysql /]# kill $(cat /var/run/rsyncd.pid) # 停止
Local use of:
[root@localhost /]# rsync /etc/passwd /opt/ # 在本地中的这命令,个人感觉没毛用,还不如直接 cp 复制
[root@localhost /]# rsync -rl /etc/passwd /opt/ # -r 表示递归整个目录树 -l 用来备份链接文件
Download (downstream):
[root@localhost backup]# rsync -avz [email protected]::mysql /backup/
Password: // 输入密码
或
[root@localhost /]# rsync -avz rsync://[email protected]/mysql /backup/
Password:
Upload (uplink):
[root@localhost /]# rsync -avz /backup/ [email protected]::mysql
Password: // 如果backup后的/ 没有,则表示将这个目录上传,如果有则表示上传这个目录中的文件
Some commonly used rsync backup options:
Backup to work in actual production environments is often repeated execution as planned, so you need a Task Scheduler:
[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