服务端:
Ubuntu默认安装有rsync,只需要在rsync中将false改true
#sudo vim /etc/default/rsync RSYNC_ENABLE=true
创建目录管理用户、备份存储目录、授权
# useradd rsync -M -s /sbin/nologin # mkdir /backup # chown -R rsync.rsync /backup
创建认证账号密码和授权
# echo "auth_rsync:123qwe" >>/etc/rsync.password # chmod 600 /etc/rsync.password
编辑配置文件
# vim /etc/rsyncd.conf uid=rsync #刚才新建的管理用户 gid=rsync use chroot=no #安全机制,默认关闭 max connections=200 #最大连接数 timeout=300 #超时时间 pid file=/var/run/rsyncd.pid lock file=/var/run/rsyncd.lock log file=/var/log/rsyncd.log #设置pid、lock、log目录 [bagit] #模块名 comment=git backup #备注 path=/backup #备份存储目录 ignore errors #忽略错误 read only=false #默认关闭,若想停止备份则修改成true fake super=yes #参数-a 传输会报错,使用这个参数不报错 #rsync: chgrp ".2.txt.hp7Mew" (in bagit) failed: Operation not permitted list=false #是否列表模块列表信息,默认关闭 hosts allow=10.20.0.0/255.255.0.0 #白名单 hosts deny=all #黑名单,有白名单的时候,优先白名单 auth users=auth_rsync #客户端连接使用的认证账号(配置文件配置即可,不需创建用户) secrets file=/etc/rsync.password #认证账号密码目录
启动服务
# rsync --daemon # netstat -lnp | grep rsync tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 1170/rsync tcp6 0 0 :::873 :::* LISTEN 1170/rsync # killall rsync #杀掉服务
客户端:
查看是否有安装rsync
# dpkg -l | grep rsync ii rsync 3.1.0-2ubuntu0.4 amd64
创建连接密码并授权
# echo "123qwe" >>/etc/rsync.password # chmod 600 /etc/rsync.password
客户端测试:
# rsync -azvhnp /home/ auth_rsync@10.20.6.240::bagit --password-file=/etc/rsync.password >>/var/log/rsync_client.log
#-a 递归方式传输文件,并保持文件属性,等价-rlptgoD不包含-H -r 子目录以递归模式处理-l 保持符号链接文件-H 保持硬链接文件-p 保持文件权限-t 保持文件时间信息-g 保持文件归属组信息-o 保持文件归属用户信息-D 保持设备文件和特殊文件-z 在传输文件时进行压缩处理-p 等价于—partial—progress-v,--verbose 详细输出模式-h,--human-readable 输出文件大小-n,--dry-run 显示那些文件将要被传输--password-file=FILE 指定从FILE中读取口令,避免在终端中输入口令
# 目录后面加 / or 不加 / (/home)是有区别的,不加会将整个目录同步过去,
# 加 / 后 (/home/)会同步home目录下的所以内容,而不附带home目录