<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[s_alted的博客]]></title><description><![CDATA[]]></description><link>https://blog.csdn.net/s_alted</link><language>zh-cn</language><generator>https://blog.csdn.net/</generator><copyright><![CDATA[Copyright &copy; s_alted]]></copyright><item><title><![CDATA[运维排查 | SaltStack 远程命令执行中文乱码问题]]></title><link>https://blog.csdn.net/s_alted/article/details/148581795</link><guid>https://blog.csdn.net/s_alted/article/details/148581795</guid><author>s_alted</author><pubDate>Wed, 11 Jun 2025 10:45:48 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。好久不见，前段时间因为把公众号外包出去了，不小心发了不少广告内容。生活不易，偶尔也要贴补一下:)话不多说，正文开始。]]></description><category></category></item><item><title><![CDATA[SaltStack 远程命令执行中文乱码问题]]></title><link>https://blog.csdn.net/s_alted/article/details/147498745</link><guid>https://blog.csdn.net/s_alted/article/details/147498745</guid><author>s_alted</author><pubDate>Fri, 25 Apr 2025 09:15:11 +0800</pubDate><description><![CDATA[这个问题只在通过 SaltStack 远程执行时出现，而在本地运行并无任何异常，因此可以初步判断是远程执行环境下的字符集设置（locale）引起的编码错误。指向的是字符编码问题，Python 在输出中文字符时试图使用 ASCII 编码，但遇到了无法编码的字符，导致程序报错。这会导致在 Salt 进程中执行某些脚本时出现字符编码相关的问题，例如中文乱码、编码异常等。可以看到，通过 Salt 远程执行时，locale 设置与本地环境存在明显差异，字符集从。在 CentOS 或任何基于 Linux 的系统中，]]></description><category></category></item><item><title><![CDATA[一个能够生成 Markdown 表格的 Bash 脚本]]></title><link>https://blog.csdn.net/s_alted/article/details/141418089</link><guid>https://blog.csdn.net/s_alted/article/details/141418089</guid><author>s_alted</author><pubDate>Thu, 22 Aug 2024 09:43:02 +0800</pubDate><description><![CDATA[原文链接：https://josh.fail/2022/pure-bash-markdown-table-generator/当我实现了这一功能后，我意识到还可以添加支持解析带有自定义分隔符的文件，比如 CSV 或 TSV。一开始我只是想传入一堆参数和列数，并让它生成相应的 Markdown 表格。几个月前，我想要一个便携式的 Markdown 表格生成器，于是写了这个。今天分享一个很实用的 bash 脚本，可以。哈喽大家好，我是咸鱼。]]></description><category></category></item><item><title><![CDATA[K8S 中的 CRI、OCI、CRI shim、containerd]]></title><link>https://blog.csdn.net/s_alted/article/details/140445124</link><guid>https://blog.csdn.net/s_alted/article/details/140445124</guid><author>s_alted</author><pubDate>Mon, 15 Jul 2024 17:47:48 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。好久没发文了，最近这段时间都在学 K8S。不知道大家是不是和咸鱼一样，刚开始学 K8S、Docker 的时候，往往被 CRI、OCI、CRI shim、containerd 这些名词搞得晕乎乎的，不清楚它们到底是干什么用的。所以今天，咸鱼打算借这篇文章来解释一下这些名词，帮助大家理清它们的关系。我们以 K8S 创建容器的过程为例，来引申出各个概念。]]></description><category></category></item><item><title><![CDATA[聊聊 JSON Web Token (JWT) 和 jwcrypto 的使用]]></title><link>https://blog.csdn.net/s_alted/article/details/139072659</link><guid>https://blog.csdn.net/s_alted/article/details/139072659</guid><author>s_alted</author><pubDate>Mon, 20 May 2024 18:55:43 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。最近写的一个 Python 项目用到了 jwcrypto 这个库，这个库是专门用来处理 JWT 的，JWT 全称是，JSON 格式的 Token。今天就来简单入门一下 JWT。官方介绍：https://jwt.io/introduction。]]></description><category></category></item><item><title><![CDATA[hexo 博客插入本地图片时遇到的坑]]></title><link>https://blog.csdn.net/s_alted/article/details/138582550</link><guid>https://blog.csdn.net/s_alted/article/details/138582550</guid><author>s_alted</author><pubDate>Wed, 08 May 2024 18:52:03 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。最近一直在折腾博客的事，说是 hexo 极易上手，我觉得只仅限于在安装部署的时候，随着对 hexo 的深入使用，发现遇到的问题还是挺多的。那今天来讲一下我在把本地图片插入到 hexo 博客文章中遇到的坑。]]></description><category></category></item><item><title><![CDATA[博客添加评论功能及定制化样式]]></title><link>https://blog.csdn.net/s_alted/article/details/138287671</link><guid>https://blog.csdn.net/s_alted/article/details/138287671</guid><author>s_alted</author><pubDate>Sun, 28 Apr 2024 18:43:55 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。前段时间看到一个学弟写了篇用 Hexo 搭建博客的教程，心中沉寂已久的激情重新被点燃起来。（以前搞过一个个人网站，但是因为种种原因最后不了了之）于是花了一天时间参考教程搭了个博客网站，我的博客网址是：https://xxxsalted.github.io/下面是相关教程。]]></description><category></category></item><item><title><![CDATA[又重新搭了个个人博客]]></title><link>https://blog.csdn.net/s_alted/article/details/138230996</link><guid>https://blog.csdn.net/s_alted/article/details/138230996</guid><author>s_alted</author><pubDate>Fri, 26 Apr 2024 21:26:12 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。前段时间看到一个学弟写了篇用 Hexo 搭建博客的教程，心中沉寂已久的激情重新被点燃起来。（以前搞过一个个人网站，但是因为种种原因最后不了了之）于是花了一天时间参考教程搭了个博客网站，我的博客网址是：https://xxxsalted.github.io/下面是相关教程。]]></description><category></category></item><item><title><![CDATA[聊聊 Linux iowait]]></title><link>https://blog.csdn.net/s_alted/article/details/138135429</link><guid>https://blog.csdn.net/s_alted/article/details/138135429</guid><author>s_alted</author><pubDate>Tue, 23 Apr 2024 18:45:32 +0800</pubDate><description><![CDATA[最后总结一下：1）不要搞混 CPU 状态和进程的状态。进程有 R、S、D、Z、T，5 种状态；CPU 有 4 种状态：工作（user、system 两种）和空闲（idle、iowait 两种）。2）iowait 表示 CPU 其实是空闲的，不过 CPU 并不是严格意义上的 “空闲”，上面还有等待 I/O 操作的进程在执行。系统存在 I/O 性能问题：系统正在做的工作，大部分时间都是在等待 I/O 了。有进程因为等待 I/O 操作而阻塞，但这并不意味着系统不可以运行其他进程。]]></description><category></category></item><item><title><![CDATA[程序员购车指南]]></title><link>https://blog.csdn.net/s_alted/article/details/137941187</link><guid>https://blog.csdn.net/s_alted/article/details/137941187</guid><author>s_alted</author><pubDate>Thu, 18 Apr 2024 23:02:42 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。爱车可以说是大部分男人的天性，而我对汽车的热情却远不及对手表的钟爱（痴迷劳力士）。以至于我的朋友掏出车钥匙指着上面的苹果树标志跟我介绍奔驰 AMG 系列的强劲性能和马力时，我只能尽量假装自己听懂不让他尴尬。不过从今年开始，大数据就时不时给我推一些关于汽车的介绍和评测视频，加上打算给老爸买辆车。为了不被 4S 店忽悠，我逐渐开始了解一些选车和购车的基本知识。在搜集了许多资料之后，我写出了这份程序员购车指南，希望对大家有所帮助。下列图片均来自互联网。]]></description><category></category></item><item><title><![CDATA[Linux systemd 定时任务]]></title><link>https://blog.csdn.net/s_alted/article/details/137791447</link><guid>https://blog.csdn.net/s_alted/article/details/137791447</guid><author>s_alted</author><pubDate>Mon, 15 Apr 2024 18:49:56 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。说到 Linux 定时任务，大家用得最多的就是 crond 服务，但其实 systemd 也有类似的功能。我们不但可以通过 systemd 来管理服务，还能设置定时任务，那就是 systemd timer。举个例子，假设我们要通过 crond 配置多个大文件的远程备份（使用 scp、rsync 或 ftp 的方式），但由于大文件的网络传输时间不确定，因此下一个文件的备份任务开始时间几乎都是按照经验估计的。]]></description><category></category></item><item><title><![CDATA[运维排查 | Systemd 之服务停止后状态为 failed]]></title><link>https://blog.csdn.net/s_alted/article/details/137243924</link><guid>https://blog.csdn.net/s_alted/article/details/137243924</guid><author>s_alted</author><pubDate>Mon, 01 Apr 2024 19:24:28 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。我们知道 CentOS 7 之后，Systemd 代替了原来的 SystemV 来管理服务，相比 SystemV ，Systemd 能够很好地解决各个服务间的依赖关系，还能让所有的服务同时启动，而不是串行启动。通常情况下，yum 安装的软件会由系统的包管理器（如 RPM）安装，并且会配置相应的 systemd 服务，因此由 systemd 来管理。]]></description><category></category></item><item><title><![CDATA[Saltstack 最大打开文件数问题之奇怪的 8192]]></title><link>https://blog.csdn.net/s_alted/article/details/136949544</link><guid>https://blog.csdn.net/s_alted/article/details/136949544</guid><author>s_alted</author><pubDate>Fri, 22 Mar 2024 18:55:55 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。今天分享一个在压测过程中遇到的问题，当时排查这个问题费了我们好大的劲，所以我觉得有必要写一篇文章来记录一下。]]></description><category></category></item><item><title><![CDATA[程序员必须了解的 10个免费 Devops 工具]]></title><link>https://blog.csdn.net/s_alted/article/details/136895470</link><guid>https://blog.csdn.net/s_alted/article/details/136895470</guid><author>s_alted</author><pubDate>Thu, 21 Mar 2024 08:39:10 +0800</pubDate><description><![CDATA[DevOps 是一组实践和方法，将开发（创建软件的人员）和运维（部署和维护软件的人员）团队聚集在一起。这有什么意义吗？为什么 DevOps  这么重要？让我们以一种易于理解的方式去了解它。想象一下，你是一个拼图团队的一员。开发团队负责设计和制作拼图，而运维团队负责将拼图拼在一起并确保拼完后的正确的。在传统流程中，开发团队和运维团队各干各的，缺乏交流，这就导致交付延迟和最终产品不完全合适。而 DevOps 确保每个人从一开始就一起工作，分担责任并持续沟通，以更快更有效地方式解决问题。]]></description><category></category></item><item><title><![CDATA[线上机器 swap 过高导致告警]]></title><link>https://blog.csdn.net/s_alted/article/details/136688163</link><guid>https://blog.csdn.net/s_alted/article/details/136688163</guid><author>s_alted</author><pubDate>Wed, 13 Mar 2024 18:40:28 +0800</pubDate><description><![CDATA[swap 顾名思义指的是 Linux 上的交换分区，有点像 Windows 的虚拟内存，说白了就是把一块磁盘空间或者一个本地文件当成内存来使用。在早期内存价格昂贵的时代，swap 的出现解决了物理内存不足导致无法运行程序的问题。换出：把进程暂时不用的内存数据存储到磁盘中，并释放这些数据占用的内存。换入：进程再次访问这些内存数据时，把它们从磁盘读到内存来。那现在随着内存越来越便宜，服务器上面的内存也越来越大，swap 是不是就没啥作用了呢？不是的，对于程序来说，内存再大也有不够用的时候。]]></description><category></category></item><item><title><![CDATA[Python 初学者容易踩的 5 个坑]]></title><link>https://blog.csdn.net/s_alted/article/details/136632099</link><guid>https://blog.csdn.net/s_alted/article/details/136632099</guid><author>s_alted</author><pubDate>Mon, 11 Mar 2024 18:54:35 +0800</pubDate><description><![CDATA[为了避免这种情况，常见的做法是使用不可变对象（如。]]></description><category></category></item><item><title><![CDATA[TCP 中的 Delay ACK 和 Nagle 算法]]></title><link>https://blog.csdn.net/s_alted/article/details/136514853</link><guid>https://blog.csdn.net/s_alted/article/details/136514853</guid><author>s_alted</author><pubDate>Wed, 06 Mar 2024 19:04:40 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。今天分享一篇大佬的文章，作者：卡瓦邦噶！文章链接：https://www.kawabangga.com/posts/5845教科书介绍的 TCP 内容通常比较基础：包括三次握手，四次挥手，数据发送通过收到 ACK 来保证可靠传输等等。当时我以为已经学会了 TCP，但是后来在工作中，随着接触 TCP 越来越多，我发现很多内容和书上的不一样——现实世界的 TCP 要复杂一些。我们从一个简单的 HTTP 请求开始。第一个和书上不一样的地方是，]]></description><category></category></item><item><title><![CDATA[聊聊 HTTP 性能优化]]></title><link>https://blog.csdn.net/s_alted/article/details/136387022</link><guid>https://blog.csdn.net/s_alted/article/details/136387022</guid><author>s_alted</author><pubDate>Fri, 01 Mar 2024 09:27:30 +0800</pubDate><description><![CDATA[哈喽大家好，我是咸鱼。作为用户的我们在 “上网冲浪” 的时候总是希望快一点，尤其是抢演唱会门票的时候，但是现实并非如此，有时候我们会遇到页面加载缓慢、响应延迟的情况。而 HTTP 协议作为互联网世界的基础，从网站打开速度到移动应用的响应时间，HTTP 性能的优化直接关系到我们在网络世界的舒适体验程度。更快的响应时间和速度能够，不但如此，还可以降低服务器和网络带宽的使用，从而。那么今天我们就来聊聊。]]></description><category></category></item><item><title><![CDATA[通过 saltstack 批量更新 SSL 证书]]></title><link>https://blog.csdn.net/s_alted/article/details/136306677</link><guid>https://blog.csdn.net/s_alted/article/details/136306677</guid><author>s_alted</author><pubDate>Mon, 26 Feb 2024 19:15:49 +0800</pubDate><description><![CDATA[像 ansible、puppet 这类工具也可以实现同样的效果，但是咸鱼这边主要用的还是 saltstack，所以今天介绍一些如何通过 saltstack 去批量更新 SSL 证书。如果这个域名下有很多服务器，我们一台一台手动登录机器然后更新证书的话效率是非常低的，所以我们可以通过一些自动化运维工具去完成这些大量重复的工作。首先我们在 salt-master 的主目录下创建一个新的目录，用于存放 SSL 证书和脚本，我自己机器上的 master 主目录为。设置变量 year 的命令有点复杂，我们来看一下。]]></description><category></category></item><item><title><![CDATA[【CVE-2024-21626】容器逃逸漏洞修复]]></title><link>https://blog.csdn.net/s_alted/article/details/136217624</link><guid>https://blog.csdn.net/s_alted/article/details/136217624</guid><author>s_alted</author><pubDate>Wed, 21 Feb 2024 17:59:32 +0800</pubDate><description><![CDATA[简单来讲，是一个用 Go 语言编写的 CLI 工具，它利用 Linux 的核心功能（如 cgroups 和命名空间）来创建和运行容器。由于runc内部不正确处理文件描述符，导致泄漏关键的宿主机文件描述符到容器中。攻击1： 利用文件描述符泄漏，特权用户执行恶意容器镜像，导致 pid1 进程在宿主机挂载命名空间中拥有工作目录，从而允许对整个宿主文件系统的访问。攻击2： 在runc exec中存在文件描述符泄漏和工作目录验证不足，攻击者可通过符号链接将路径替换为。]]></description><category></category></item></channel></rss>