1 离线安装.net8 运行时
下载地址
下载 .NET 8.0 (Linux、macOS 和 Windows) | .NET
我是x64的所以选择这个二进制文件
上传到服务器上解压就行了我用的FileZilla工具上传的
可以用命令解压
cd /home/opsadmin/netcoreruntime
tar -zxvf aspnetcore-runtime-8.0.19-linux-x64.tar.gz
配置环境变量
#打开环境变量配置文件
vim ~/.bashrc
#在文件里新增这两行,其中 /home/opsadmin/netcoreruntime/aspnetcore 是你运行时解压的目录
export DOTNET_ROOT=/home/opsadmin/netcoreruntime/aspnetcore
export PATH=$PATH:$DOTNET_ROOT
#添加后保存文件刷新环境变量
source ~/.bashrc
#验证安装结果 输出版本信息说明配置成功了
dotnet –version
2 将.netcore项目上传到服务器上
#执行dotnet 命令启动服务
dotnet myapp.dll
2 将应用注册到 系统服务上进行管理长期运行
在第一步中使用.dotnet myapp.dll 启动了服务但是窗口运行 窗口关闭服务就停了显然不行,所以咱们还需要把服务应用注册到linux管理服务里进行管理
#新增服务配置文件
sudo vim /etc/systemd/system/myapp.service
[Unit]
Description=My .NET Core Application
After=network.target
[Service]
#服务目录 项目的文件目录
WorkingDirectory=/home/myapp
#dotnet 运行时安装目录
#注意 /home/netcoreruntime/dotnet 这个是dotnet运行时的全目录否则无法执行
#注意 /home/myapp/myapp.dll 这个是你程序的启动dll
ExecStart=/home/netcoreruntime/dotnet /home/myapp/myapp.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=100
KillSignal=SIGINT
#日志前缀
SyslogIdentifier=dotnet-myappserver
#启用用户 这里建议新建一个用户
User=opsadmin
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
[Install]
WantedBy=multi-user.target
以上配置关键几个位置修改下就可以直接使用
配置完成了怎么启动呢
#设置开机自动启动 myapp.service 这个要与刚才创建的配置文件名称一致
sudo systemctl enable myapp.service
#启动服务
sudo systemctl start myapp.service
#查看服务状态 如果running 状态说明服务已经部署成功拉
sudo systemctl status myapp.service
3 日志查看
服务部署完了但是怎么查看日志呢?
sudo journalctl -u myapp.service # 查看所有日志 sudo journalctl -u myapp.service -f # 实时跟踪日志 sudo journalctl -u myapp.service –since "10 minutes ago" # 查看最近10分钟日志
journalctl 是个啥?
journalctl 是 Linux 系统中用于查询和管理 systemd-journald 服务收集的日志的命令行工具,在使用 systemd 的系统(如麒麟 V10、CentOS 7+、Ubuntu 16.04+ 等)中非常常用。它可以集中查看系统、服务、内核等各类日志,功能强大且灵活。
一、基本用法
1. 查看所有日志(默认按分页)
bash
journalctl
按 q 退出查看,按上下键滚动,按 G 跳到底部。
2. 实时跟踪日志(类似 tail -f)
bash
journalctl -f
实时显示新产生的日志,适合监控服务运行状态。
二、按服务 / 单元筛选
1. 查看指定服务的日志(最常用)
bash
journalctl -u 服务名.service
# 示例:查看 nginx 服务的日志
journalctl -u nginx.service
2. 实时跟踪某个服务的日志
bash
journalctl -u nginx.service -f
三、按时间筛选
1. 查看最近 N 时间的日志
bash
# 最近 1 小时
journalctl –since "1 hour ago"
# 最近 30 分钟
journalctl –since "30 minutes ago"
2. 查看某个时间范围内的日志
bash
# 2025-08-14 08:00 到现在
journalctl –since "2025-08-14 08:00"
# 2025-08-14 08:00 到 10:00
journalctl –since "2025-08-14 08:00" –until "2025-08-14 10:00"
四、按日志级别筛选
日志级别从低到高(详细程度递减):debug、info、notice、warning、err、crit、alert、emerg。
bash
# 只显示错误级别及以上的日志(err、crit、alert、emerg)
journalctl -p err
# 显示警告及以上级别,并跟踪 nginx 服务
journalctl -u nginx.service -p warning -f
五、按进程 / 用户筛选
1. 查看某个进程的日志
bash
journalctl _PID=1234 # 1234 是进程 PID
2. 查看某个用户相关的日志
bash
journalctl _UID=1000 # 1000 是用户 UID
六、内核日志相关
1. 只查看内核日志
bash
journalctl -k
2. 实时跟踪内核日志(如硬件事件、驱动信息)
bash
journalctl -k -f
七、实用选项
- –no-pager:不分页显示(适合管道符处理)
bash
journalctl -u nginx.service –no-pager | grep "error"
- -o json:以 JSON 格式输出(便于解析)
bash
journalctl -u nginx.service -o json
- –disk-usage:查看日志占用的磁盘空间
bash
journalctl –disk-usage
- –vacuum-size=100M:清理日志,保留最近 100M
bash
sudo journalctl –vacuum-size=100M
八、注意事项
通过 journalctl 的各种组合选项,可以高效定位系统或服务的问题,是 Linux 运维中不可或缺的工具。
评论前必须登录!
注册