新建一个rsync.s文件,把下面的代码写入文件里:

#!/usr/bin/env bash
mkdir -p /data/app/rsync/etc/
mkdir -p /data/logs/rsync/
mkdir -p /data/download/
mkdir -p /data/www/test/
cd /data/download
wget https://download.samba.org/pub/rsync/src/rsync-3.1.3.tar.gz
tar zxvf rsync-3.1.3.tar.gz
cd rsync-3.1.3
./configure --prefix=/data/app/rsync
make && make install echo 'wzb:123456' > /data/app/rsync/etc/rsyncd.secrets
chmod 600 /data/app/rsync/etc/rsyncd.secrets cat > /data/app/rsync/etc/rsyncd.conf <<EOF
max connections = 5
# 基本配置,注意uid和gid需要是root,否则无法指定目标文件的所属用户和所属组
secrets file = /data/app/rsync/etc/rsyncd.secrets
read only = no
write only = no
list= yes
uid = root
gid = root
max connections = 5
hosts allow = *
#hosts deny = *
use chroot = no
log file = /data/logs/rsync/rsyncd.log
pid file = /var/run/rsyncd.pid
# 设置访问的用户必须为rsync,这个用户是虚拟的,不需要在系统中创建这个用户。客户端进行推送的时候指定即可
auth users = wzb
# 设置密码文件位置,这里保存了rsync用户的密码
secrets file = /data/app/rsync/etc/rsyncd.secrets
# 配置一个模块,一个模块就是一个可以进行同步的目录,可以配置多个模块意味着接受多个目录的同步请求,模块名是随意起的,客户端在发起同步时需指定模块名
[test]
path = /data/www/test
# 设置访问的用户必须为rsync,这个用户是虚拟的,不需要在系统中创建这个用户。客户端进行推送的时候指定即可
auth users = wzb
# 设置密码文件位置,这里保存了rsync用户的密码
secrets file = /data/app/rsync/etc/rsyncd.secrets
EOF #添加开机启动
cat > /data/app/rsync/rsync_service.sh <<EOF
#!/bin/bash
/data/app/rsync/bin/rsync --daemon --config=/data/app/rsync/etc/rsyncd.conf
EOF chmod +x /data/app/rsync/rsync_service.sh cat >> /etc/rc.local <<EOF
/data/app/rsync/rsync_service.sh
EOF
if [[ $? == 0 ]]; then
echo -e "\n==========rsync安装成功==========\n\n"
else
echo -e "\n==========rsync安装失败!==========\n\n"
exit 0
fi

客户端上传文件列子:

rsync -avzP --exclude-from=exclude.txt ./ wzb@116.**.1**.**5::test --chown=www:www --progress --password-file=/etc/waptest_tp5.txt
rsync -avzP --exclude-from=exclude.txt ./ wzb@116.**.1**.**5::test --chown=www:www --progress --delete --password-file=/etc/waptest_tp5.txt

#/etc/waptest_tp5.txt  密码文件

#exclude.txt  过滤文件

#--delete 参数为完全同步

下载文件列子:

rsync -avz --exclude-from=exclude.txt wzb@4*.**.**.1*1::test ./ 

最新文章

  1. ASP.NET Core 折腾笔记一
  2. sh1.shell脚本练习
  3. Solution for Error FRM-92095: Oracle Jnitiator version too low
  4. 如何给Firefox附加组件签名
  5. docker help
  6. SQL Server Transact-SQL 编程
  7. zepto源码--核心方法6(显示隐藏)--学习笔记
  8. codevs 1835 魔法猪学院 A*寻k短路做了一个月卡死在spfa那了/(ㄒoㄒ)/~~
  9. verilog实现16位五级流水线的CPU带Hazard冲突处理
  10. Toast.makeText().show() 正常使用但不显示的解决办法
  11. OpenGL 顶点缓存对象
  12. 计蒜客 取数游戏(dp)
  13. HTTP协议4之缓存--转
  14. 【ASP.NET Web API教程】3.3 通过WPF应用程序调用Web API(C#)
  15. 关于WHERE后面不能放聚合函数(如SUM(...))的解决办法
  16. Chromium模块和进程模型
  17. 小程序server-3-搭建WebSocket 服务
  18. Web 动画帧率(FPS)计算
  19. 两种设计模式和XML解析
  20. Leetcode_169_Majority Element

热门文章

  1. python3 使用flask连接数据库出现“ModuleNotFoundError: No module named &#39;MySQLdb&#39;”
  2. Maven-项目管理(一)_认识Maven
  3. 关于SpringBoot跨域的问题
  4. 震惊!文科生如何三个月转行成为Java工程师?
  5. TCP输入 之 tcp_rcv_established
  6. wait/notify模拟线程池
  7. js 里面call()的使用
  8. 判断是否为日期格式 与 判断是否为BigDecimal
  9. [Hibernate]知识点
  10. OpenStack 对接 Ceph 环境可以创建卷但不能挂载卷的问题