Rsync (Remote synchonization)rsync是Unix下的一款应用软件,它能同步更新两处计算机的文件与目录,并适当利用差分编码以减少数据传输。rsync中一项与其他大部分类似程序或协议中所未见的重要特性是镜像对每个目标只需要一次发送。rsync可拷贝/显示目录内容,以及拷贝文件,并可选择性的压缩以及递归拷贝。在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输协议或者通过远程shell如RSH或者SSH伺服文件。SSH情况下,rsync客户端运行程序必须同时在本地和远程机器上安装。
rsync可以是一种网络服务,也可以是客户端命令。
rsync命令可以在本地做同步和删除。
1 rsync -avz /src/ /dest/ #cp2 rsync -avz --delete /src/ /dest/ #将/dest/和/src/同步,以靠近参数的为基准
rsync命令通过ssh通道从远端主机拉取数据到本地
1 rsync -avzP -e 'ssh -p 22' /tmp/ root@192.168.1.253:/tmp/ #本地到远端2 rsync -avzP -e 'ssh -p 22' root@192.168.1.253:/mnt/ . #远端到本地,注意/mnt/的斜杠,有斜杠是目录下的内容,无斜杠是目录本身。
-e 'ssh -p 22'表示通过ssh通道传输数据,-p 22 可以省略-a, --archive 归档模式,表示以递归方式传输文件,并保持所有文件属性,等于-rlptgoD。-z, --compress 对备份的文件在传输时进行压缩处理。-v, --verbose 详细模式输出。-P 显示同步的过程,可以用--progress替换
配置rsync服务端:
0、yum install rsync
1、创建/etc/rsyncd.conf配置文件
#rsync serveruid=rsyncgid=rsyncpid file =/var/run/rsyncd.pidlock file=/var/run/rsync.locklog file=/var/log/rsyncd.logignore errorsread only=falselist=falseauth users=flyme #虚拟账号,不用在本地存在secrets file=/etc/rsync.passwd #flyme存在在里面[backup]path=/root/backup #备份模块comment=backup
2、创建rsync用户,及共享的目录/backup
1 useradd rsync -s /sbin/nologin -M2 id rsync3 mkdir /backup4 chown -R rsync /backup
3、创建密码文件
1 echo "flyme:123456">/etc/rsync.passwd2 chmod 600 /etc/rsync.passwd
4、开启rsync服务
1 rsync --daemon2 ss -ta|grep rsync3 echo "rsync --daemon">>/etc/rc.local #开机自启
配置客户端:
0、安装yum install rsync1、创建密码文件echo "123456">/etc/rsync.passwdchmod 600 /etc/rsync.passwd2、rsyncpush:rsync -avz /tmp/ flyme@192.168.1.x::backup --password-file=/etc/rsync.passwd #backup是服务端/etc/rsyncd.conf [xxx]