命令

# 移除之前发布的包
rm -rf ./.Publish
rm -rf ./Wolfy.Blog.tar.gz # 编译并发布 将发布包打包在.Publish目录下
"C:/Program Files/dotnet/dotnet.exe" publish "./Wolfy.Blog/Wolfy.Blog.csproj" -c Release -r linux-x64 -f netcoreapp2. -o "../.Publish"

命令运行后效果:

压缩发布包

# 压缩
cd ./.Publish/ && tar -zcf ../Wolfy.Blog.tar.gz * && cd ../

命令执行后效果

# 创建指定目录
ssh -p root@192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog"

命令效果:

# 远程文件拷贝命令
scp -P -r ./Wolfy.Blog.tar.gz root@192.168.226.129:/home/webroot/Wolfy.Blog.tar.gz

命令效果

# 解压
ssh -p root@192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog"

命令效果

# 授予执行权限
ssh -p root@192.168.226.129 "chmod 777 /home/webroot/Wolfy.Blog"

首次部署需要添加该web应用supervisor配置

/etc/supervice/conf.d下添加

Wolfy.Blog.conf

[program:Wolfy.Blog]                          ;定义进程名称
command=dotnet Wolfy.Blog.dll ;程序启动命令
directory=/home/webroot/Wolfy.Blog ;命令执行的目录
autostart=true ;在Supervisord启动时,程序是否启动
autorestart=true ;程序退出后自动重启
startretries= ;启动失败自动重试次数,默认是3
startsecs= ;自动重启间隔
user=root ;设置启动进程的用户,默认是root
priority= ;进程启动优先级,默认999,值小的优先启动
stderr_logfile=/var/logs/supervisor/Wolfy.Blog.err.log ;标准错误日志
stdout_logfile=/var/logs/supervisor/Wolfy.Blog.out.log ;标准输出日志
environment=ASPNETCORE_ENVIRONMENT=Production ;进程环境变量
stopsignal=INT ;请求停止时用来杀死程序的信号
supervisorctl -c /etc/supervisor/supervisord.conf reload

之后发布,就不需要管这些,通过命令

# 启动站点
ssh -p root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log"
ssh -p root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log"
ssh -p root@192.168.226.129 "supervisorctl -c /etc/supervisor/supervisord.conf restart Wolfy.Blog"

可以通过supervisor先将站点停止,然后运行上面的命令,刷新supervisor管理页面,可以看到web启动成功。

所以完整的命令文件为:

# 移除之前发布的包
rm -rf ./.Publish
rm -rf ./Wolfy.Blog.tar.gz # 编译并发布 将发布包打包在.Publish目录下
"C:/Program Files/dotnet/dotnet.exe" publish "./Wolfy.Blog/Wolfy.Blog.csproj" -c Release -r linux-x64 -f netcoreapp2. -o "../.Publish" # 压缩
cd ./.Publish/ && tar -zcf ../Wolfy.Blog.tar.gz * && cd ../ # 创建指定目录
ssh -p root@192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog" # 远程文件拷贝命令
scp -P -r ./Wolfy.Blog.tar.gz root@192.168.226.129:/home/webroot/Wolfy.Blog.tar.gz # 解压
ssh -p root@192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog" # 授予执行权限
ssh -p root@192.168.226.129 "chmod 777 /home/webroot/Wolfy.Blog" # 启动站点
ssh -p root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log"
ssh -p root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log"
ssh -p root@192.168.226.129 "supervisorctl -c /etc/supervisor/supervisord.conf restart Wolfy.Blog" # 清理本地发布包
rm -rf ./.Publish
rm -rf ./Wolfy.Blog.tar.gz

总结

1、发布之前需要通过git确认发布的分支。

git checkout develop

2、拉取最新代码

git pull

3、将上面内容替写入一个.sh的文件,和sln解决方案文件放在同一个目录即可,替换项目名称,比如我这里使用的实例Wolfy.Blog

4、supervisor的配置,需要注意下,这个地方根据自己的配置进行设置。

[Asp.net core]使用ssh命令发布asp.net core项目的更多相关文章

  1. .NET Core 3.0即将发布!

    期待已久的.NET Core 3.0即将发布! .NET Core 3.0在.NET Conf上发布.大约还有9个多小时后,.NET Conf开始启动. 为期3天的大概日程安排如下: 第1天-9月23 ...

  2. Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)

    上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...

  3. .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线

    Powered by ASP.NET Core on Linux! 我们全站的 .NET Core 迁移工作如火如荼,这是我们今年上半年的重要工作. 今天我们终于完成了博问产品(q.cnblogs.c ...

  4. docker 初识之二(简单发布ASP.NET Core 网站)

    在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...

  5. ubuntu下发布asp.net core并用nginx代理之旅

    asp.net core 1.0.1发布已有些日子了,怀着好奇的心情体验了把ubuntu下的asp.net core 系统运行环境:ubuntu 16.0.4 for developer 首先搭建.n ...

  6. [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  7. 重磅!!!微软发布ASP.NET Core 2.2,先睹为快。

    我很高兴地宣布ASP.NET Core 2.2现在作为.NET Core 2.2的一部分提供! 如何获取? 您可以从.NET Core 2.2下载页面下载适用于您的开发机器和构建服务器的新.NET C ...

  8. [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问

    前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...

  9. ASP.NET Core 2.0 MVC 发布部署--------- Ubuntun 16.04 X64 具体操作

    .Net Core 部署到Ubuntu 16.04 中的步骤 1.安装工具 1.apache 2..Net Core(dotnet-sdk-2.0) 3.Supervisor(进程管理工具,目的是服务 ...

随机推荐

  1. Crystal Reports报表使用 [一]

    1.Crystal Reports 是什么? Crystal Reports 是一个功能强大.动态和可操作的报表解决方案,它将帮助你通过网络设计.开发.可视化及发布报表,或嵌入到企业应用之中.有了它, ...

  2. 一起学Hive——总结各种Join连接的用法

    Hive支持常用的SQL join语句,例如内连接.左外连接.右外连接以及HiVe独有的map端连接.其中map端连接是用于优化Hive连接查询的一个重要技巧. 在介绍各种连接之前,先准备好表和数据. ...

  3. git之一: git基础

    参考: SourceTree使用 git教程 廖学风git  文档1 文档2 1. git 概念介绍 工作区: 就是你在电脑里能看到的目录,比如我的learngit文件夹就是一个工作区,工作区下面有. ...

  4. 解决背景图文字盖住html里面的dom元素

    width:100%; background: url('../images/res.jpg') no-repeat 0 0px; background-attachment:fixed; backg ...

  5. ip转城市接口,ip转省份接口,ip转城市PHP方法

    新浪接口(速度快) $url = 'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='.$ip; $arr ...

  6. 使用aws中国的s3时,制订bucket poicy时注意注意……

    { "Version": "2012-10-17", "Statement": [ { "Sid": "Pub ...

  7. SORT--不要仅限于题目中

    输入n,m 表示输入n个数输出前m个最大的数 Input The input file contains many test cases. Each case has 2 lines. The fir ...

  8. Redis+Shiro+Spring-data-redis,共享Session

    环境:centos7,Java1.8+,一个Nginx,两个Tomcat,一个Redis. 关于共享session的问题大家都应该知道了,传统的部署项目,两个相同的项目部署到不同的服务器上,Nginx ...

  9. 003.DNS主从正反解析部署

    一 实验环境 1.1 实验需求 配置正向解析bind 配置反向解析bind 配置辅助dns的bind 实现主辅dns之间的区域传送 1.2 环境规划 主dns:CentOS6.8-01 172.24. ...

  10. 基于jest和puppeteer的前端自动化测试实战

    前端测试现状 经常听到后端同学说“单元测试”,前端写过测试用例的有多少?答案是:并不多,为什么呢?两个主要原因 1.前端属于GUI软件,浏览器众多,兼容问题让人头大,用户量有一定规模的浏览器包括: I ...