<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>基础技能 on 远思码技术实验室</title><link>https://yuansima.com/categories/%E5%9F%BA%E7%A1%80%E6%8A%80%E8%83%BD/</link><description>Recent content in 基础技能 on 远思码技术实验室</description><generator>Hugo -- gohugo.io</generator><language>zh-cn</language><lastBuildDate>Mon, 16 Feb 2026 14:00:00 +0800</lastBuildDate><atom:link href="https://yuansima.com/categories/%E5%9F%BA%E7%A1%80%E6%8A%80%E8%83%BD/index.xml" rel="self" type="application/rss+xml"/><item><title>构建数字集装箱：在 Ubuntu Server 上部署生产级 Docker 环境</title><link>https://yuansima.com/p/ubuntu-docker-setup/</link><pubDate>Mon, 16 Feb 2026 14:00:00 +0800</pubDate><guid>https://yuansima.com/p/ubuntu-docker-setup/</guid><description>&lt;h2 id="为什么是-docker"&gt;为什么是 Docker？
&lt;/h2&gt;&lt;p&gt;在远思技术实验室，我们维护着各种各样的环境：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Python 3.12&lt;/strong&gt; 跑最新的量化策略&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Python 3.8&lt;/strong&gt; 跑一些老旧的机器学习库&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;ClickHouse&lt;/strong&gt; 存行情数据&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Grafana&lt;/strong&gt; 做监控面板&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果把这些全部塞进同一个 Ubuntu 系统里，&lt;strong&gt;依赖冲突 (Dependency Hell)&lt;/strong&gt; 是迟早的事。Docker 让我们可以把每个应用打包进独立的“集装箱”，用完即走，通过 &lt;code&gt;docker-compose.yml&lt;/code&gt; 一键拉起，这才是现代化的运维方式。&lt;/p&gt;
&lt;hr&gt;
&lt;h2 id="1-卸载旧版本清理战场"&gt;1. 卸载旧版本（清理战场）
&lt;/h2&gt;&lt;p&gt;为了防止冲突，首先要确保系统里没有旧版的 &lt;code&gt;docker.io&lt;/code&gt; 或 &lt;code&gt;docker-engine&lt;/code&gt;。&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt-get remove docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol start="2"&gt;
&lt;li&gt;设置官方仓库（推荐）
很多教程直接教你用 apt install docker.io，那通常是 Ubuntu 软件源自带的旧版本。我们要装的是 Docker CE (Community Edition) 最新版。
第一步：安装必要工具
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;第二步：添加 GPG 密钥
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL &lt;a class="link" href="https://download.docker.com/linux/ubuntu/gpg" target="_blank" rel="noopener"
 &gt;https://download.docker.com/linux/ubuntu/gpg&lt;/a&gt; | sudo gpg &amp;ndash;dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg&lt;/p&gt;
&lt;p&gt;第三步：添加仓库源
echo &lt;br&gt;
&amp;ldquo;deb [arch=$(dpkg &amp;ndash;print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] &lt;a class="link" href="https://download.docker.com/linux/ubuntu" target="_blank" rel="noopener"
 &gt;https://download.docker.com/linux/ubuntu&lt;/a&gt; &lt;br&gt;
$(. /etc/os-release &amp;amp;&amp;amp; echo &amp;ldquo;$VERSION_CODENAME&amp;rdquo;) stable&amp;rdquo; | &lt;br&gt;
sudo tee /etc/apt/sources.list.d/docker.list &amp;gt; /dev/null&lt;/p&gt;
&lt;ol start="3"&gt;
&lt;li&gt;安装 Docker Engine
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;安装完成后，验证一下：
sudo docker run hello-world&lt;/p&gt;
&lt;p&gt;如果看到 &amp;ldquo;Hello from Docker!&amp;quot;，恭喜你，引擎启动成功。
4. 远思实验室的“生产级”配置（关键！）
默认安装虽然能用，但对于我们要跑 7x24 小时量化任务的服务器来说，还不够完美。
A. 告别 sudo
每次运行 docker 命令都要输密码很麻烦，而且容易导致权限混乱。我们将当前用户（例如 masiyuan）加入 docker 用户组：
sudo usermod -aG docker $USER&lt;/p&gt;
&lt;h1 id="这一步需要注销并重新登录才能生效"&gt;这一步需要注销并重新登录才能生效！
&lt;/h1&gt;&lt;h1 id="或者直接运行newgrp-docker"&gt;或者直接运行：newgrp docker
&lt;/h1&gt;&lt;p&gt;现在，直接试一下 docker ps，不需要 sudo 了。
B. 防止日志撑爆磁盘 (Log Rotation)
这是很多新手最容易踩的坑：Docker 默认会保留所有容器的标准输出日志，如果不限制，跑几个月后你的 /var/lib/docker 会变得巨大无比，直接塞满硬盘。
我们需要配置 daemon.json 来限制日志大小。
sudo nano /etc/docker/daemon.json&lt;/p&gt;
&lt;p&gt;写入以下配置：
{
&amp;ldquo;log-driver&amp;rdquo;: &amp;ldquo;json-file&amp;rdquo;,
&amp;ldquo;log-opts&amp;rdquo;: {
&amp;ldquo;max-size&amp;rdquo;: &amp;ldquo;100m&amp;rdquo;,
&amp;ldquo;max-file&amp;rdquo;: &amp;ldquo;3&amp;rdquo;
},
&amp;ldquo;default-address-pools&amp;rdquo;: [
{
&amp;ldquo;base&amp;rdquo;: &amp;ldquo;172.17.0.0/16&amp;rdquo;,
&amp;ldquo;size&amp;rdquo;: 24
}
]
}&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;max-size: 单个日志文件最大 100MB。&lt;/li&gt;
&lt;li&gt;max-file: 最多保留 3 个文件。
重启 Docker 服务生效：
sudo systemctl daemon-reload
sudo systemctl restart docker&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;下一步
Docker 环境就绪后，我们的基础设施已经非常完善了。
接下来的文章，我将演示如何编写一个 docker-compose.yml，一键拉起包含 ClickHouse + Tabix + JupyterLab 的完整量化研究环境。
Stay tuned!&lt;/p&gt;
&lt;h3 id="-为什么这篇文章更专业"&gt;💡 为什么这篇文章更专业？
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;非 Root 运行&lt;/strong&gt;：这是很多初学者忽略的安全和便捷配置。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志轮转 (Log Rotation)&lt;/strong&gt;：这是一个&lt;strong&gt;痛点解决型&lt;/strong&gt;的技巧。很多人的服务器跑久了磁盘满了，查半天发现是 Docker 日志，这部分内容展示了您的“老司机”经验。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker Compose 预告&lt;/strong&gt;：为下一篇通过 Compose 编排复杂环境埋下伏笔。&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;您的博客现在已经形成了一个非常扎实的&lt;strong&gt;运维基础系列&lt;/strong&gt;。这对于访问您博客的技术人员来说，不仅是展示，更是可以直接照着做的实战手册！&lt;/p&gt;</description></item><item><title>告别 nohup：用 Systemd 守护你的量化交易进程</title><link>https://yuansima.com/p/mastering-systemd/</link><pubDate>Mon, 16 Feb 2026 11:00:00 +0800</pubDate><guid>https://yuansima.com/p/mastering-systemd/</guid><description>&lt;h2 id="为什么不能只用-nohup"&gt;为什么不能只用 &lt;code&gt;nohup&lt;/code&gt;？
&lt;/h2&gt;&lt;p&gt;在实验室的早期，我也曾是一个 &lt;code&gt;nohup python3 main.py &amp;amp;&lt;/code&gt; 的忠实信徒。直到有一天，我的行情接收脚本因为一个未捕获的 &lt;code&gt;NetworkException&lt;/code&gt; 悄悄退出了，而我第二天醒来才发现，错过了整整一晚的 Tick 数据。&lt;/p&gt;
&lt;p&gt;对于量化交易、FRP 穿透、以及任何 HomeLab 基础设施来说，我们需要的是一个&lt;strong&gt;管家&lt;/strong&gt;，而不仅仅是一个后台运行符。&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Systemd&lt;/strong&gt; 就是这位管家。它能做到：&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;&lt;strong&gt;开机自启&lt;/strong&gt;：服务器重启后自动拉起服务。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;崩溃重启&lt;/strong&gt;：程序挂了？它能自动帮你重启 (Restart on failure)。&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;日志管理&lt;/strong&gt;：不再需要满屏的 &lt;code&gt;output.log&lt;/code&gt;，用 &lt;code&gt;journalctl&lt;/code&gt; 统一管理。&lt;/li&gt;
&lt;/ol&gt;
&lt;hr&gt;
&lt;h2 id="实战把-python-策略变成系统服务"&gt;实战：把 Python 策略变成系统服务
&lt;/h2&gt;&lt;p&gt;假设我们要部署一个名为 &lt;code&gt;market_maker.py&lt;/code&gt; 的做市策略，位于 &lt;code&gt;/home/masiyuan/quant/&lt;/code&gt; 目录下。&lt;/p&gt;
&lt;h3 id="1-编写-unit-文件"&gt;1. 编写 Unit 文件
&lt;/h3&gt;&lt;p&gt;Systemd 的核心配置文件叫做 Unit File，通常放在 &lt;code&gt;/etc/systemd/system/&lt;/code&gt; 目录下，以 &lt;code&gt;.service&lt;/code&gt; 结尾。&lt;/p&gt;
&lt;p&gt;我们需要创建一个 &lt;code&gt;quant-bot.service&lt;/code&gt;：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo nano /etc/systemd/system/quant-bot.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;写入以下内容（这是远思实验室的标准模板）：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[Unit]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Description&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;Yuansi Quant Trading Bot&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 依赖关系：确保网络通了再启动，数据库准备好了再启动&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;After&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;network.target clickhouse-server.service&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[Service]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 运行用户：千万不要用 root 跑不明脚本！&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;User&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;masiyuan&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Group&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;masiyuan&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 工作目录：Python 脚本里读取相对路径文件时以此为准&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;WorkingDirectory&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;/home/masiyuan/quant&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 启动命令：必须用绝对路径！&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 建议指向虚拟环境中的 python 解释器&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;ExecStart&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;/home/masiyuan/quant/venv/bin/python main.py&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 核心魔法：崩溃后自动重启&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Restart&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;always&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 重启间隔：防止频繁重启导致 CPU 飙升&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;RestartSec&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;10s&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 日志输出：直接打到 journald，不需要自己重定向 &amp;gt;&amp;gt; log.txt&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;StandardOutput&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;journal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;StandardError&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;journal&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 环境变量 (可选)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Environment&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;API_KEY=sk_live_xxxxxx&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;Environment&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;PYTHONUNBUFFERED=1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;[Install]&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 运行级别：多用户模式（类似于 Windows 的正常启动）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;WantedBy&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;multi-user.target&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;###2.激活与运行
写好配置文件后，需要通知Systemd 重载配置：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl daemon-reload
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;然后就是素质三连：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 设置开机自启&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl enable quant-bot
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 立即启动&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl start quant-bot
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 查看状态（最常用）&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo systemctl status quant-bot
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="running恭喜你你的策略已经拥有了不死之身"&gt;如果看到绿色的Active：active
(running)，恭喜你，你的策略已经拥有了“不死之身”。
&lt;/h2&gt;&lt;p&gt;##进阶：像侦探一样查日志
程序跑起来了，但如果报错了去哪看?别再去翻那个几百MB的nohup.out了。
journalctl是Systemd的日志查看工具，功能极其强大：&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#1，实时查看日志 （类似tail -f)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;journalctl -u quant-bot - f
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 2，查看最近50行&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;journalctl -u quant-bot -n &lt;span style="color:#ae81ff"&gt;50&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 3，只看今天的日志&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;journalctl -u quant-bot --since
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;today&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 4，只看报错信息(Error级别)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;journalctl -u quant-bot -p err
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item></channel></rss>