1.scp复制
用法举例:
- -r递归,能传输目录,不带-r只能传文件
- -P指定ssh端口,不指定默认22端口
- 路径,从哪来到哪去,从/root/etc/来到root@backup01:/root去,也可以反过来
- root@192.168.16.253:/root表示:root用户,@后面可以是域名和ip,冒号后面跟路径
scp -rP 11011 /root/etc/ root@backup01:/root
scp -rP 11011 /root/etc/ root@192.168.16.253:/root ##
2.sync增量复制
通过ssh的root用户复制,在没有配置rsync时使用
增量复制:没有的目录和文件复制过去,若果目录里的文件不一样只会把不一样的部分增加过去
用法举例:
- -a组合选项相当于 -rlptgoD,包括递归,文件的时间属性,链接文件和一些特殊文件等等
- -v详细显示过程
- -e指定远程 shell协议传输而不是rsync协议,例如:-e ‘ssh -p 11011’
- 路径,从哪来到哪去,从/root/etc/来到root@backup01:/root去,也可以反过来
- root@192.168.16.253:/root表示:root用户,@后面可以是域名和ip,冒号后面跟路径
rsync -ave 'ssh -p 11011' /root/etc root@backup01:/root/ ### 通过ssh的root用户复制
注意:/root/etc 复制过去的是目录,/root/etc/ 复制过去的是目录里的文件,杠/
3.守护进程sync免交互传输,免密传输,不通过ssh的root
Rsync 协议:这是 rsync
自身的协议,它在 rsync
客户端和服务器之间直接传输数据。当使用 rsync
命令行工具进行本地或远程同步时,如果没有指定其他协议,通常会使用这个协议。配置这个实现免密
SSH 协议:rsync
可以通过 SSH 协议进行数据传输,这提供了加密和安全的传输通道。在命令行中,可以通过 -e ssh
或者 -e "ssh -p [port]"
来指定使用 SSH 协议,其中 [port]
是 SSH 服务的端口号。
3.1配置文件说明
- rsync配置文件/etc/rsyncd.conf
#created by xumou 23:34 2024-11-29
##rsyncd.conf start ##
fake super =yes
uid = rsync
gid = rsync
use chroot = no
max connections = 2000
timeout = 600
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
#host alllow = 10.0.0.0/24
#host deny= 0.0.0.0/32
auth users = rsync_backup
secrets file = /etc/rsync.password
##################################
[data]
comment = backup 22:22 2024-11-29
path = /backup/
3.2配置环境
创建的文件目录依照rsyncd.conf配置文件里指定的目录文件名等
1.更改/etc/rsyncd.conf配置文件为上方内容
2.创建虚拟用户rsync
3.创建用户和密码文件secrets file = /etc/rsync.password,并更改权限为600,属主属组不用改
[root@backup01 ~]# cat /etc/rsync.password ## 内容格式 用户名:密码
rsync_backup:1
chmod 600
4.创建data模块目录,path = /backup/,属主属组改为rsync
mkdir /backup/
chown rsync.rsync /backup/
5.重启rsyncd服务
6.使用rsync_backup用户+data模块+手动输入密码测试
rsync -av /etc rsync_backup@backup02::data
7.使用免密测试
创建一个文件backup_passwd,里面只放密码,权限设置成600,使用时指定密码文件即可
rsync -av /etc rsync_backup@backup02::data --password-file=/etc/backup_passwd
第二种免密方法,使用全局变量密码(不安全)
设置RSYNC_PASSWORD全局变量即可实现,全局的所有用户都可以看
export RSYNC_PASSWORD=1 ## 设置密码为1
3.3使用说明
- 如果使用rsync_backup用户传输,则只能指定模块路径,而不能自己指定路径
- 若果想反向薅过来,则只能薅data模块路径里的文件
用法举例:
- -a组合选项相当于 -rlptgoD,包括递归,文件的时间属性,链接文件和一些特殊文件等等
- -v详细显示过程
- 路径,从哪来到哪去,从/etc/来到rsync_backup@backup01:data模块去,也可以反过来
- rsync_backup@backup02::data 表示:rsync_backup用户,@后面可以是域名和ip,冒号后面不能跟路径,只能跟模块名
- –password-file=/etc/backup_passwd 指定密码文件,非交互式
rsync -av /etc rsync_backup@backup02::data
rsync -av /etc rsync_backup@backup02::data --password-file=/etc/backup_passwd
不管是scp还是rsync注意:
注意:/root/etc 复制过去的是目录,/root/etc/ 复制过去的是目录里的文件,杠/