mac链接linux终端,shell脚本发布代码
项目的业务需求:从mac端直接连上linux服务终端,并发布相关的代码
一、使用ssh链接上linux服务端
- 1、cd ~/.ssh
- 2、vi config,按照下面的内容配置config文件,然后:wq退出保存
#shell命令时对应的名字
Host test
#需要连接上的linux终端的ip地址
HostName 10.2.30.20
#linux终端对应的端口,默认一般 是22
Port 60022
#链接终端时对应的用户名
User username - 3、使用ssh test命令链接linux服务端提示输入密码
出现如下界面表示链接成功

由于我们是链接在堡垒机上面,所以还要从堡垒机链接到相应的服务器。如果没有堡垒机这一层,出现的应该是如下的界面

到上述操作已经完成了链接到服务器
二、一键代码上传
由于此例子中间有堡垒机的关系,我本机的代码不能直接上传至服务器,只能从服务器拉本机的代码
- 1、项目本地打包的时候添加压缩命令在package.json的script中加入蓝色部分的代码,可以使用 npm run pub进行编译
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
"pub":"npm run build && rm -rf dist.tar.gz && tar -zvcf dist.tar.gz dist"
}, - 2、链接上终端服务器,在终端服务器上创建shell脚本
使用cd命令,转到你项目所在的目录例如:cd /home/***,在项目的同目录下使用vi命令创建pub.sh文件,下面是我的shell脚本。在这之前需要再走一遍上面的第1、2小步让服务器链接上我的本机。至于相应的shell脚本语法可以自行查看:http://www.jb51.net/article/74471.htm
#!binn/sh
set -e
echo “enter host name”
#可以给不同的人使用,输入在config中配置的host
read host
echo "enter your path"
#输入发布者项目在本机上的地址
read userpath
echo "enter this version's date for zip:"
#对原版本备份,如果没有输入此参数的话会默认当前的日期
read zipdate
#对应的项目文件夹
proj='yishang2.1'
#下面是对以上变量如果未输入值给的默认值,这里是链接到自己的本机上面
if [[ $host = '' ]]
then
host='kaisela'
fi
if [[ $userpath = '' ]]
then
userpath='~/documents/workspace/YS2.0/dist.tar.gz'
fi
if [[ $zipdate = '' ]]
then
zipdate=`date +%Y%m%d`
fi
#备份项目
tarzip=`tar -zvcf ${proj}_${zipdate}.tar.gz ${proj}`
#移除原目录
clear=`rm -rf ${proj}/dist.tar.gz && rm -rf ${proj}/dist`
#从本机上拉取代码并解压,和移除拉取的文件
getcode=`scp ${host}:${userpath} ${proj}/dist.tar.gz && cd ${proj} && tar -xzvf dist.tar.gz dist && rm -rf dist.tar.gz`如果可以直接连上服务器,并且 可以直接push代码到服务器就更简单,直接将上面的代码保存到项目的根目录下面在script的pub选项的命令修改为下面的代码:
"scripts": {
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules",
"pub":"npm run build && rm -rf dist.tar.gz && tar -zvcf dist.tar.gz dist && sh pub.sh"
},就此介绍完成
mac链接linux终端,shell脚本发布代码的更多相关文章
- 详解Linux交互式shell脚本中创建对话框实例教程_linux服务器
本教程我们通过实现来讲讲Linux交互式shell脚本中创建各种各样对话框,对话框在Linux中可以友好的提示操作者,感兴趣的朋友可以参考学习一下. 当你在终端环境下安装新的软件时,你可以经常看到信息 ...
- 使用C#给Linux写Shell脚本(下篇)
在上篇的<使用C#给Linux写Shell脚本>结尾中,我们留下了一个关于C#如何调用BashShell的问题.在文章发布之后,我留意到有读者留言推荐使用“Pash”(一款类PowerSh ...
- Linux/Unix shell 脚本中调用SQL,RMAN脚本
Linux/Unix shell脚本中调用或执行SQL,RMAN 等为自动化作业以及多次反复执行提供了极大的便利,因此通过Linux/Unix shell来完成Oracle的相关工作,也是DBA必不可 ...
- 通过shell脚本实现代码自动化部署
通过shell脚本实现代码自动化部署 一.传统部署方式及优缺点 1.传统部署方式 (1)纯手工scp (2)纯手工登录git pull.svn update (3)纯手工xftp往上拉 (4)开发给打 ...
- Linux常用Shell脚本珍藏【转载】
我们在运维中,尤其是linux运维,都知道脚本的重要性,脚本会让我们的 运维事半功倍,所以学会写脚本是我们每个linux运维必须学会的一门功课,这里收藏linux运维常用的脚本.如何学好脚本,最关键的 ...
- 从windows到linux的shell脚本编码和格式问题
从windows到linux的shell脚本编码和格式问题 从windows到Linux的shell脚本编码和格式问题 1.异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh s ...
- Linux执行shell脚本方式及区别&命令后台运行
Linux执行shell脚本方式及区别&命令后台运行 http://blog.csdn.net/heqiyu34/article/details/19089951/
- Linux简单Shell脚本监控MySQL、Apache Web和磁盘空间
Linux简单Shell脚本监控MySQL.Apache Web和磁盘空间 1. 目的或任务 当MySQL数据库.Apache Web服务器停止运行时,重新启动运行,并发送邮件通知: 当服务器磁盘的空 ...
- Linux:从windows到linux的shell脚本编码和格式
从windows到linux的shell脚本编码和格式问题 异常问题 :set ff=unix 启动脚本在启动时报错比如执行sh start.sh,时会报Command not found等等的错误, ...
随机推荐
- QCW切割 --铁片
1.QCW切割旋转轴限位部件 --刘锦峰协助 :铁片 功率85% 最大功率100 最小功率50 脉宽0.1ms 调整焦点-0.5左右
- 洗礼灵魂,修炼python(6)--活起来的代码+列表
活起来的用法: 使用input内置函数 注意python2中和python3中,input函数是不太一样的,python2中,input用户传入什么类型就是什么类型而python3中,不管传入什么类型 ...
- R语言包下载(转载)
http://blog.csdn.net/hongjinlongno1/article/details/53130893 包含几乎所有包,很方便
- 课程作业02(关于Java的几点讨论)
---恢复内容开始--- 1.一个Java类文件中真的只能有一个公有类吗? public class Test { public static void main(String[] args) { } ...
- vs 或 Sql server2012连接Sql server时出现的问题:已成功与服务器建立连接,但在登陆过程中发生错误
以前连接是正常的,就这两天连不上了.(没有耐心的直接看末尾解决办法) 错误消息如下: 1.尝试读取或写入受保护的内存.这通常指示其他内存已损坏.(System.Data) 2.已成功与服务器建立连接, ...
- Centos7下安装php7
通过编译的方式安装php7 1. 安装PHP7 ## 下载 wget http://us2.php.net/distributions/php-7.0.2.tar.gz ## 安装 tar zxvf ...
- 表空间tablespace,数据文件datafiles,和控制文件control files介绍
https://docs.oracle.com/cd/B19306_01/server.102/b14220/physical.htm#i5919 本文系翻译 表空间tablespace,数据文件da ...
- Java面向对象 线程技术 -- 下篇
Java面向对象 线程技术 -- 下篇 知识概要: (1)线程间的通信 生产者 - 消费者 (2)生产者消费者案例优化 (3)守护线程 (4)停止线 ...
- (图文实例)用VB.net操作SQLite数据库
转载请注明出处:HateMath归来(http://www.cnblogs.com/hatemath/) 环境: Visual Studio 社区版 64位 Windows 7系统 新建的解决方案基于 ...
- db2备份还原
还原步骤:创建好数据库后进入该数据库 .restore db TSMESDB from D:\ICSS\dbData on D:\ICSS\dbData into TSMESDB redirect. ...