[Asp.net core]使用ssh命令发布asp.net core项目

命令

# 移除之前发布的包
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.1 -o "../.Publish"

命令运行后效果:

压缩发布包

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

命令执行后效果

# 创建指定目录
ssh -p 22 [email protected]192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog"

命令效果:

# 远程文件拷贝命令
scp -P 22 -r ./Wolfy.Blog.tar.gz [email protected]192.168.226.129:/home/webroot/Wolfy.Blog.tar.gz

命令效果

# 解压
ssh -p 22 [email protected]192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog"

命令效果

# 授予执行权限
ssh -p 22 [email protected]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=5                                  ;启动失败自动重试次数,默认是3
startsecs=1                                     ;自动重启间隔
user=root                                       ;设置启动进程的用户,默认是root
priority=999                                    ;进程启动优先级,默认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 22 [email protected]192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log"
ssh -p 22 [email protected]192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log"
ssh -p 22 [email protected]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.1 -o "../.Publish"

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

# 创建指定目录
ssh -p 22 [email protected]192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog"

# 远程文件拷贝命令
 scp -P 22 -r ./Wolfy.Blog.tar.gz [email protected]192.168.226.129:/home/webroot/Wolfy.Blog.tar.gz

# 解压
ssh -p 22 [email protected]192.168.226.129 "tar -xzf /home/webroot/Wolfy.Blog.tar.gz -C /home/webroot/Wolfy.Blog"

# 授予执行权限
ssh -p 22 [email protected]192.168.226.129 "chmod 777 /home/webroot/Wolfy.Blog"

# 启动站点
ssh -p 22 [email protected]192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log"
ssh -p 22 [email protected]192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log"
ssh -p 22 [email protected]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的配置,需要注意下,这个地方根据自己的配置进行设置。

原文地址:https://www.cnblogs.com/wolf-sun/p/9958950.html

时间: 2024-11-05 19:34:10

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

[翻译] ASP.NET Core 2.1.0 发布

原文: ASP.NET Core 2.1.0 now available 今天,我们很高兴可以发布 ASP.NET Core 2.1.0!这是我们 .NET平台下开源的.跨平台的 Web 框架的最新版本,现在已准备好供生产使用.今天就开始使用 ASP.NET Core 2.1! 此版本中的新功能包括: SignalR - 为您的 ASP.NET Core 应用程序添加实时网络功能. Razor class libraries - 使用 Razor 将视图和页面构建为可重用的类库. Identit

IIS发布asp.net mvc项目(asp.net core也是一样)

因为之前都是利用其他的工具在linux上面进行发布,导致现在忘记了在IIS上面怎么发布,现在就记录下来,以防不时之需吧 第一步: 在vs里面进行项目发布:指定好发布的位置,点击发布就好了 第二步:右击发布文件的属性,点击安全 查看下有没有IUSR,和IIS_IUSRS这两个用户 假如没有就点击添加,再点高级按钮出现下面的图片,点击立即查询添加IUSR和IIS_IUSRS这两个用户 修改ISURS和IIS_IURS这两个用户的权限 假如没设置的话打开网页会报错 这时候就可以在IIS里面发布网站了,

ASP.NET Core 实战:Linux 小白的 .NET Core 部署之路

 一.前言  最近一段时间自己主要的学习计划还是按照毕业后设定的计划,自己一步步的搭建一个前后端分离的 ASP.NET Core 项目,目前也还在继续学习 Vue 中,虽然中间断了很长时间,好歹还是坚持下来了,嗯,看了看时间,原本决定的半年完成肯定是完不成了.这两周重新拾起来学习 Vue,文章也在慢慢的更新中,这一篇文章主要是想提前试试水将 ASP.NET Core 部署到 Linux Server 上,原本的打算是把毕业设计就部署到 Linux 上,最终也未能成行,究其原因,还是自己太懒太拖了

NET Core环境并创建运行ASP.NET网站

kungge 在Windows系统搭建.NET Core环境并创建运行ASP.NET网站 微软于6月27日在红帽DevNation峰会上 正式发布了.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,其将全部支持Windows.OS X和Linux操作系统.其中.NET Core最受瞩目,为一款跨平台.开源且模块化的.NET平台,可以用来搭建web应用.微服务.创立应用库和控制台. ASP.NET 5已被微软改成了 ASP.NET Core 1

理解ASP.NET 5运行时命令:DNVM, DNX, 和DNU

ASP.NET 5 引入了一个新型的运行时,让我们可以现场交付模式组合式构建应用程序,而不依赖于宿主机上的.NET框架.这种新模式为我们提供了命令行工具(DNVM.DNX.DNU)用于管理我们的.net 版本,依赖的库和运行环境,我们可以不需要Visual Studio,只需要一个文本编辑器和命令行就可以开发一个应用程序. 了解.NET 版本管理器 (DNVM) 之间 ,.NET 执行环境 (DNX) 和.NET 开发实用程序 (DNU) 之间的关系是开发 ASP.NET 5的根本.在这篇文章我

在Windows系统搭建.NET Core环境并创建运行ASP.NET网站

微软于6月27日在红帽DevNation峰会上 正式发布了.NET Core 1.0.ASP.NET 1.0和Entity Framework Core 1.0,其将全部支持Windows.OS X和Linux操作系统.其中.NET Core最受瞩目,为一款跨平台.开源且模块化的.NET平台,可以用来搭建web应用.微服务.创立应用库和控制台. ASP.NET 5已被微软改成了 ASP.NET Core 1.0,.NET 5就是现在的.NET Core 1.0,EF7(Entity Framew

ASP.NET 5 已死 - 隆重介绍 ASP.NET Core 1.0 和 .NET Core 1.0

还没正式登场就死了?不能怪我标题党,是大神Scott在他博客上这么说的,我只是翻译了一下. 在1月20号最新的ASP.NET Community Standup视频中,微软aspnet开发组的大帅哥 大面·爱德华兹(Damian Edwards)聊了聊在未来版本RC2将要进行的重命名工作. 然而由于我听力太渣,只能听个大概,好在Scott Hanselman在博客中发表了一篇文章把这个事情解释了一下. 我粗暴翻译了一下,给大家看看,难免有错,还望指正. 博客英文原文地址:ASP.NET 5 is

IIS发布ASP.NET MVC4.0教程

本文主要讲解在微软的IIS Web服务器上发布ASP.NET MVC4.0的项目的方法以及注意事项. 首先介绍如何打开IIS服务器. 打开IIS 在命令行中输入 Inetmgr 既可以打开IIS了,界面如下: 再来谈谈如何查看自己的IIS版本号. IIS版本 在IIS工具的帮助下拉框中,选择 关于internet信息服务 发布 接下来就介绍如何发布ASP.NET MVC4.0项目到IIS8.5 Web服务器上的流程. 首先进入VS中,选择项目中的引用部分,全部选中,将属性中的复制本地全部设为tr

WIN7下发布ASP.NET网站常见问题及解决方案

  上个月发布ASP.NET写的网站,结果遇到各种问题,为以后打算,还是写下了方便点. 1.由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决方法: 找到Visual Studio 2008 命令提示工具或者是Visual Studio 2005 命令提示工具中.然后用管理员身份运行,输入命令 aspnet_regiis -i(2010和2012版本亲测也可行) 2.HTTP 错误 404.17 - Not Found 请求的