使用 rsync 同步本地代码到开发机 / 服务器
5

之前有想过写这样的一篇文章,但是和其他人的东西没有太多差别就没有去写,直到今天在新的mac上同步自己之前的app和配置的时候,才来写这个文章,接下来步入正题,直接写安装步骤吧。

1.安装brew

brew是一个mac上的软件管理包,可以理解为yum之于Linux,具体的解释可移步Homebrew,这里有详细的介绍,安装命令,下面的是官方的命令,放心操作。
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

2.安装ssh-copy-id,fswatch

这儿要分步操作哦
brew install ssh-copy-id
brew install fswatch

3.同步自己的ssh-key到开发机/服务器

ssh-copy-id -i ~/.ssh/id_rsa.pub root@自己的机器
这儿需要先生成ssh-key,如果没有ssh-key,就执行,执行之后直接按3次回车。
ssh-keygen -t rsa -C “songyichao74@gmail.com”

4.编辑同步脚步

编辑一个可编辑的bin目录,sudo vim /opt/local/bin/mac-auto-deploy,或者 sudo vim /usr/local/bin/mac-auto-deploy(这儿我没有这个 /opt/local/bin/目录,就直接在/usr/local/bin/这个目录下写这个脚本)。将下面的内容复制到mac-auto-deploy中,这个脚本可以指定相应的目录是否需要同步,如果你不需要同步某个目录,在--delete --progress 后面添加 --exclude='storage/logs' 这个选项,这个目录要写对应的相对路径。我这儿过滤掉了开发机上的日志目录,方便有问题的时候查case。亲测有效,

#======
#!/bin/sh

local=$1
remote=$2

cd "$local" &&
    fswatch . |xargs  -n1 -I{} rsync -aztH --exclude .git --exclude .sass-cache --exclude .idea  --delete --progress --exclude='storage/logs' --rsh='ssh -l root  -p22' . $remote
#======

5.运行命令

首先要进入自己要同步的目录然后执行代码,在这儿举个例子吧。
[shell]mac-auto-deploy . root@11.12.23.12:/Library/WebServer/Documents/laravel[/shell]
"root@11.12.23.12" 替换为你的服务器登录账号和地址 ,“/Library/WebServer/Documents/laravel”替换为你的开发机要同步的项目路径。

6.设置命令别名

这个命令最后写完可能会巨长,但是我们还总是要执行,会感到很烦。所以这里,我提一下别名这个东西,很简单,但是要写对地方。
alias syc_dev_laravel='mac-auto-deploy . root@11.12.23.12:/Library/WebServer/Documents/laravel'
只要这么写就OK了。但是要注意些的地方,如果你使用的命令行是oh-my-zsh,就“vim ~/.zshrc”,如果使用的是bash,就“vim ~/.bash_profile”,如果你写的文件不对,那就只能每次关闭终端后都执行一次 source了;还有等号前后不能出现空格;最后,就需要来一个source了,source相应的你编辑的文件就好。
原文链接地址

《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
讨论数量: 1

Cool!

个人喜欢在小项目中使用 envoy 同步代码

1年前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!