rsync功能说明
①. 可以实现本地数据备份(类似cp命令)
本地文件备份
[root@backup ~]# # 本地文件备份
[root@backup ~]# cp -a /etc/hosts /tmp/
[root@backup ~]# ls -l /tmp/hosts
-rw-r--r-- 1 root root 352 Mar 19 17:32 /tmp/hosts
[root@backup ~]# rsync -a /etc/hosts /tmp/hosts02
[root@backup ~]# ls -l /tmp/hosts02
-rw-r--r-- 1 root root 352 Mar 19 17:32 /tmp/hosts02
本地目录备份
[root@backup ~]# ls /tmp/
etc hosts hosts02
[root@backup ~]# m /tmp/* -rf
[root@backup ~]# cp -a /etc/ /tmp/
[root@backup ~]# ls /tmp/
etc
[root@backup ~]# m /tmp/* -rf
[root@backup ~]# rsync -a /etc/ /tmp/
当利用rsync命令进行目录备份的时候有两种情况:
rsync命令后面接的目录信息:/etc/ 表示将etc目录下面的内容进行备份
rsync命令后面接的目录信息:/etc 表示将etc目录本身和目录下面的内容进行备份
②. 可以实现远程数据备份(类似scp命令-全量备份命令)
[root@backup ~]# # 远程数据备份
[root@backup ~]# scp -rp /etc/hosts 172.16.1.31:/tmp
The authenticity of host '172.16.1.31 (172.16.1.31)' can't be established.
RSA key fingerprint is 79:b8:2b:fe:a8:61:b9:04:a4:53:96:2b:95:94:90:21.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.16.1.31' (RSA) to the list of known hosts.
root@172.16.1.31's password:
hosts 100% 352 0.3KB/s 00:00
[root@backup ~]# rsync -rp /etc/hosts 172.16.1.31:/tmp
root@172.16.1.31's password:
③. 可以实现数据清空操作(类似rm命令)
[root@backup ~]# mkdir /oldboy_dir
[root@backup ~]# touch /oldboy_dir/{1..10}.txt
[root@backup ~]# ls /oldboy_dir/
10.txt 1.txt 2.txt 3.txt 4.txt 5.txt 6.txt 7.txt 8.txt 9.txt
[root@backup ~]# m -f /oldboy_dir/*
[root@backup ~]# ls /oldboy_dir/
[root@backup ~]#
[root@backup ~]# touch /oldboy_dir/{1..10}.txt
[root@backup ~]# mkdir /null
[root@backup ~]# rsync --delete /null/ /oldboy_dir/
rsync: --delete does not work without -r or -d.
rsync error: syntax or usage error (code 1) at main.c(1422) [client=3.0.6]
[root@backup ~]# rsync -r --delete /null/ /oldboy_dir/
[root@backup ~]# ls /oldboy_dir/
④. 可以实现数据信息查看(类似ls命令)
[root@backup ~]# ls /etc/hosts
/etc/hosts
[root@backup ~]# rsync /etc/hosts
-rw-r--r-- 352 2018/03/19 17:32:24 hosts
总结:rsync命令=cp scp rm ls等命令,并且rsync命令功能还优于它们
1.1 rsync详细特性说明:
①. 支持拷贝普通文件与特殊文件如链接文件,设备等。
②. 可以有排除指定文件或目录同步的功能,相当于打包命令tar的排除功能。
#tar zcvf backup_1.tar.gz /opt/data -exclude=oldboy
说明:在打包/opt/data时就排除了oldboy命名的目录和文件。
③. 可以做到保持原文件或目录的权限、时间、软硬链接、属主、组等所有属性均不改变-p。
④. 可实现增量同步,既只同步发生变化的数据,因此数据传输效率很高(tar -N)。
# 将备份/home 目录自 2008-01-29 以来修改过的文件
# tar -N 2008-01-29 -zcvf /backups/inc-backup_$(date +%F).tar.gz /home
# 将备份 /home 目录昨天以来修改过的文件
# tar -N $(date -d yesterday "+%F") -zcvf /backups/inc-backup_$(date +%F).tar.gz /home
# 添加文件到已经打包的文件
# tar -rf all.tar *.gif
说明:这条命令是将所有.gif的文件增加到all.tar的包里面去。-r是表示增加文件的意思。
⑤. 可以使用rcp,rsh,ssh等方式来配合进行隧道加密传输文件(rsync本身不对数据加密)
⑥. 可以通过socket(进程方式)传输文件和数据(服务端和客户端)*****。重点掌握
⑦. 支持匿名的或认证(无需系统用户)的进程模式传输,可实现方便安全的进行数据备份及镜像。
1.1 rsync服务端部署流程
第一个历程:确认检查软件程序是否已经安装
rpm -qa rsync
rpm -qa|grep rsyn
yum install -y rsync <--- 安装rsync软件
第二个历程:编写rsync服务配置文件
vim /etc/rsyncd.conf <--- /etc/rsyncd.conf表示rsync服务默认配置文件,默认没有此配置文件,需要进行创建
uid = rsync
gid = rsync
use chroot = no
max connections = 200
timeout = 300
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
ignore errors
read only = false
list = false
hosts allow = 172.16.1.0/24
hosts deny = 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
[backup]
comment = "backup dir by oldboy"
path = /backup
第三个历程:创建rsync服务虚拟用户
useradd rsync -s /sbin/nologin -M
# id rsync
uid=892(rsync) gid=892(rsync) groups=892(rsync)
第四个历程:创建认证秘钥文件,并设置600权限
echo "用户名称:用户密码信息" >/etc/rsync.password
[root@backup ~]# echo "rsync_backup:oldboy123" >/etc/rsync.password
[root@backup ~]# cat /etc/rsync.password
rsync_backup:oldboy123
[root@backup ~]# chmod 600 /etc/rsync.password
[root@backup ~]# ll /etc/rsync.password
-rw------- 1 root root 23 Mar 20 17:34 /etc/rsync.password
第五个历程:创建备份目录
mkdir /backup -p
chown -R rsync.rsync /backup
第六个历程:启动rsync服务
rsync --daemon <-- 以守护进程方式启动rsync服务
[root@backup ~]# ps -ef|grep rsync
root 3047 1926 0 16:56 pts/2 00:00:00 vim /etc/rsyncd.conf
root 3124 1 0 17:39 ? 00:00:00 rsync --daemon
root 3126 2691 0 17:39 pts/0 00:00:00 grep --color=auto rsync
[root@backup ~]# netstat -lntup|grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 3124/rsync
tcp 0 0 :::873 :::* LISTEN 3124/rsync
至此,rsync服务端部署完毕
客户端备份存储测试:
rsync -avz /etc/hosts rsync_backup@172.16.1.41::backup
1.2rsync客户端部署流程
第一个历程:确认检查软件程序是否已经安装
rpm -qa rsync
rpm -qa|grep rsyn
yum install -y rsync <--- 安装rsync软件
第二个历程:编写rsync客户端认证秘钥文件
echo 'oldboy123' >/etc/rsync.password
chmod 600 /etc/rsync.password
第三个历程:在客户端进行数据推送备份,采用免交互
rsync -avz /etc rsync_backup@172.16.1.41::backup --password-file=/etc/rsync.password