250823-(Permission denied)SELinux和AppArmor是Linux系统中的安全模块,它们可以限制文件的执行权限,即使你以root用户身份运行
SELinux和AppArmor是Linux系统中的安全模块,它们可以限制文件的执行权限,即使你以root用户身份运行
1 | setenforce 0 # 临时解决 |
以下是一些解决SELinux或AppArmor限制root用户执行权限的方法:
SELinux
- 临时关闭SELinux:可以使用
setenforce 0
命令临时将SELinux设置为宽容模式(Permissive),这样可以测试是否是SELinux导致的权限问题。如果关闭SELinux后问题解决,说明是SELinux策略限制了执行。 - 查看SELinux状态:使用命令查看SELinux的当前状态。
- 调整SELinux策略:如果需要长期解决,可以修改SELinux策略,允许特定文件或服务的执行。这需要一定的SELinux知识,可以通过工具来生成允许执行的策略。
AppArmor
- 查看AppArmor状态:使用命令查看AppArmor是否启用。
- 禁用AppArmor限制:对于AppArmor,可以使用
aa-disable /path/to/your/script命令禁用对特定文件的限制。 - 调整AppArmor配置:如果需要更细致的控制,可以编辑AppArmor的配置文件,位于目录下。根据需要修改配置文件,然后使用命令重新加载配置。
注意事项
- 安全性:禁用SELinux或AppArmor会降低系统的安全性,因此只应在确定需要时进行,并且了解其潜在风险。
- 长期解决方案:如果临时关闭SELinux或AppArmor后问题解决,建议不要长期保持关闭状态,而是应该修改相应的安全策略,以允许合法的执行,同时保持系统的安全性。
通过上述方法,你可以解决SELinux或AppArmor限制root用户执行权限的问题。如果问题仍然存在,可能需要进一步检查系统的其他配置或日志文件以获取更多信息。
yum-localinstall-使用 yum 的 localinstall 选项-本地安装rpm
使用 yum 的 localinstall 选项
如果你不想手动列出所有依赖项,可以使用 yum 的 localinstall 选项,它会自动解析并安装所需的依赖项:
1 | yum localinstall -y wgcloud-client-1.0.0-1.x86_64.rpm |
这个命令会自动下载并安装所有缺失的依赖项,然后安装 wgcloud-client。
yum localinstall -y wgcloud-client-1.0.0-1.x86_64.rpm
1 | yum localinstall -y wgcloud-client-1.0.0-1.x86_64.rpm |
250808-MongoDBHA-MongoDB副本集rs.initiate() 三个副本集节点都执行了,怎么办
你现在的情况是:三台机器上都执行了 rs.initiate(),这会导致每台机器都独立地成为了自己的单节点副本集
(各自成为一个不同的副本集),它们彼此之间并不知道对方的存在,所以整个副本集无法形成。
🔥 问题本质
MongoDB 的副本集只能由一个节点执行一次 rs.initiate() 来初始化整个副本集。
你在三台机器上都执行了,相当于创建了三个互不相关的副本集,这是错误的操作。
✅ 正确做法(修复步骤)
✅ 步骤 1:停止所有节点上的 MongoDB 服务
清理数据目录(dbpath)
bash
复制
1 | # 每台机器上执行 |
✅ 步骤 2:清理副本集配置(每台机器都要做)
MongoDB 会把副本集配置保存在 local.replset 集合中,你需要清理掉这些配置。
bash
复制
1 | # 进入 MongoDB shell(单节点启动,不指定 replSet) |
⚠️ 注意:这个操作会清除副本集配置和 oplog,不会影响你的业务数据(除非你业务数据也放在 local 库)。
✅ 步骤 3:重新以副本集模式启动 MongoDB(所有节点)
bash
复制
1 | mongod --replSet rs0 --bind_ip 0.0.0.0 --dbpath /data/db --port 27017 --fork --logpath /var/log/mongod.log |
✅ 步骤 4:只在一个节点(主节点)上执行初始化
连接任意一台节点(建议选你希望的 PRIMARY),执行:
JavaScript
复制
1 | rs.initiate({ |
| 字段 | 含义 |
|---|---|
_id: "replicaset" |
创建或指定一个名为 replicaset 的副本集。 |
members |
列出这个副本集里的所有成员(节点)。 |
_id: 0/1/2 |
每个成员在副本集内的唯一标识符。 |
host |
每个成员的 IP:端口,告诉副本集怎么找到它们。 |
- 当前你连接的这台节点(假设是 192.168.0.245)会成为 PRIMARY。
- 它会尝试与 192.168.0.246、192.168.0.247 建立心跳连接。
- 如果这两台节点已经以
--replSet replicaset启动且数据目录干净,它们会进入 SECONDARY 状态。 - 最终形成一个 三节点副本集(1 主 2 从)。
✅ 步骤 5:验证副本集状态
JavaScript
复制
1 | rs.status() |
✅ 总结一句话
每台都执行
rs.initiate()是错误的,必须清理配置后,只用一台机器初始化整个副本集。
如你不确定该删哪个目录、如何备份,我可以帮你写个脚本。
250805-Ubuntu20.04优化配置脚本-Ubuntu-Scripts
/etc/sudoers配置
1 | ubuntu ALL=(ALL:ALL) NOPASSWD: ALL |
Ubuntu 20.04 优化配置脚本
1 | #!/bin/sh |
250801-Maven-T-1C多线程编译参数配置
⚠️ 注意事项:
- 若项目模块间依赖复杂,Maven 会自动限制并行度;
- 若内存较小,建议不要设置过高(如
-T 2C或-T 4C),避免 OOM; - 日志可能会乱,建议加
-B(batch 模式)或--log-file输出到文件
✅ 可选配置参考:
| 参数 | 含义 | 4核CPU下的线程数 |
|---|---|---|
-T 1C |
每核 1 个线程 | 4 |
-T 2C |
每核 2 个线程 | 8 |
-T 0.5C |
每两核 1 个线程 | 2 |
-T 4 |
固定使用 4 个线程 | 4 |
如无特殊需求,**-T 1C** 是推荐起点,平衡性能与稳定性。
优化建议
在多核 CPU 环境下,Maven 的 -T 参数用于控制并行构建线程数,合理设置可以显著提升构建效率。以下是基于最新资料(截至 2025
年)的优化建议:
✅ 推荐设置原则
| CPU核心数 | 推荐参数示例 | 说明 |
|---|---|---|
| 4核 | -T 1C 或 -T 1.5C |
使用 4~6 线程,避免过度占用系统资源 |
| 8核 | -T 1.5C 或 -T 2C |
使用 12~16 线程,适合中大型项目 |
| 超线程支持 | -T 1.5C |
如4核8线程,1.5C = 12线程,性能提升明显 |
✅ 实战命令示例
1 | # 推荐:按核心数1.5倍并行构建(平衡性能与稳定性) |
⚠️ 注意事项
模块依赖复杂时慎用高并发:Maven 会自动跳过有依赖冲突的模块,线程过多反而降低效率。
内存限制:并行构建会显著增加内存占用,建议同步设置:
1
export MAVEN_OPTS="-Xmx2g -Xms1g"
CI/CD环境建议实测:不同机器、不同项目结构下,最优线程数可能不同,建议用
time mvn -T X clean package实测对比。
✅ 最佳实践总结
| 场景 | 推荐参数 | 说明 |
|---|---|---|
| 本地开发 | -T 1C 或 -T 1.5C |
稳定优先,避免影响IDE响应 |
| CI/CD流水线 | -T 1.5C 或 -T 2C |
构建时间短,资源可控 |
| 多模块大项目 | -T 1.5C + 增量构建 |
结合 -pl 局部构建更佳 |
如无特殊需求,**-T 1.5C** 是当前多核 CPU 下 Maven 构建的推荐起点,兼顾速度与稳定性
250728-笔记神器Markdown之完美实现图床(Typora+PicGo+Github)
下载并安装PicGo
GithubPicGo项目地址:https://github.com/Molunerfinn/PicGo
下载地址:PicGo (比较慢)
镜像下载地址:https://github.com/Molunerfinn/picgo/releases(比较快)
配置Typora
在Typora的偏好设置中设置:
PicGo 图床 阿里云OSS配置

250728-ubuntu20.04-chrome-kanban-看板全屏参数配置
/home/mes/.config/autostart/chromium.desktop
–password-store=basic
–disable-background-networking
1 | [Desktop Entry] |





