使用rsync工具构建php项目管理平台
对于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命令中文手册)
使用rsync工具构建php项目管理平台的更多相关文章
- 《基于Apache Kylin构建大数据分析平台》
Kyligence联合创始人兼CEO,Apache Kylin项目管理委员会主席(PMC Chair)韩卿 武汉市云升科技发展有限公司董事长,<智慧城市-大数据.物联网和云计算之应用>作者 ...
- Jmeter+maven+Jenkins构建云性能测试平台(mark 推荐)
转自:http://www.cnblogs.com/victorcai0922/archive/2012/06/20/2555502.html Jmeter+maven+Jenkins构建云性能测试平 ...
- 【转】Kylin系列-使用Saiku+Kylin构建多维分析OLAP平台
关于Kylin的介绍和使用请参考之前的文章 <分布式大数据多维分析(OLAP)引擎Apache Kylin安装配置及使用示例> Kylin对外提供的是SQL查询接口,基于Kylin构建OL ...
- 利用Azure Functions和k8s构建Serverless计算平台
题记:昨晚在一个技术社区直播分享了"利用Azure Functions和k8s构建Serverless计算平台"这一话题.整个分享分为4个部分:Serverless概念的介绍.Az ...
- 什么是云效 Projex,云效Projex企业级高效研发项目管理平台
云效项目协作Projects是一款企业级高效研发项目管理平台, 提供了快速实践的敏捷研发项目管理机制,提供对需求.迭代.缺陷各个维度的协同管理以及相关的统计报告,让研发团队高效协作.践行敏捷并持续交付 ...
- 基于Apache Hudi在Google云构建数据湖平台
自从计算机出现以来,我们一直在尝试寻找计算机存储一些信息的方法,存储在计算机上的信息(也称为数据)有多种形式,数据变得如此重要,以至于信息现在已成为触手可及的商品.多年来数据以多种方式存储在计算机中, ...
- 以太坊开发DApp实战教程——用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台(一)
第一节 简介 欢迎和我们一起来用以太坊开发构建一个去中心化电商DApp!我们将用区块链.星际文件系统(IPFS).Node.js和MongoDB来构建电商平台类似淘宝的在线电商应用,卖家可以自由地出售 ...
- 基于Jmeter+maven+Jenkins构建性能自动化测试平台
一.目的: 为能够将相关系统性能测试做为常规化测试任务执行,且可自动无人值守定时执行并输出性能测试结果报告及统计数据,因此基于Jmeter+maven+Jenkins构建了一套性能自动化测试平台 ...
- Polaristech 刘洋:基于 OpenResty/Kong 构建边缘计算平台
2019 年 3 月 23 日,OpenResty 社区联合又拍云,举办 OpenResty × Open Talk 全国巡回沙龙·北京站,Polaristech 技术专家刘洋在活动上做了<基于 ...
随机推荐
- Win内核原理与实现学习笔记1-windows内核版本列表
- 全网最新Kali Linux系统如何安装N卡驱动
转载请注明来源:全网最新Kali Linux系统如何安装N卡驱动[亲测-暗影精灵3-1050TI有效] - 大家好,我系渣渣辉 https://www.zzhsec.com/255.html 1.更换 ...
- Logback 日志策略配置
[参考文章]:官方文档:Logback configuration [参考文章]:logback的使用和logback.xml详解 [参考文章]:Logback源码赏析-日志按时间滚动(切割) 1. ...
- tomcat+myeclipse+mysql环境搭建
毕业设计要做的题目,搭环境我就搭了两天...网上的教程都好碎啊.. 我的需求是这样,我有一个Android app需要与电脑上的数据库交换信息,实现增删查改,这样不管用什么方法,电脑上都要有一个服务器 ...
- PostgreSQL判断一个表是否存在
postgresql判断一个表是否存在: 方法一: select count(*) from pg_class where relname = 'tablename'; 方法二: select cou ...
- C之函数返回一个以上的值
#include<stdio.h> #include<stdlib.h> //函数的返回值不能是数组 void add(int* a,int* b){ *a += 10; *b ...
- XML解析思想
获取文档中的数据: 反序列化[巧记:反读] 把内存中的数据存储到文档中: 序列化[巧记:序写] XML解析思想 DOM: 就是将文档中的数据全部加载到内存,在内存中形成DOM树,然后对数据进行增删改查 ...
- epoll简介 与 UDP server的实现
Abstractepoll是Linux内核为处理大批量句柄而作了改进的poll,是Linux下多路复用IO接口select/poll的增强版本,它能显著减少程序在大量并发连接中只有少量活跃的情况下的系 ...
- 17 Flutter仿京东商城项目 保存历史搜索记录 删除历史记录 清空历史记录 长按删除
Storage.dart import 'package:shared_preferences/shared_preferences.dart'; class Storage{ static Futu ...
- PAT 甲级 1027 Colors in Mars (20 分)(简单,进制转换)
1027 Colors in Mars (20 分) People in Mars represent the colors in their computers in a similar way ...