[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. -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项目的更多相关文章
- .NET Core 3.0即将发布!
期待已久的.NET Core 3.0即将发布! .NET Core 3.0在.NET Conf上发布.大约还有9个多小时后,.NET Conf开始启动. 为期3天的大概日程安排如下: 第1天-9月23 ...
- Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(2)
上一篇:Ubuntu & GitLab CI & Docker & ASP.NET Core 2.0 自动化发布和部署(1) 服务器版本 Ubuntu 16.04 LTS. 本 ...
- .NET跨平台之旅:博问站点迁移至ASP.NET Core on Linux并发布上线
Powered by ASP.NET Core on Linux! 我们全站的 .NET Core 迁移工作如火如荼,这是我们今年上半年的重要工作. 今天我们终于完成了博问产品(q.cnblogs.c ...
- docker 初识之二(简单发布ASP.NET Core 网站)
在发布ASP.NET Core网站以前,先介绍一下DaoCloud 一个免费的docker云容器服务平台.登陆官方网站,创建一台docker主机,这台主机有120分钟的使用时间,对于鄙人学习使用正好合 ...
- ubuntu下发布asp.net core并用nginx代理之旅
asp.net core 1.0.1发布已有些日子了,怀着好奇的心情体验了把ubuntu下的asp.net core 系统运行环境:ubuntu 16.0.4 for developer 首先搭建.n ...
- [亲测]ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- 重磅!!!微软发布ASP.NET Core 2.2,先睹为快。
我很高兴地宣布ASP.NET Core 2.2现在作为.NET Core 2.2的一部分提供! 如何获取? 您可以从.NET Core 2.2下载页面下载适用于您的开发机器和构建服务器的新.NET C ...
- [亲测]七步学会ASP.NET Core 2.0怎么发布/部署到Ubuntu Linux服务器并配置Nginx反向代理实现域名访问
前言 ASP.NET Core 2.0 怎么发布到Ubuntu服务器?又如何在服务器上配置使用ASP.NET Core网站绑定到指定的域名,让外网用户可以访问呢? 步骤 第1步:准备工作 一台Liun ...
- 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(进程管理工具,目的是服务 ...
随机推荐
- dos文件(夹)复制命令:copy和xcopy
1.copy命令 将一份或多份文件复制到另一个位置. COPY [/D] [/V] [/N] [/Y | /-Y] [/Z] [/L] [/A | /B ] source [/A | /B] [+ s ...
- 设置VMware10开机自启动并同时启动虚拟机镜像系统
首先,进入VMware Workstation的安装目录 C:\Program Files (x86)\VMware\VMware Workstation
- Codeforces 542D Superhero's Job 数论 哈希表 搜索
原文链接https://www.cnblogs.com/zhouzhendong/p/CF542D.html 题目传送门 - CF542D 题目传送门 - 51Nod1477 题意 定义公式 $J(x ...
- BZOJ2553 [BeiJing2011]禁忌 AC自动机 矩阵
原文链接http://www.cnblogs.com/zhouzhendong/p/8196279.html 题目传送门 - BZOJ2553 题意概括 引用一下lych大佬的: 在字母只有前alph ...
- 【转】Java开发必须要知道的知识体系
Java Java是一门超高人气编程语言,拥有跨平台.面向对象.泛型编程等特性.在TIOBE编程语言排行榜中,连续夺得第一宝座,而且国内各大知名互联网公司,后端开发首选语言:非Java莫属.今天只是梳 ...
- F. Shovels Shop 背包DP
题意: 商店里有n把铲子 每个铲子有其标价 一个人要买k吧 有m个优惠政策 每个优惠政策有两个元素x,y 表示 正好买x个铲子的时候 这x个铲子中最便宜的y个铲子免单 求用最少的前买到k个铲子 ...
- 在排序数组中查找元素的第一个和最后一个位置(给定一个按照升序排列的整数数组 nums,和一个目标值 target。找出给定目标值在数组中的开始位置和结束位置。)
示例 1: 输入: nums = [5,7,7,8,8,10], target = 8 输出: [3,4] 示例 2: 输入: nums = [5,7,7,8,8,10], target = 6 输出 ...
- 059 SparkStream介绍
离线计算框架:MR,hive-->对时间要求不严格 实时计算框架:SparkCore-->要求job执行时间比较快 交互式计算框架:SparkSQL,Hive,-->提供SQL操作的 ...
- 《Thinking In Java》阅读笔记
<Thinking In Java>阅读笔记 前四章:对象导论. 一切都是对象. 操作符. 控制执行流程 public在一个文件中只能有一个,可以是一个类class或者一个接口interf ...
- Linux发展历史
一.硬件与软件发展历史 计算机由硬件和软件组成结构 硬件 1946年诞生于宾夕法尼亚州,占地170平米,重量达到30吨,名字叫做ENIAC(electronic numerical integrato ...