1、本机同步
a)本地数据同步的时候,源目录后面的“/”会影响同步的结果
b)# rsync -av /dir1/ /dir3 //只同步目录下面的文件到指定的路径
c)# rsync -av /dir1 /dir2 //将当前目录dir1和目录下的所有文件一起同步
-R:不管加不加“/”,都会将源数据的绝对路径一起同步
--delete:删除目标目录里多余的文件
[root@jumper-server dir1]# rsync -av --delete ~/dir1/ ~/dir2/
2、远程同步
[root@jumper-server dir1]# rsync -avR ~/dir1/ root@192.168.10.29:/tmp/backup 【需要输入密码】
3、rsync作为后台程序使用
在app1机器上,进行相关配置
存放代码路径
[root@app1-server ~]# mkdir -p /tmp/java_project
[root@app1-server ~]# ll /tmp/java_project/
total 0
[root@app1-server ~]#
[root@app1-server java_project]# touch file{1..5}
[root@app1-server java_project]# ll
total 0
-rw-r--r-- 1 root root 0 Jul 17 15:50 file1
-rw-r--r-- 1 root root 0 Jul 17 15:50 file2
-rw-r--r-- 1 root root 0 Jul 17 15:50 file3
-rw-r--r-- 1 root root 0 Jul 17 15:50 file4
-rw-r--r-- 1 root root 0 Jul 17 15:50 file5
[root@app1-server java_project]#
a)创建主配置文件/etc/rsyncd.conf
[root@app1-server ~]# cat /etc/rsyncd.conf
[app1]
path = /tmp/java_project
log file = /var/log/rsync.log
[root@app1-server ~]#
b)作为后台程序启动它
[root@app1-server ~]# rsync --daemon
c)查看端口是否开启
[root@app1-server ~]# netstat -ntlp |grep 873
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 2231/rsync
tcp 0 0 :::873 :::* LISTEN 2231/rsync
[root@app1-server ~]#
[root@app1-server ~]# ss -nltp |grep 873
LISTEN 0 5 :::873 :::* users:(("rsync",2231,5))
LISTEN 0 5 *:873 *:* users:(("rsync",2231,4))
[root@app1-server ~]#
在备份机器上创建备份目录
a) mkdir /tmp/backup
[root@jumper-server backup]# rsync -a 192.168.10.29:: ///查看远程主机的模块名
app1
[root@jumper-server backup]#
b) 使用命令将线上环境的文件拉取到本地
[root@jumper-server backup]# rsync -av 192.168.10.29::app1 /tmp/backup/
或者
[root@jumper-server backup]# rsync -av rsync://192.168.10.29/app1 /tmp/backup/
说明:
作为后台服务运行时,不需要密码就会直接同步。
添加脚本,配置crontab定时任务
[root@jumper-server ~]# pwd
/root
[root@jumper-server ~]# cat 1.sh
#!/bin/bash
rsync -av rsync://192.168.10.29/app1 /tmp/backup/
[root@jumper-server ~]#
[root@jumper-server backup]# crontab -l
11 2 * * 0 /root/1.sh
[root@jumper-server backup]#