运维
使用 Skills 和 MCP 扩展 OpenClaw
· ☕ 2 分钟
1. 什么是 Skills 1 2 3 openclaw skills list Skills (7/51 ready) OpenClaw 内置有一些 skills,可以通过 openclaw skills list 查看。 在 https://github.com/openclaw/openclaw/tree/main/skills 可以查看到这些 Skills 具体实现。Skills 文件中主要描述的是 Skills 的元数据、什么时候适用、什么时候不适用、怎么配置和使用。 2. 使用 clawhub 安装 Skills ClawHub 是 OpenClaw 的公共 Skills 注册中心, 默认 Skills 安装

LVM 日常运维
· ☕ 6 分钟
1. 基本概念 物理卷 PV (Physical Volume) 由一个或者多个物理硬盘组成,也可以是一个 RAID 设备。 卷组 VG (Volume Group) 由一个或者多个 PV 组成。 逻辑卷 LV (Logical Volume) 从 VG 中划分出来的空间,格式化之后,挂载目录使用。 数据安全 LVM 自带 RAID 功能,也可以提前组建 RAID 设备,交给 LVM 管理。 2. 管理物理卷 查看存储设

容器部署 ClickHouse
· ☕ 9 分钟
1. ClickHouse 单节点 1.1 配置环境变量 1 2 3 4 5 6 7 8 export CONTAINER_CLI=nerdctl export IMAGE=clickhouse/clickhouse-server:24 export CLICKHOUSE_INSTANCE_NAME=clickhouse export CH_DATA=/data/ops/clickhouse/$CLICKHOUSE_INSTANCE_NAME export CLICKHOUSE_PORT=9000 export CLICKHOUSE_PROMETHEUS_PORT=9363 export CLICKHOUSE_USER=default export CLICKHOUSE_PASSWORD=xxxxxx 1.2 生成配置文件 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 mkdir -p $CH_DATA/data $CH_DATA/log $CH_DATA/config.d cat > $CH_DATA/config.d/port.xml <<EOF <clickhouse> <tcp_port>$CLICKHOUSE_PORT</tcp_port> </clickhouse> EOF cat > $CH_DATA/config.d/prometheus.xml <<EOF <clickhouse> <listen_host>0.0.0.0</listen_host> <prometheus> <endpoint>/metrics</endpoint> <port>$CLICKHOUSE_PROMETHEUS_PORT</port> <metrics>true</metrics> <events>true</events> <asynchronous_metrics>true</asynchronous_metrics> </prometheus> </clickhouse> EOF cat > $CH_DATA/config.d/logger.xml <<EOF <clickhouse> <logger> <level>information</level> <console>true</console> <log remove="remove"/> <errorlog remove="remove"/> </logger> </clickhouse> EOF 1.3 启动

容器化部署 Redis
· ☕ 2 分钟
1. Redis 单实例 配置环境变量 1 2 3 4 5 6 7 8 9 export CONTAINER_CLI=nerdctl export IMAGE=redis:7 export REDIS_INSTANCE_NAME=redis-instance export REDIS_PASSWORD=xxxxxx export REDIS_PORT=6379 export REDIS_DATA=/data/ops/redis/$REDIS_INSTANCE_NAME mkdir -p $REDIS_DATA/data $REDIS_DATA/log 启动服务 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 $CONTAINER_CLI run -d \ --name $REDIS_INSTANCE_NAME \ --restart always \ --security-opt apparmor=unconfined \ --security-opt seccomp=unconfined \ --network host \ --ulimit memlock=-1 \ --ulimit stack=67108864 \ --ulimit nofile=1048576:1048576 \ --memory-swappiness=0 \ -v $REDIS_DATA/data:/data \ -v $REDIS_DATA/log:/var/log/redis \ $IMAGE redis-server --port $REDIS_PORT --requirepass $REDIS_PASSWORD \ --maxmemory 64gb \ --maxmemory-policy noeviction \ --appendonly yes \ --appendfsync everysec 测试连接 响应 PONG 表示

容器化部署多节点 FoundationDB 及运维
· ☕ 3 分钟
1. 生成集群ID 1 cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1 下面以 CLUSTER_ID=fKbIga9RHP79OIx1 为例 2. 第一个节点上 配置环境变量 1 2 3 4 5 6 7 8 9 10 export CONTAINER_CLI=nerdctl export IMAGE=foundationdb/foundationdb:7.1.26 export CLUSTER_ID=fKbIga9RHP79OIx1 export FDB_INSTANCE_NAME=fdb_server export FDB_CLUSTER_FIRST_IP=$(hostname -I | awk '{print $1}') export FDB_PUBLIC_IP=$(hostname -I | awk '{print $1}') export FDB_PORT=4500 export FDB_DIR=/data/ops/fdb/$FDB_INSTANCE_NAME 清理旧数据 1 2 3 $CONTAINER_CLI rm -f $FDB_INSTANCE_NAME mv $FDB_DIR $FDB_DIR.$(date +%Y%m%d%H%M%S).bak mkdir -p $FDB_DIR 创建 cluster 文件 1 2 3 mkdir -p $FDB_DIR echo "${FDB_INSTANCE_NAME}:${CLUSTER_ID}@${FDB_CLUSTER_FIRST_IP}:4500" > $FDB_DIR/fdb.cluster cat $FDB_DIR/fdb.cluster 启动服务器节点