对于phper来说部署项目和更新项目是很方便的,只要直接将写好的项目覆盖到项目的根目录就可以啦。但是平时项目开发的时候肯定不是只部署一个环境,一般是三套环境(开发环境、测试环境、生产环境),我们每次在开发环境开发完之后要将项目更新到测试环境和生产环境上,如果每次更新的话都是将项目复制然后手动的去覆盖到项目的根目录下的话就太麻烦啦,而且也容易出错所以我们应该有一套项目管理系统来方便的管理项目的更新迭代,大致结构如下:

画的不好但是意思是对的,这样的话就可以通过一个脚本文件直接更新代码啦,更重要的是我们可以通过php中的 exec() 函数来操作脚本,这意味着我们可以使用php来开发这个项目管理平台,今天只说如何配置rsync。

实验环境:

docker(ubuntu镜像)实例化两台虚拟器

在两台虚拟机上都安装好 rsync 工具,rsync 使用分两种情况,一种是客户端使用(直接执行 rsync 相关命令)另一种是服务器端使用(以daemon模式执行)

配置 rsync 服务端

首先要在 `/etc` 目录下手动添加个 rsyncd.conf 文件并填写相关配置,配置选项解释如下:

port=837  #监听端口默认 873
log file=/var/log/rsync.log  #rsync日志
pid file=/var/run/rsync.pid  #rsync运行时生成的pid存放目录
[abc]  #模块名称
path=/var/www/html  #模块对应的目录
use chroot=yes   #是否限定为模块默认目录
max nonections=4 #指定最大可以连接的客户端数
read only=no  #yes 为改模块内容只允许读,no 为该模块允许读写
list=yes #是否允许 使用 `rsync ip地址::` 列出模块名
uid=root  #以哪个用户的身份来传输
gid=root  #以哪个组的身份来传输
auth users=root  #指定验证用户名,如果不设置则可以不用密码进行传输
secrets file=/etc/rsync.passwd  #指定用户名和密码的存放文件  注:文件需要以 "用户名:密码"的形式存储   并且需要设置权限 chmod 600 rsync.passwd

从客户端读取服务器端文件

rsync --port=837 -avz root@192.168.99.100::abc /myweb

这时会将服务端 /var/www/html 目录下的文件同步到 客户端的 /web 目录下

从客户端推送文件到服务端

rsync --port=837 -avzH /myweb/ root@192.168.99.100::abc

这时会将客户端的 /web 目录下的文件同步到 服务端 /var/www/html 目录下

对于 rsync 命令各个选项的含义 建议看下这篇文章吧,这哥们写的翻译的挺详细的  @骏马金龙  man rsync翻译(rsync命令中文手册)

转载于:https://www.cnblogs.com/itsuibi/p/10847061.html

使用rsync工具构建php项目管理平台相关推荐

  1. php执行rsync,使用rsync工具构建php项目管理平台,rsync项目管理

    使用rsync工具构建php项目管理平台,rsync项目管理 对于phper来说部署项目和更新项目是很方便的,只要直接将写好的项目覆盖到项目的根目录就可以啦.但是平时项目开发的时候肯定不是只部署一个环 ...

  2. 中国电子与IBM携手构建健康云平台;微软推3款机器学习工具;【软件网每日新闻播报│第9-26期】

      小编点评 2015年,中国电子和微软成立合资公司, 中国电子占股51%, 国产操作系统错失先机, 内牛满面. 昨天, 中国电子又和IBM凑一起搭了个健康云平台, IBM抢占健康云的坑, 国产云该如 ...

  3. 研发平台演进:从工具链到开放平台

    在数字化的转型浪潮中,开发人员的生产力越来越被企业重视,提升团队研发效能.缩短TTM成为了实现企业战略目标的重要措施.企业中的研发团队从每个团队各自试验.探索,逐步整合基础设施.最佳实践.企业规范等, ...

  4. 融易宝项目管理平台前台搭建

    融易宝项目管理平台前台搭建 关注微信公众号:序辑,回复 管理前台代码 获取前端代码 一.NPM包管理 1.简介 1.1什么是NPM NPM全称Node Package Manager,是Node.js ...

  5. 基于jsp的项目管理平台系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)

    项目报告 基于Java EE平台项目管理系统的设计与实现 随着社会信息化的发展,很多的社会管理问题也一并出现了根本性变化,项目公司的报表及文件管理也发生了变化,以前的管理是一个分布式的信息,然后围绕中 ...

  6. 在微服务架构下基于 Prometheus 构建一体化监控平台的最佳实践

    欢迎关注方志朋的博客,回复"666"获面试宝典 随着 Prometheus 逐渐成为云原生时代的可观测事实标准,那么今天为大家带来在微服务架构下基于 Prometheus 构建一体 ...

  7. python爬取淘宝商品做数据挖掘_Python 3爬虫 数据清洗与可视化实战 Python数据抓取技术 python3网络爬虫教程书籍 运用Python工具获取电商平台页面数据挖掘书籍...

    A8 书    名:Python 3爬虫 数据清洗与可视化实战 作 译 者:零一,韩要宾,黄园园 出版时间:2018-03 千 字 数:200 版    次:01-01 页    数:212 开   ...

  8. 构建消费者数据平台(CDP),实现全域消费者数字化运营闭环

    数字化时代,众多品牌商和零售商都意识到"以消费者为中心"和"数据驱动"是企业增长的两大核心武器,开始从过去粗放的消费者运营转向基于大数据的全渠道精细化运营. 近 ...

  9. ChaosBlade:从混沌工程实验工具到混沌工程平台

    简介:ChaosBlade 是阿里巴巴 2019 年开源的混沌工程项目,已加入到 CNCF Sandbox 中.起初包含面向多环境.多语言的混沌工程实验工具 chaosblade,到现在发展到面向多集 ...

最新文章

  1. HDU1559(二维树状数组)
  2. [《孔雀》观后]聪明的孩子提着易碎的灯笼
  3. 西安交大计算机考研分数线2020院线,西安交通大学2020研究生复试分数线预计4月中旬左右公布...
  4. iOS9的几个新关键字(nonnull、nullable、null_resettable、__null_unspecified)
  5. hrjava项目原型html_Mockplus for Mac(原型设计工具)
  6. [译] 机器学习可以建模简单的数学函数吗?
  7. 二、MyBatis系列:全局配置文件
  8. nodejs+mongodb+vue前后台配置ueditor
  9. 摄像机旋转约束问题及解决
  10. [渝粤教育] 西南科技大学 物流信息系统 在线考试复习资料
  11. 浪曦大型企业门户综合项目的设计、实施与管理实地培训班隆重开班招生中……
  12. 计算关联系数matlab,matlab相关性系数【excel中的相关系数是如何计算出来的?】
  13. 微软掷豪金投资海底数据电缆
  14. 辣椒app软件测试,testflight辣椒视频APP
  15. 在线ping服务器地址,网站全国各地Ping值测试|在线ping工具—卡卡网 www.webkaka.com...
  16. Python自动登录网页网易云音乐
  17. 定义一个矩形类Rectangle:(知识点:对象的创建和使用)
  18. 用Python分割文件夹
  19. 【狗狗分类项目】(3)扩展数据集:斯坦福kaggle数据库
  20. layUIselect下拉菜单

热门文章

  1. 360公司2019秋招空中宣讲会开启,送海量面试直通卡!
  2. golang rpc单参数调用实例
  3. google浏览器记住密码自动添加input框背景色问题
  4. golang 返回值问题
  5. Vue 页面加载闪现出现{{xxx}}问题
  6. RocketMQ如何保证消息不丢失? 如何快速处理积压消息?
  7. linux搭建redis
  8. mybatis使用经验
  9. 【MyBatis框架】高级映射-一对多查询
  10. Ballast,一种精准控制 Go GC 提高性能的方法