[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 root@192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog"

命令效果:

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

命令效果

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

命令效果

# 授予執行權限
ssh -p 22 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=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 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log"
ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log"
ssh -p 22 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.1 -o "../.Publish"

# 壓縮
cd ./.Publish/  && tar -zcf ../Wolfy.Blog.tar.gz * && cd ../

# 創建指定目錄
ssh -p 22 root@192.168.226.129 "mkdir -p /home/webroot/Wolfy.Blog"

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

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

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

# 啟動站點
ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.err.log"
ssh -p 22 root@192.168.226.129 "rm -f /var/logs/supervisor/Wolfy.Blog.out.log"
ssh -p 22 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的配置,需要注意下,這個地方根據自己的配置進行設置。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM